2
begin tx1
    do some work
    begin tx2
      do some work
    tx2.success
    tx2.finish
tx1.success
tx1.finish

tx2.finishは実際にロックをコミットまたは解放しますか?

ありがとう

4

1 に答える 1

3

Neo4j には、フラット ネストされたトランザクションの概念があります。フラットなネストされたトランザクションは、すべてのネストされたトランザクションが最上位トランザクションのスコープに追加されることを意味します。したがって、あなたの場合、ロールバックのトランザクション全体をマークすると、Neo4j は と の両方をtx2ロールバックします。あなたの場合、トランザクションをコミットするだけです。tx1tx2tx1.finish

Neo4j のトランザクション内のすべての変更は、コミットまたはロールバックするまでメモリに保持されます。その後、実際のフラッシュを行うためにロックが取得されます。したがって、あなたの場合tx1.finishは、ロックが取得されたときです。

詳細については、Neo4j マニュアルのこのセクションを参照してください。

于 2013-08-30T13:07:52.217 に答える