在执行批更新时为用户提供对Neo4j的只读访问权限
这只是一个一般性的问题,不太专业。我们有这样一个用例,其中我们要将数十万条记录加载到现有的Neo4j数据库中。现在,由于用户正在访问数据库,我们无法让数据库离线。我知道Neo4j在执行批量更新时需要对数据库进行独占锁定。有办法解决我的问题吗?我不想在执行更新时锁定数据库。我仍然希望我的用户能够访问它——即使只是只读访问。谢谢。Neo4j从不要求对数据库进行独占锁定。它选择性地锁定图形中受变异操作影响的部分。所以你可以做一些事情来实现你的目标。您是Neo4j企业客户吗 选项1:如果是这样,您可以在主节点上运行批插入,并将用户路由到从属节点进行读取 选项2:或者,您可以执行“蓝绿”样式的部署,其中您:在执行批更新时为用户提供对Neo4j的只读访问权限,neo4j,Neo4j,这只是一个一般性的问题,不太专业。我们有这样一个用例,其中我们要将数十万条记录加载到现有的Neo4j数据库中。现在,由于用户正在访问数据库,我们无法让数据库离线。我知道Neo4j在执行批量更新时需要对数据库进行独占锁定。有办法解决我的问题吗?我不想在执行更新时锁定数据库。我仍然希望我的用户能够访问它——即使只是只读访问。谢谢。Neo4j从不要求对数据库进行独占锁定。它选择性地锁定图形中受变异操作影响的部分。所以你可以做一些事情来实现你的目标。您是Neo4j企业客户吗 选项1:如果是这样,您可以在
BatchInserter
s,将批插入应用到B上。这样,您将在几秒钟内插入数十万我假设您没有尝试使用Cypher将数十万个节点插入到正在运行的Neo4j数据库中。如果您是,我会从这里开始,并将其更改为使用Java API或
BatchInserter
API。谢谢,Michael。这很有帮助。我非常喜欢你的选项3解决方案。那么我可能得开始学图形了。回答你的问题:最终,我们会得到一个企业版,但现在我们使用的是社区版。好的,如果你需要任何帮助,让我知道,谷歌是你的联系方式的朋友。祝你好运