图形数据库如何水平缩放,如果有的话?

问题描述 投票:14回答:5

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

是否有图数据库尝试解决此问题?目前在这方面的研究是什么?

database-design graph nosql scalability
5个回答
4
投票

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

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

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

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

我不知道有内置的任何现有图形数据库,可能是因为在一般情况下问题很难解决,并且边缘数据的大小意味着您需要一个非常大的图形才能超过一台服务器。


3
投票

Neo4j支持分片,正在尝试解决分片问题。请查看http://jim.webber.name/2011/02/16/3b8f4b3d-c884-4fba-ae6b-7b75a191fa22.aspx


1
投票

GoldenOrb是一个旨在创建水平可伸缩图形数据库的概念。它以开源形式发布,但是该项目现在似乎已经死了(与GitHub的链接已脱机)。它基于Hadoop。

尽管即使对于图数据库的某些用例,需要在节点之间共享的信息量太大且太复杂,但仍不能将这种模型视为功能齐全的图数据库。计算的发展,分层缓存分层体系结构可以使它被认为是完全可扩展的,并且是事实图数据库。

因此,总体而言,该日期的答案是“否”,并不完全。

托管项目的原始网站是这样:http://goldenorbos.org


0
投票

签出http://thinkaurelius.com/

对于Titan,他们使用Cassandra,HBase或BerkeleyDB作为后备存储,这固有地具有存储的可伸缩性。


0
投票

ArangoDB是一个多模型图形数据库,它像文档存储一样对图形进行水平缩放。它遵循图的混合索引方法。

使用SmartGraph功能,可以通过用户定义的分片键(例如,区域,客户,类别或任何其他属性)对图形数据集进行分片,并且将顶点及其边线分布到同一台计算机上。然后,查询引擎知道给定查询所需的数据在哪里,将请求发送到所需的计算机,然后在本地执行查询。对于许多横向扩展用例,这可能是一个合适的解决方案。https://www.arangodb.com/why-arangodb/arangodb-enterprise/arangodb-enterprise-smart-graphs/

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