共享图形数据库

问题描述 投票:0回答:1

我想知道像Dgraph和TigerGraph这样的数据库如何在不破坏节点之间的连接的情况下按顺序分拆图以支持水平缩放,同时还支持许多有趣的算法。而且他们声称这是一种本机图形解决方案,因此,例如Facebook或Twitter这样的方法就不是这种情况。我想到的唯一解决方案是将图形分布在这么多的小型数据库中,这导致了许多节点重复以维护关系。有任何想法吗 ?在此先感谢

graph-databases sharding dgraph
1个回答
0
投票

因此从技术上讲,关于图分片有两个原则。第一个是Edge-Cut,它将边缘分为两部分(传入和传出)并将它们分别存储在不同的服务器中。与边缘关联的每个顶点都分发到群集中的特定服务器。星云图(Nebula Graph)是一种分布式图数据库,它遵循这种方法。第二个是Vertex-Cut,它可以将一个顶点切成N个部分(取决于该顶点有多少条边)并将它们存储在不同的服务器中。然后,将与顶点关联的每个边缘分配到群集中的特定服务器。 GraphX就是这样做的。

但是,图分片无论如何都是一个NP问题,比SQL中的分片要困难得多。因此,某些供应商的做法可能与仅使用Cut-Edge或仅使用Cut-Vertex有所不同。例如,您的想法(即展开子图)有点像Neo4j Fabric。一些供应商将整个图形结构(不包括属性)放置在单个主机内存中,以便非常快速地获取照片。尽管某些供应商采用邻接表来分隔图中的节点和边,但对位置的考虑并不太多。

© www.soinside.com 2019 - 2024. All rights reserved.