-1

我有一个包含 400 万个节点和 1 亿个关系的 neo4j 图数据库。我尝试使用一种算法为所有相邻节点对(基本上是所有边)计算一个数字,该算法对所有节点使用传入、传出边的数量以及所有传出边的所有传入边的数量。

我正在使用 Java API,但我意识到获取所有传出边的这些传入边非常慢。我尝试获取所有这些数据并使用多个线程进行计算,结果变得更好,但对于给定节点及其所有相邻边缘仍然需要几秒钟(有时 30 秒)。(没有线程可能需要 15 分钟)。因此,如果我想对所有边进行此计算,那么我应该达到每个节点几毫秒的时间框架。

所以我会问,使用多线程的一般策略是什么——以及如何使用嵌入式 neo4j 图形数据库(比如在四核 4G 笔记本电脑上?)。

4

1 回答 1

0

这是您测量的第一次还是第二次运行?如果是第一个,那是因为冷缓存并将数据加载到内存中。

您可能还应该考虑配置您的 JVM 设置和 Neo4j 缓存。

请参阅:http ://docs.neo4j.org/chunked/snapshot/embedded-configuration.html

于 2013-02-03T22:31:30.337 回答