RDF-3x 三重存储是基于内存还是基于磁盘?
1 回答
RobV 提到的论文是
诺伊曼、托马斯和格哈德·韦库姆。“<a href="http://www3.in.tum.de/teaching/ws1112/vwis/exercises/Blatt11/rdf3x.pdf" rel="nofollow">RDF-3X:用于 RDF 的 RISC 风格引擎。 ” VLDB Endowment 1.1 (2008) 会议记录:647-659。
如果您熟悉用于实现数据库的一些数据结构,那么它们使用B+-trees的事实强烈建议您使用磁盘而不是内存模型。如果您对这些结构没有太多了解,那么它可能不会那么明显。不过,论文中的几点更直接(强调):
请注意,MonetDB 和 RDF-3X 都可以在不到半小时的时间内导入数据集,并且可以以秒为单位运行查询。其他语义网方法通常假设 RDF 数据适合主内存,但这里不是这种情况。因此,下面的所有实验都只考虑 RDF-3X、MonetDB 之上的基于列存储的方法,以及基于 PostgreSQL 的三元组存储。
他们还在运行测试之前清除文件系统缓存。这将对加载查询引擎产生一些影响,但对基于文件系统的数据库的性能影响更大:
为了评估 RDF-3X 的性能,我们使用了三个具有不同特征的大型数据集,并将查询运行时间与其他方法进行了比较(下文讨论)。所有实验均在配备 2 Ghz Core 2 Duo 处理器、2 GB 内存并运行 64 位 Linux 2.6.24 内核的戴尔 D620 PC 上进行。对于冷缓存实验,我们使用 /proc/sys/vm/drop caches 内核接口来删除所有文件系统缓存,然后重新启动各种被测系统。我们重复所有查询五次(包括删除缓存和系统重新启动)并取最佳结果以避免由操作系统活动引起的伪影。对于热缓存,我们在不丢弃缓存的情况下运行了五次查询,再次获得了最佳运行时间。
注意到 RDF-3X 的性能是由于从磁盘读取较少的结果:
当比较冷缓存时间和暖缓存时间时,很明显磁盘 I/O 对整体运行时间有很大影响。由于其高度压缩的索引结构,RDF-3X 只需读取较少的数据[.]