为什么芝麻只限制于150m个三元组?

3

我不会直接说它受限,但只要我看得到给出的建议都是“如果你需要超越这个范围,你可以改变后端存储...”。为什么?当超过150-200m三元组时,为什么Sesame不像OWLIM或Allegrgraph那样高效?为了达到如此大的规模,采取了哪些优化措施?底层数据结构是否不同?


为什么Sesame只能处理大约1.5亿个三元组? - Jeen Broekstra
1个回答

3

以下为@Jeen Broekstra 回答: http://answers.semanticweb.com/questions/21881/why-is-sesame-limited-to-lets-say-150m-triples

  1. RDF语句中实际的值(即主题、谓语和宾语)在一个相对简单的哈希表中被索引,将整数ID映射到实际数据值。该索引通过内存缓存来加速查找,但随着存储空间的增加,插入或查找期间需要从硬盘检索的值不在缓存中的概率增加,并且磁盘查找本身随着哈希表大小的增加而变得更加昂贵。
  2. 本地存储的数据检索已经平衡,以充分利用文件系统页面大小,以最大限度地提高B树节点的检索速度。此优化依赖于连续的查找重用相同的数据块,以便可以重用操作系统级别的页面缓存。然而,随着事务大小(因此是B树)的增长,这种启发式开始经常失败。
  3. 随着B树的增长,大规模级联分裂的机率增加。

请注意,您应该在此网站上发布答案的必要部分,否则您的帖子可能会被删除请参阅FAQ中提到的“几乎只是链接”的答案。如果您愿意,仍然可以包含链接,但仅作为“参考”。答案应该可以独立,不需要链接就可以解决问题。 - Taryn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接