创建索引时出现死锁

2024-09-20 23:01:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用py2neo1.6.2和neo4j 2.0.1创建一个带有Cypher查询的索引:

graph_db = neo4j.GraphDatabaseService()
query = "CREATE INDEX ON :Label(prop)"
neo4j.CypherQuery(graph_db, query).run()

查询在neo4j web界面中运行良好,但在py2neo中引发死锁错误:


py2型近地天体4J.DeadlockDetectedException:不要惊慌。

已检测到并避免了死锁情况。这意味着持有锁的两个或多个事务想要等待彼此持有的锁,这将导致这些事务之间出现死锁。这个异常被抛出,而不是以死锁结束。在

有关如何避免这种情况,请参阅Neo4j手册中的死锁部分:http://docs.neo4j.org/chunked/stable/transactions-deadlocks.html

Details:'事务(15438,所有者:“qtp1927594840-9525”)[STATUS\u ACTIVE,Resources=1]无法等待资源RWLock[SchemaLock],因为=>;事务(15438,所有者:“qtp1927594840-9525”)[状态\u活动,资源=1]<;-[:持有者]-RWLock[SchemaLock]<;-[:等待]-事务(15233,所有者:“qtp1927594840-9503”)[状态\u活动,Resources=1]<;-[:由]-RWLock[SchemaLock]'持有。在


不管标签是否存在,请求通常都会失败。在


Tags: ltdb状态create情况资源query事务
1条回答
网友
1楼 · 发布于 2024-09-20 23:01:37

从details部分的死锁图来看,这看起来像是2.0.1中的一个bug。除了运行这个特定的查询之外,您是否对数据库做了其他操作,或者这只是启动一个新的数据库并运行您提供的代码?在

在任何情况下,因为它在Neo4j浏览器中工作,所以我建议交换使用事务性api,因为这正是浏览器所使用的。Py2neo使用“Cypher事务”功能支持此功能,记录如下:

http://book.py2neo.org/en/latest/cypher/#id2

相关问题 更多 >

    热门问题