我不确切地说它是有限的,但只要我能看到给出的建议是“如果你需要超越它,你可以改变后端存储......”。为什么?为什么芝麻不会像OWLIM或Allegrgraph那样高效,超过150-200m三倍。为实现这么大的目标,实施了哪些优化措施?底层数据结构是否不同?
答案 0 :(得分:3)
@Jeen Broekstra在这里回答: http://answers.semanticweb.com/questions/21881/why-is-sesame-limited-to-lets-say-150m-triples
- 组成RDF语句的实际值(即主题,谓词和对象)以相对简单的哈希索引,将整数ID映射到实际数据值。此索引执行大量内存缓存以加快查找速度,但随着存储大小的增加,缓存中不存在并且需要从磁盘检索的值的概率(插入或查找期间)增加,以及此外,随着散列大小的增加,磁盘上的查找本身变得更加昂贵。
- 本机存储中的数据检索已经平衡,以便最佳地利用文件系统页面大小,从而最大化B树节点的检索速度。此优化依赖于重复使用相同数据块的连续查找,以便可以重用OS级页面缓存。然而,随着事务大小(以及因此B树)的增长,这种启发式启动会更频繁地失败。
- 随着B树的大小增加,大量级联分裂的可能性增加。
醇>