【问题标题】:Can I create two neo4j databases from my server?我可以从我的服务器创建两个 neo4j 数据库吗?
【发布时间】:2013-08-02 15:53:38
【问题描述】:

我正在开发一个 Web 应用程序,该应用程序将包含数十亿个图形,每个图形的大小不超过 500 个节点。我正在尝试使用 Neo4j 来存储我所有的图形数据。我一直在研究如何扩展 Neo4j 以实现我的目的。经过大量研究后,我向 SO 寻求帮助,解决我不清楚的问题。如果我的问题已经出现在 Internet 上,但我无法解决,请原谅。

  1. 我所有的图表都很小而且不连贯。所以水平划分它们对我来说不是问题。但是我没有在 Internet 上找到任何关于如何创建多个 Neo4j 数据库(不是实例)来支持我的 Web 应用程序的信息。有没有办法做到这一点?如果不可能,是否会在不久的将来包括在内? 编辑: 正如下面的 cmets 中所提到的,我使用标签来识别我的数据库中的小图,但是每篇与水平分片相关的文章都谈到了以最佳方式划分图并将它们存储在单独的数据库中。截至目前,我在配置期间对 neo4j-server.properties 中的数据库路径“/data/graph.db”进行了硬编码。有没有一种方法可以让我为 2 个不同的数据库硬编码两条路径,然后动态决定连接到哪一个?

  2. 对于单个图形数据库,我阅读了缓存分片和 HA 集群组合以实现高性能。所有文章都提到每个数据库实例都可以处理许多请求。谁能给我每个数据库实例(HA 集群的从属)现在可以处理的大致请求数量,以及在不久的将来是否会增加?

该图表是我的网络产品唯一的,我希望尽可能实现最高性能。请帮助我更好地了解 Neo4j,看看它是否适合我的目的。任何对我的目的有用的其他数据库的建议都非常受欢迎。感谢您的耐心等待! :)

【问题讨论】:

    标签: database neo4j scalability multiple-databases


    【解决方案1】:

    对于 2),它在很大程度上取决于查询的类型和是否可以缓存读取的天气。通常,您会设置一个 HA 集群,并将相同数据附近的查询定向到相同的集群节点,从而达到热缓存。您是否有关于您的域、数据量等的更多详细信息?

    【讨论】:

    • 我的数据库将有数十亿个用户节点,每个用户节点都有自己的小图,每个节点有 500 个节点。我正在考虑将用户节点及其各自的图表分离到两个数据库中,作为扩展的解决方案。由于用户本地数据存在于单个数据库中,因此我可以利用暖缓存。我想知道这些数据库实例中的每一个一次支持多少个数据库连接,以及访问两个 Neo4j 数据库并向运行时决定的特定数据库发起查询的可能方法。任何指针都会非常有帮助。谢谢
    【解决方案2】:

    我可以回答 1。从 Neo4j 2.0 开始,可以使用 lables 实现 Neo4j 数据库中独立图或图岛的想法。

    【讨论】:

    • Neo4j 2.0 实现了许多帮助我实现需求的新功能。 Neo4j 标签可让您唯一标识特定类型的节点。虽然遗留索引(在 db 模式上的索引)仍然存在,但 Neo4j 能够对特定标签上的特定属性进行索引的特性(在 2.0 中引入)增加了 RTO 密码查询结果,显着证明了标签是我的正确方法Q1 中的问题。正如 Peter Neubauer 在下面的答案中指出的那样,根据 Q2,它在很大程度上取决于您的架构!感谢您的帮助! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    相关资源
    最近更新 更多