您可以对图形数据库进行分区吗?如果是这样,怎么做?

Posted

技术标签:

【中文标题】您可以对图形数据库进行分区吗?如果是这样,怎么做?【英文标题】:Can you partition a graph database? If so, how? 【发布时间】:2011-07-17 15:24:23 【问题描述】:

我知道数据库通常可以使用master/slave replication 进行水平扩展。当并发读取数不断增长时,这是一个很好的策略。

随着并发写入的数量或只是数据量开始增长,但是,主/从复制没有得到你什么都可以,所以你需要对你的数据进行分区

这非常适用于键值场景。对我来说一个经典的例子是 TinyURL/bit.ly;短网址foo的读/写数据可以完全独立于短网址bar的读/写数据。

但是,如果您处于图形场景中,您应该怎么做?更具体地说,是否可以对像 Neo4j 这样的图形数据库进行分区?如果有,怎么做?

我无法理解如何在不违背使用图形数据库的目的(高效遍历)的情况下分解图形。

【问题讨论】:

看看 Jim Webber 写的关于该主题的文章:On Sharding Graph Databases 和 Scaling Neo4j with Cache Sharding and Neo4j HA! 【参考方案1】:

您很少遍历整个图结构。

此外,图结构很少在所有节点之间紧密连接。

稍加注意,您就可以找到连接良好的节点集群,这些节点由与其他集群的少量连接隔开。

http://en.wikipedia.org/wiki/Cluster_analysis

如果你基于集群进行分区,那么在集群内的遍历可能会更快,但到另一个集群的遍历会更慢。

分区的总体优势取决于集群内遍历与集群间遍历的比率。

【讨论】:

我曾考虑过集群,但不确定是否合理;感谢您的确认。虽然它确实有一个明确的权衡(如果一个集群中的节点开始连接到另一个集群中的节点,您可能会面临低效的遍历),所以我仍然很想知道是否还有其他选择。

以上是关于您可以对图形数据库进行分区吗?如果是这样,怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

您可以使用 SOAP 和 WSHttpBinding 对 WCF 服务进行 jQuery 调用吗?

我应该研究 PTX 来优化我的内核吗?如果是这样,怎么做?

win10音频设备图形隔离占CUP高得离谱,最高能开机就占60%以上,怎么解决?

你能在 T-SQL 中对存储过程的结果进行选择吗

ps贴边辅助线怎么取消

你确定不这样做网站吗?