1

プレーヤーがポイントを受け取るたびにインクリメントしたいポイントプロパティがノードにあります。複数の更新が同時に受信される可能性があるため、同時実行の問題を回避するために、増分更新クエリが必要です。たとえば、2つのリクエストが同時にノードをフェッチし、ポイントをそれぞれ+5ずつ更新した場合、正しい+10ではなく+5ずつ増加します。

これに関連するgithubのクローズドイシュー#768、https://github.com/neo4j/community/issues/768があったようですが、楽観的同時実行性または単一の実装以外の答えはありませんでしたアプリケーション側のキュー。

楽観的並行性が答えである場合、データベースレベルで活用できるものがあるのではないでしょうか。

4

2 に答える 2

0

できることは、次のように、読み取る前にノードをロックすることです。

トランザクション tx = db.beginTx();
試す
{
    tx.acquireWriteLock( myNode );
    int count = (整数) myNode.getProperty( "count", 0 );
    myNode.setProperty( "カウント", カウント + 5 );
    tx.success();
}
最後に
{
    tx.finish();
}
于 2012-11-22T15:01:03.820 に答える
0

これを求めて提出した github の問題が見つかりません (github リポジトリは移動しました)。しかし、答えは、これは REST API に追加されないというものでした。

于 2012-11-22T22:00:56.557 に答える