0

嗨,我在我的应用程序中使用 neo4j,我的结构如下:

  1. 我正在使用嵌入式图形API
  2. 我有几个数据库指向使用我在应用程序中维护的池,例如- > db1、db2、db3、..... db100
  3. 当我想访问特定数据库时,我使用new EmbeddedGraphDatabase("Path to db(n)")指向它
  4. 问题在于,当连接池计数增加时,应用程序消耗的RAM 大小会不断增加,并在某个限制点破坏应用程序。
  5. 所以我正在考虑从Neo4j 迁移到其他一些 Database
  6. 此外,我的数据库中只有一小部分使用了图形结构

迁移的一种方法是我为它编写一个脚本。有没有更好的选择?

我的另一个问题是什么是最好的数据库,以便可以维护我的结构。

我正在考虑的其他观点是我可以将部分数据保存到 Neo4j 中,并将另一部分转移到其他数据库中。

如果有什么不清楚的,我可以澄清一下。

提前致谢。

4

2 回答 2

1

EmbeddedGraphDatabase 实例等同于 SQL 中的“连接”。它旨在运行很长时间(几天,几个月)。因此,启动/停止成本很高。

在同一个 JVM 中拥有数百个独立数据库的用例是什么?

于 2012-10-01T19:36:39.017 回答
1

由于 graphdb 旨在将整个数据模型保存在单个主机上,因此您的许多小型数据库将表现不佳。

您是否为每个数据库运行一个 JVM?

您可以通过为内存映射提供正确的属性来控制 neo4j 使用的内存量,还可以使用来自 neo4j-enterprise 的 gcr 缓存并控制缓存大小属性变量。

我认为将图形部分保留在 Neo4j 中并且只移动非图形部分仍然是有意义的。

于 2012-10-07T21:59:16.413 回答