gpt4 book ai didi

java - Neo4j 并行读取和批量插入

转载 作者:太空宇宙 更新时间:2023-11-04 06:54:45 27 4
gpt4 key购买 nike

在Java应用程序中使用嵌入的Neo4j2.0,我该怎么办在一个进程中每 5 分钟进行一次批量插入(10M 节点和 13M 关系),并且在其他进程中对同一数据库进行读取操作?在执行插入操作时,数据库被锁定,因此无法打开读取操作的连接。

对于插入使用BatchInserter插入器 = BatchInserters.inserter(...*

供阅读使用

*GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );*

请建议是否有任何替代方案或是否可以禁用锁定。

谢谢。

最佳答案

你无法打破常规。

快照插入

您可以做的就是使用批量插入器从队列中读取数据来进行插入。

每当您需要导入数据的新快照时,您都可以关闭批量插入器,将数据库复制到事务应用程序并从该快照启动它。

在一个进程中使用事务

否则,只需使用普通的事务 API 进行读写即可。

只要你批量写入,例如每批 50k 个节点/关系,您应该仍然没问题,从同一进程执行这两个操作。

关于java - Neo4j 并行读取和批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22903043/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com