我不想保留任何数据,但仍然想要使用Neo4j的图遍历和算法功能。在嵌入式数据库中,我配置了cache_type = strong
,并且在将事务设置为失败后进行所有写入。但是我的写入速度(节点,关系创建速度)很慢,这成为我的流程中的一个大瓶颈。纯粹在内存中运行Neo4j没有任何持久性
因此,问题是,Neo4j可以在没有任何持久性方面的情况下运行,并且就像纯API一样?我尝试了像JGraphT这样的其他程序,但那些程序没有像Neo4j提供的那样的遍历机制。
我不想保留任何数据,但仍然想要使用Neo4j的图遍历和算法功能。在嵌入式数据库中,我配置了cache_type = strong
,并且在将事务设置为失败后进行所有写入。但是我的写入速度(节点,关系创建速度)很慢,这成为我的流程中的一个大瓶颈。纯粹在内存中运行Neo4j没有任何持久性
因此,问题是,Neo4j可以在没有任何持久性方面的情况下运行,并且就像纯API一样?我尝试了像JGraphT这样的其他程序,但那些程序没有像Neo4j提供的那样的遍历机制。
多少改变你组中的每个交易?由于提交事务会强制逻辑日志到磁盘,因此您应该尝试在每个事务中将数千个更改分组。
db.tx().unforced().begin();
相反的:
然而,在你的情况,你可以,而不是首先您的交易
db.beginTx();
这使得该交易不会等待逻辑日志强制到磁盘,使小型交易的速度要快得多,但停电可能会让您失去最后几秒的潜在数据。
tx()方法位于GraphDatabaseAPI上,例如EmbeddedGraphDatabase实现的。
现在我切换到了批量插入器,略有改进但不是很多。所以没有交易担心。 – chethan
你可以尝试一个虚拟驱动器。这将使neo4j坚持驱动器,但它会发生在内存中 https://thelinuxexperiment.com/create-a-virtual-hard-drive-volume-within-a-file-in-linux/
您是否找到一个可行的解决方案呢? – jagamot
所以Neo4j不支持这个?我还想在内存中运行Neo4j,而不需要在文件系统中进行任何备份,只是为了图形遍历功能。 – Sergio