如何获取节点上的写锁定?

时间:2014-09-17 11:59:04

标签: ruby-on-rails ruby neo4j locking neography

我想做这样的事情(ruby,cypher查询):

//在NODE 1上获得写入锁定

//读取的一些代码,然后写下来,例如:

results = neo.query("MATCH (n {id: 1}) RETURN n")
...
case results.size
  when 0
    neo.create_node(properties)
  when 1
    neo.update_node(results.first, properties)
...

//在节点1上释放写入锁定

根据文档,http://docs.neo4j.org/chunked/stable/transactions-isolation.html

默认情况下,读取操作将读取最后提交的值,除非当前事务中存在本地修改。默认隔离级别与READ_COMMITTED非常相似:读取不会阻塞或采取任何锁定,因此可能发生不可重复的读取。通过手动获取读写锁可以实现更强的隔离级别(例如REPETABLE_READ和SERIALIZABLE)。

http://docs.neo4j.org/chunked/stable/transactions.html

可以手动获取节点和关系上的写锁定,以实现更高的隔离级别(SERIALIZABLE)。

但是没有提到任何关于如何获取锁或如何更改隔离级别的内容。

1 个答案:

答案 0 :(得分:2)

目前不支持通过REST API覆盖默认的READ_COMMITTED隔离级别。只有在Java应用程序中使用Neo4j时,才能实现手动覆盖隔离级别。

我们会在您引用的文档页面中添加一条注释,使其更加清晰。