1

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

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

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

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

4

2 回答 2

1

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

于 2013-08-01T18:47:07.250 回答
0

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

于 2013-08-02T09:07:27.457 回答