运行Neo4j的纯粹在内存中没有任何持续性(Running Neo4j purely in memo

2019-07-03 17:20发布

我不想坚持任何数据,但仍希望使用的Neo4j为它的图形遍历和算法的能力。 在嵌入式数据库,我已经配置cache_type = strong ,所有的写操作后,我设定的交易失败。 但我的写入速度(节点,关系创建速度)是一个缓慢而这正在成为我的过程中的一大瓶颈。

所以,问题是,可以Neo4j的进行没有任何持久性方面它在所有的,只是作为一个纯粹的API上运行? 我想其他人一样JGraphT但那些没有像那些Neo4j的提供穿越机制。

Answer 1:

据我所知,Neo4j的数据存储和Lucene索引始终写入文件。 在Linux上,至少,你可以建立一个ramfs文件系统来保存在内存中的文件。

也可以看看:

  • 加载所有的Neo4j分贝到RAM


Answer 2:

有多少改变你组中的每个交易? 你应该尝试将多达数千每笔交易的变化,因为提交事务强制逻辑日志到磁盘。

然而,在你的情况,你可以开始,而不是您的交易有:

db.tx().unforced().begin();

代替:

db.beginTx();

这使得该交易不会等待逻辑日志以武力盘,使小额交易速度更快,但停电可能会对你失去了过去的数据的秒可能。

在TX()方法坐在GraphDatabaseAPI,其例如EmbeddedGraphDatabase器具。



Answer 3:

你可以尝试一个虚拟驱动器。 它将使Neo4j的坚持到驱动器,但它会一切发生在内存https://thelinuxexperiment.com/create-a-virtual-hard-drive-volume-within-a-file-in-linux/



文章来源: Running Neo4j purely in memory without any persistence