ロック・ストラテジーを構成すると、キャッシュ・エントリーの整合性を維持するために、ロック・マネージャーがバッキング・マップに作成されます。
ロック・ストラテジーに OPTIMISTIC または PESSIMISTIC が使用されている場合は、BackingMap に対してロック・マネージャーが作成されます。ロック・マネージャーは、ハッシュ・マップを使用して、1 つ以上のトランザクションによってロックされるエントリーを追跡します。 ハッシュ・マップに多くのマップ・エントリーが存在する場合、ロック・バケットが多いほど、パフォーマンスが良好になる可能性が高くなります。 バケット数が増えるにつれて、Java 同期の衝突のリスクは 下がります。またロック・バケットを増やすことが、並行性の増大につながります。 前の例では、特定の BackingMap インスタンスに使用するロック・バケットの数をアプリケーションでどのように設定できるかを示しています。
java.lang.IllegalStateException 例外を避けるには、ObjectGrid インスタンスで initialize メソッドまたは getSession メソッドを呼び出す前に setNumberOfLockBuckets メソッドを呼び出す必要があります。 setNumberOfLockBuckets メソッド・パラメーター は、使用するロック・バケットの数を指定する Java プリミティブ整数 です。素数を使用すると、ロック・バケット上のマップ・エントリーの一様分布が可能になります。最良のパフォーマンスを得るために適した開始点は、BackingMap エントリーの予想される数のおよそ 10 パーセントにロック・バケットの数を設定することです。