图表数据库如何水平扩展(如果有的话)?

dou*_*gvk 14 database-design scalability graph nosql

对于键值,文档和列族数据库,我了解您可以在键空间中使用复制和分片的组合进行扩展.但是,使用最短路径等常见的图形操作 - 这些似乎并没有从复制中获得任何好处......而且我看不出如何在没有找到独立子图的情况下对图形数据库进行分片(非常困难) ).

是否有图形数据库试图解决这个问题?目前该领域的研究是什么?

Tom*_*son 5

复制对于任何类型的数据库都很有用——它只是创建数据的多个副本,这样您就可以提供比单个服务器可以处理的更多的查询。

分片有点复杂,但实际上与键/值或文档存储没有太大区别,因为内部边缘必须表示为简单的列表。

虽然在大多数情况下不可能找到独立的子图,但这实际上并不是必需的。只要处理查询的节点能够从其他节点获取数据,让数据在本地可用只是一种性能优化。

完成设置后,您有很多选项可以根据您正在使用的图表类型优化性能 - 例如,在社交图表中,您可能会使用位置来为用户选择节点,因为您知道大多数连接是本地的。

我不知道任何现有的内置分片的图形数据库,可能是因为对于一般情况,这个问题更难解决,而边缘数据的小尺寸意味着您需要一个非常大的图形来超过单个图形的容量服务器。