9.5. 暗黙的な悲観的ロックの例
以下は、キャッシュノードの 1 つで実行されるトランザクションを使用する暗黙的な悲観的ロックの例になります。
tx.begin() cache.put(K,V) cache.put(K2,V2) cache.put(K,V5) tx.commit()
- 行
cache.put(K,V)
が実行されると、K
でクラスターワイドのロックが取得されます。 - 行
cache.put(K2,V2)
が実行されると、K2
でクラスターワイドのロックが取得されます。 - 行
cache.put(K,V5)
が実行されると、K
のクラスターワイドのロックは以前取得されたため、ロックの取得は実行できませんが、put
操作は発生します。 - 行
tx.commit()
が実行されると、このトランザクションのために保持されたすべてのロックが開放されます。