【发布时间】:2014-09-27 21:15:20
【问题描述】:
我在 windows 上使用 Neo4j 进行测试,我正在使用一个包含约 200 万个关系和大约相同数量的节点的数据库。在我编写一批关系时不正常地关闭了 neo4j 后,数据库损坏了。
似乎数据库中有一些损坏的节点/关系,每当我尝试读取它们时,我都会收到此错误(我正在使用 py2neo):
Error: NodeImpl#1292315 not found. This can be because someone else deleted this entity while we were trying to read properties from it, or because of concurrent modification of other properties on this entity. The problem should be temporary.
我尝试重新启动,但 neo4j 无法从该错误中恢复。我发现了这个问题: Neo4j cannot read certain nodes. Throws NotFoundException. Corrupt database 但是他得到的答案对我没有好处,因为它涉及遍历数据库并重做索引,而且我什至无法读取那些损坏的节点/关系,所以我无法修复它们的索引(尝试过并得到相同错误)。
总的来说,我在使用 neo4j 时遇到了很多稳定性问题(在多个平台上,而不仅仅是 Windows)。如果没有找到合适的解决方案来解决这个问题,我将不得不切换到不同的数据库。
提前致谢!
【问题讨论】:
-
我尝试编写一个脚本来查询所有节点(显然上述异常失败),并且从异常字符串中我得到了有问题的节点的 id 并将其删除。我想在循环中运行它,直到没有更多错误,但是当我执行删除部分时,我收到了这个错误:文件“C:\Python27\lib\site-packages\py2neo\neo4j.py”,行1076,在 _execute 中引发 CustomCypherError(e) InvalidRecordException: PropertyRecord[2083536] not in use
-
我正在研究使用 neo4j 作为主要数据存储。您是否能够修复损坏问题,或者您是否已经切换到不同的数据库? Neo4j 看起来非常适合我正在构建的应用程序,但我担心可靠性。谢谢!
-
你好 Venkat D,我真的不知道,因为我不再从事那个项目了。老实说,neo4j 感觉很不稳定,我对此不太满意,但我不知道替代方案是否更好。此外,在使用它时,我对基于节点的 dbs 还是很陌生,所以这可能会导致混乱。