如果有人在另一个数据库之上构建数据库(例如twitter完成),那么该数据库是否继承了基础数据库的局限性和效率低下?
我对titan db(http://thinkaurelius.com)特别感兴趣,因为他们声称支持在节点之间有效地拆分数据集。
由于cassandra的效率,他们声称支持在节点之间分布数据。但是,neo4j声称它们之所以没有在节点之间分配数据,而是在每个节点上复制整个数据集,是因为任何离开一个节点的图遍历都太慢了,因此必须在以太网上移动实用。
由于cassandra不了解图,因此无法进行优化以将图遍历保留在一个节点上。因此,大多数图形遍历将跨越节点边界。
泰坦声称可以跨节点有效地扩展规模吗?
最佳答案
Titan确定基础存储后端的键排序顺序(Cassandra的BOP,HBase的默认键),然后将ID分配给顶点,以使分配给同一分区块的顶点具有分配给同一物理机的ID。换句话说,Titan可以“理解”底层存储后端如何分配数据并使用利用这种认识的图分区技术。 Titan使用结合了 Realm 知识的半自动分区。
在Pearson基准(http://arli.us/edu-planet-scale)中,根据大学对图进行了分区,这是针对该特定数据集的最佳分区标准。不进行分区,几乎不可能扩展到1200亿条边。
Titan在成熟的技术(用于规模,持久性,热备份,可用性,灾难恢复等)的基础上构建,同时在图形层上进行创新。这是Twitter的Flock和Facebook的Tao都采用的相同路线。虽然这意味着Titan在深度遍历时速度较慢,但确实允许Titan缩放到非常大的图形或非常多的并发事务(读和写)。
关于graph - 图形数据库可以在节点之间高效地分配数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17811472/