0

陷入大麻烦,

那么谁能告诉我,我怎样才能通过密码获得写锁。注意:我将使用 REST API,所以我的密码会在 php.ini 中。

编辑:场景:

我正在使用 Neo4j REST 服务器和 PHP 来访问它。

现在我创建了一个节点说'counter-node',它生成新的用户ID。逻辑只是将前一个值加 1。

现在,如果两个用户同时出现,那么第一个用户在将其更新为 1 之前读取了“counter-node”值,第二个用户读取了它。因此,“反节点”中的值与预期不同。

任何帮助

4

2 回答 2

1

您不需要显式获取写锁。您在事务中修改的所有节点都会自动进行写锁定。

因此,如果您在逻辑中执行此操作:

start tx
increment counter node
read the value of the counter node and set it on the user node as ID
commit tx

没有两个用户会得到相同的 ID。

于 2013-08-28T11:24:03.800 回答
1

Neo4j流行的APOC插件有一系列可以通过 Cypher 调用的显式锁定程序,例如call apoc.lock.nodes([nodes])

在neo4j-contrib.github.io/neo4j-apoc-procedures/#_locking了解更多信息

注意:据我所知,这个功能在 Cypher 中并不存在,所以 APOC 可能是你最好的选择。

于 2017-07-27T06:36:31.787 回答