我最近一直在测试泰坦-卡桑德拉和OrientDB,一个问题出现在我的脑海中。
我只是想知道图do如何在不同的集群中分解图,以及它们的查询接口如何支持对切分图的查询,例如在两个节点之间寻找最短路径。
我知道Gremlin为它的groupby函数实现了Mapreduce模式。
但是,我想更深入地了解查询-切分之间的关系,以及这两个DB如何处理切分图的查询。特别是,我对OrientDB的SQL接口如何支持对切分图的查询感兴趣。
我知道Neo4j反对按照我所要求的前一个问题的建议进行切分。
发布于 2013-11-28 19:36:26
请参阅关于土卫六(http://titan.thinkaurelius.com)的以下两篇文章:
通常,当您开始开发一个图形应用程序时,您使用的是一台机器。在这个模型中,整个图都在一台机器上。如果图形很小(就数据大小而言)且事务负载较低(而不是大量的读/写),那么当您进入生产阶段时,只需添加复制以实现高可用性。对于非分布式复制,数据将被完全复制到其他机器上,如果任何一台计算机发生故障,则其他机器仍可用于服务请求。同样,请注意,在这种情况下,您的数据不是分区/分发的,而是复制的。
接下来,随着图形的大小(超出单个机器的内存和HD空间),您需要开始考虑分发。通过分发,您可以将图形划分到多机器集群上,并(为了确保高可用性)确保您有一些数据冗余(例如复制因子3)。
目前,在土卫六中有两种划分数据的方法:
说到底,整个故事都是关于同一地点的。你能确保相互检索的数据在物理空间上是接近的吗?
最后,请注意,泰坦允许使用Faunus (http://faunus.thinkaurelius.com)并行读取(和写入)。因此,如果您有一个OLAP问题,需要扫描整个图,那么土卫六的共位置模型作为一个顶点是方便的,它的边缘是一个顺序读取从磁盘。再说一遍,这个故事仍然是一样的--按照时间上的共同检索,在太空中同处一处。
https://stackoverflow.com/questions/20267047
复制相似问题