首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GraphDB查询与切分

GraphDB查询与切分
EN

Stack Overflow用户
提问于 2013-11-28 13:07:11
回答 1查看 1.4K关注 0票数 2

我最近一直在测试泰坦-卡桑德拉和OrientDB,一个问题出现在我的脑海中。

我只是想知道图do如何在不同的集群中分解图,以及它们的查询接口如何支持对切分图的查询,例如在两个节点之间寻找最短路径。

我知道Gremlin为它的groupby函数实现了Mapreduce模式

但是,我想更深入地了解查询-切分之间的关系,以及这两个DB如何处理切分图的查询。特别是,我对OrientDB的SQL接口如何支持对切分图的查询感兴趣。

我知道Neo4j反对按照我所要求的前一个问题的建议进行切分。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-28 19:36:26

请参阅关于土卫六(http://titan.thinkaurelius.com)的以下两篇文章:

  • 小规模的土卫六-- http://thinkaurelius.com/2013/11/24/boutique-graph-data-with-titan/
  • 大型土卫六-- http://thinkaurelius.com/2013/05/13/educating-the-planet-with-pearson/

通常,当您开始开发一个图形应用程序时,您使用的是一台机器。在这个模型中,整个图都在一台机器上。如果图形很小(就数据大小而言)且事务负载较低(而不是大量的读/写),那么当您进入生产阶段时,只需添加复制以实现高可用性。对于非分布式复制,数据将被完全复制到其他机器上,如果任何一台计算机发生故障,则其他机器仍可用于服务请求。同样,请注意,在这种情况下,您的数据不是分区/分发的,而是复制的。

接下来,随着图形的大小(超出单个机器的内存和HD空间),您需要开始考虑分发。通过分发,您可以将图形划分到多机器集群上,并(为了确保高可用性)确保您有一些数据冗余(例如复制因子3)。

  • 从单一服务器到分布式集群:http://thinkaurelius.com/2013/03/30/titan-server-from-a-single-server-to-a-highly-available-cluster/

目前,在土卫六中有两种划分数据的方法:

  1. 随机划分:顶点及其共位置的入射边缘分布在簇中.也就是说,顶点及其入射边形成一个“数据束”,并在机器上一起存在。随机分区确保集群得到适当的平衡,因此没有一台机器维护所有数据。一个简单的分配策略,通常是有效的。
  2. 用户定向分区:将顶点(及其事件边缘)分配给分区(此分区最终表示一台机器--尽管由于复制和多台机器上存在相同的数据而不是完全正确)。用户导向分区对于理解其域的拓扑结构的应用程序非常有用。例如,你可能知道不同大学的人之间没有什么比同一所大学的人之间有什么不同的边缘。因此,智能分区将基于大学。这确保了适当的顶点与顶点的协同定位,减少了多台机器,希望解决遍历问题.缺点是要确保集群不太不平衡(一个分区上的所有数据)。

说到底,整个故事都是关于同一地点的。你能确保相互检索的数据在物理空间上是接近的吗?

  • http://thinkaurelius.com/2013/07/22/scalable-graph-computing-der-gekrummte-graph/

最后,请注意,泰坦允许使用Faunus (http://faunus.thinkaurelius.com)并行读取(和写入)。因此,如果您有一个OLAP问题,需要扫描整个图,那么土卫六的共位置模型作为一个顶点是方便的,它的边缘是一个顺序读取从磁盘。再说一遍,这个故事仍然是一样的--按照时间上的共同检索,在太空中同处一处。

  • http://thinkaurelius.com/2012/11/11/faunus-provides-big-graph-data-analytics/
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20267047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档