オフライン並行性パターン
個人的な読書記録、読書会の予習です。
「オフライン」と限定しているのはなぜでしょう?
確かに議論の対象はシステムトランザクションではなく、ビジネストランザクションになっているようですが。
Optimistic Offline Lock (軽 楽観的オフラインロック)
コンフリクトの検出とトランザクションのロールバックによって、同時に発生するビジネストランザクション間のコンフリクトを防止する??
各レコードにバージョン番号を保持し、更新時に参照時と同じバージョン番号であることを検査する。
代替実装 - 更新の where 句に全てのカラムを含める。
Pessimistic Offline Lock (重 悲観的オフラインロック)
データへのアクセスを一度に1つのビジネストランザクションに限定することで、同時にビジネストランザクション間のコンフリクトを防止する。
ビジネストランザクションを対象にしているので、ある程度まとまった単位にロックをかけないと管理しきれないはず。
Coarse Grained Lock (緩 粗粒度ロック)
1つのロックで関連オブジェクトセットをロックする。
共有バージョンのロック、ルートのロックのバリエーションがある。