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