2010-07-13 87 views
2

我正在考虑为我工作的一些新项目选择neo4j。对于给定的数据需求(本质上基于图),neo4j非常适合,快速原型为我提供了很好的响应时间。我想了解的是如何扩展neo4j部署。具体来说:有没有办法分片和复制neo4j数据?

  • 如何在neo4j部署中分割我的数据。由于neo4j部署在一台机器上,因此我可以在一台机器上存储多少数据,这是有限的,因此我想知道如何分配它。很明显,如果我将其分解到用户,那么不能保持断开连接的用户之间的关系(跨分片)。
  • 如何复制neo4j数据?我可能会考虑建立一个类似于sql的设置,其中使用用于写入的主设备和用于读取的从设备,这样我们既可以扩展我们潜在的读者和作者,也可以实时备份我们的数据。我知道所有的neo4j数据都存储在一个文件系统中 - 这本质上是不可复制的。有什么办法可以在这里做?也许,类似于mysql bin日志?

回答

2

分割现在不是由Neo4j本身处理,而是由域来处理,就像你描述的一样。 Neo4j 2.0将会针对这个问题。

对于复制,Online Backup工作,并与主故障真正的高可用性是在作品中使用的ZooKeeper跟踪群集节点,并选举新的主人,等

您的应用分片要求任何更多的细节?什么域等?

+0

Peter:当你说分区是按领域分类时 - 那么你是否期望应用程序将它分解为节点和关系,这样在分片之间没有重叠? 或者这是否意味着您将相同的节点存储在不同的“域”中,以便它们在不同域中的关系不相关,因此不需要存储在一个地方? (例如,在Twitter世界中A遵循B&A在银行世界中欠B钱,A和B之间的这两个关系可以放在不同的分片中) – Shreeni 2010-07-13 10:36:43

+0

我查看了“在线备份”文档,但它显示了各种场景 - 但我还不清楚我是否可以做标准的主从式排列。具有主站故障切换功能的真正高可用性将会很好,但是在当前系统中是否会遇到非故障切换情况或者一个用于写入的主站和多个用于读取的从站? – Shreeni 2010-07-13 11:24:29

+0

Shreeni, 是的,分区是在域级完成的,并且您持有对域中不同分片的引用并管理它们之间的引用。 通过在线备份,您将拥有一个主设备和一个“热备份”的​​设置,如果主实例出现故障,您可以作为主设备进行切换。也许你甚至可以在清单上询问更多细节? – 2010-07-14 14:53:06

相关问题