Neo4j获取/释放写锁-真/假vs移除

Neo4j获取/释放写锁-真/假vs移除,neo4j,cypher,transaction-isolation,Neo4j,Cypher,Transaction Isolation,在Neo4j中,为了模拟可序列化的事务隔离级别,我需要显式设置一个虚拟属性,例如: SET n._lock_ = true 但是如何正确地释放锁,我需要设置n.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。我不明白你想做什么 Neo4j是事务性的,因此存在事务隔离,Neo4j为您管理锁 有时,通过设置伪属性手动创建锁是很有用的,例如为了避免死锁 提交/回滚事务时

在Neo4j中,为了模拟可序列化的事务隔离级别,我需要显式设置一个虚拟属性,例如:

SET n._lock_ = true

但是如何正确地释放锁,我需要设置n.。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

我不明白你想做什么

Neo4j是事务性的,因此存在事务隔离,Neo4j为您管理锁

有时,通过设置伪属性手动创建锁是很有用的,例如为了避免死锁


提交/回滚事务时会释放锁。

我不明白您想做什么

Neo4j是事务性的,因此存在事务隔离,Neo4j为您管理锁

有时,通过设置伪属性手动创建锁是很有用的,例如为了避免死锁


提交/回滚事务时会释放锁。

您正在使用记录的事务。根据文档,写入锁“在事务完成时释放”

因此,一旦您设置了写锁,直到您的密码查询(和事务)完成,它才会被释放


在结束查询之前,您希望包含一个
REMOVE n.\u lock
子句的原因是为了确保在查询结束后,作为临时黑客的
\u lock
属性不再存在。(但删除该属性并不负责释放写锁。)

您正在使用记录的。根据文档,写入锁“在事务完成时释放”

因此,一旦您设置了写锁,直到您的密码查询(和事务)完成,它才会被释放


在结束查询之前,您希望包含一个
REMOVE n.\u lock
子句的原因是为了确保在查询结束后,作为临时黑客的
\u lock
属性不再存在。(但删除该属性并不是释放写锁的原因。)

AFAIK Neo4j使用读提交隔离级别,我想用自定义锁模拟可序列化隔离级别。问题是如何在事务endsAFAIK Neo4j使用read-committed隔离级别之前正确地移除锁,我想用定制锁模拟可序列化隔离级别。问题是如何在事务结束前正确地移除锁,这样就不可能在事务结束前移除锁?使用neo4j的Java API,比如说,当您编写插件过程时,您可以显式地释放您在执行时获得的写入。谢谢,因此,在事务结束之前移除锁是不可能的?使用neo4j的Java API,比如在编写插件过程时,您可以显式地释放在编写时获得的写操作。