| EAA カタログ |

Coarse-Grained Lock

David Rice および Matt Foemmel 著

単一のロックで関連するオブジェクトのセットにロックをかけます。

詳細な説明については、EAA ページの438を参照してください。

オブジェクトは多くの場合、グループとして編集できます。たとえば、顧客とその住所のセットがあるとします。その場合、アプリケーションを使用する際には、いずれかをロックする場合はそれらのすべてのアイテムにロックをかけることが理にかなっています。個々のオブジェクトに別のロックを設定すると、いくつかの課題が発生します。まず、それらを操作する人は、それらをすべて見つけてロックするためにコードを書く必要があります。顧客とその住所の場合、これは簡単ですが、ロックグループが増えると難しくなります。また、グループが複雑になったらどうでしょうか。フレームワークがロックの取得を管理する場合、この動作はどこにありますか。ロック戦略では、楽観的オフラインロック(416)のように、ロックするにはオブジェクトをロードする必要がある場合、大きなグループをロックするとパフォーマンスに影響します。そして、悲観的オフラインロック(426)では、ロックセットが大きくなると管理が煩雑になり、ロックテーブルの競合が増加します。

Coarse-Grained Lock は、多くのオブジェクトをカバーする単一のロックです。これによりロックアクション自体が簡略化されるだけでなく、それらをロックするためにグループのすべてのメンバーをロードする必要がなくなります。