17.2. キャッシュストアの設定
17.2.1. キャッシュストアの設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
キャッシュストアはチェーンで設定されます。キャッシュの読み取り操作は、データの有効な null 以外の要素が見つかるまで、設定される順番でそれぞれのキャッシュストアをチェックします。書き込み操作は、
ignoreModifications 要素が特定のキャッシュストアに対して "true" にされない限り、すべてのキャッシュストアに影響を与えます。
17.2.2. XML を使用したキャッシュストアの設定 (ライブラリーモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
次の例は、JBoss Data Grid のライブラリーモードで XML を使用したキャッシュストアの設定を示しています。
手順17.1 XML を使用したキャッシュストアの設定
新しいキャッシュストアの作成
passivation、shared、およびpreload設定を指定して、新規のキャッシュストアを作成します。passivationは Red Hat JBoss Data Grid がストアと通信する方法に影響を与えます。パッシベーションは、インメモリーキャッシュからオブジェクトを削除し、システムまたはデータベースなどの 2 次的なデータストアに書き込みます。パッシベーションはデフォルトでfalseです。sharedは、キャッシュストアが異なるキャッシュインスタンスによって共有されていることを示します。例えば、クラスター内のすべてのインスタンスが、同じリモートの共有データベースと通信するために同じ JDBC 設定を使用する場合があります。sharedは、デフォルトでfalseになります。trueに設定すると、異なるキャッシュインスタンスによって重複データがキャッシュストアに書き込まれることが避けられます。preloadはデフォルトではfalseに設定されます。trueに設定されると、キャッシュストアに保存されるデータは、キャッシュが起動するとメモリーにプリロードされます。これにより、キャッシュストアのデータが起動後すぐに利用できるようになり、データのレイジーなロードの結果としてキャッシュ操作の遅れを防ぐことができます。プリロードされたデータは、ノード上でローカルにのみに保存され、プリロードされたデータのレプリケーションや分散はありません。Red Hat JBoss Data Grid は、エビクションのエントリーの最大設定数のみをプリロードします。
<persistence passivation="false" shared="false" preload="true">
<persistence passivation="false" shared="false" preload="true">Copy to Clipboard Copied! Toggle word wrap Toggle overflow 永続性とパージのセットアップ
fetchPersistentStateは、キャッシュの永続ステートを取り込むかどうかを決定し、クラスターに参加する際にこれをローカルキャッシュストアに適用します。キャッシュストアが共有される場合、キャッシュが同じキャッシュストアにアクセスする際に、fetch persistent 状態は無視されます。複数のキャッシュストアがこのプロパティーをtrueに設定する場合にキャッシュサービスを起動すると、設定の例外がスローされます。fetchPersistentStateプロパティーはデフォルトではfalseです。purgeSynchronouslyは、エクスパレーションをエビクションスレッドで発生させるかどうかを制御します。trueに設定されると、エビクションスレッドは、返されるものを即時にもたらすのではなく、パージが終了するまでブロックします。purgeSychronouslyプロパティーはデフォルトでfalseに設定されます。キャッシュストアが マルチスレッドパージをサポートする場合、期限の切れたエントリーを削除するためにpurgeThreadsが使用されます。purgeThreadsは、デフォルトで1に設定されます。マルチスレッドパージがサポートされているかを判断するには、キャッシュストアの設定を確認します。ignoreModificationsは、書き込み操作を共有キャッシュストアではなく、ローカルファイルキャッシュストアに許可することで、書き込みメソッドが特定のキャッシュストアにプッシュされるかどうかを決定します。特定の場合に、一時的なアプリケーションデータは、インメモリーキャッシュと同じサーバー上のファイルベースのキャッシュストアにのみ存在します。例えば、これはネットワーク内のすべてのサーバーによって使用される追加の JDBC ベースのキャッシュストアで適用されます。ignoreModificationsはデフォルトではfalseです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 非同期設定
これらの属性は、それぞれのキャッシュストアに固有の側面を設定します。例えば、location属性は、SingleFileStore がデータが含まれるファイルを維持する場所を指します。他のストアには、さらに複雑な設定が必要な場合があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow シングルトンと Push 状態の設定
singletonStoreは、クラスター内の 1 つのノードのみによって変更が保存されるのを可能にします。このノードはコーディネーターと呼ばれます。コーディネーターは、インメモリー状態のキャッシュをディスクにプッシュします。この機能は、すべてのノードのenabled属性をtrueに設定することによりアクティベートされます。sharedパラメーターは、singletonStoreを有効にした状態で同時に定義することはできません。enabled属性はデフォルトではfalseです。pushStateWhenCoordinatorはデフォルトではtrueに設定されます。trueの場合、このプロパティーは、コーディネーターになったノードに、インメモリー状態を基礎となるキャッシュストアに転送させます。このパラメーターは、コーディネーターがクラッシュし、新規のコーディネーターが選択される場合に役に立ちます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.2.3. プログラムを使用してキャッシュストアを設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、プログラムを使用してキャッシュストアを設定する方法について示しています。
手順17.2 プログラムを使用してキャッシュストアを設定
新規の設定ビルダーの作成
ConfigurationBuilderを使用して、新規の設定オブジェクトを作成します。ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence()
ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence()Copy to Clipboard Copied! Toggle word wrap Toggle overflow パッシベーションの設定
passivationは Red Hat JBoss Data Grid がストアと通信する方法に影響を与えます。パッシベーションは、インメモリーキャッシュからオブジェクトを削除し、システムまたはデータベースなどの 2 次的なデータストアに書き込みます。パッシベーションはデフォルトでfalseです。ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence() .passivation(false)ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence() .passivation(false)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 共有のセットアップ
sharedは、キャッシュストアが異なるキャッシュインスタンスによって共有されていることを示します。例えば、クラスター内のすべてのインスタンスが、同じリモートの共有データベースと通信するために同じ JDBC 設定を使用する場合があります。sharedは、デフォルトでfalseになります。trueに設定すると、異なるキャッシュインスタンスによって重複データがキャッシュストアに書き込まれることが避けられます。ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence() .passivation(false) .shared(false)ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence() .passivation(false) .shared(false)Copy to Clipboard Copied! Toggle word wrap Toggle overflow プリロードのセットアップ
preloadはデフォルトではfalseに設定されます。trueに設定されると、キャッシュストアに保存されるデータは、キャッシュが起動するとメモリーにプリロードされます。これにより、キャッシュストアのデータが起動後すぐに利用できるようになり、データのレイジーなロードの結果としてキャッシュ操作の遅れを防ぐことができます。プリロードされたデータは、ノード上でローカルにのみに保存され、プリロードされたデータのレプリケーションや分散はありません。JBoss Data Grid は、エビクションのエントリーの最大設定数のみをプリロードします。ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence() .passivation(false) .shared(false) .preload(true)ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence() .passivation(false) .shared(false) .preload(true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow キャッシュストアの設定
addSingleFileStore()は、この設定用のキャッシュストアとして SingleFileStore を追加します。addStoreメソッドを使用して追加できる、JDBC キャッシュストアなどの他のストアを作成することができます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 永続性のセットアップ
fetchPersistentStateは、キャッシュの永続ステートを取り込むかどうかを決定し、クラスターに参加する際にこれをローカルキャッシュストアに適用します。キャッシュストアが共有される場合、キャッシュが同じキャッシュストアにアクセスする際に、fetch persistent 状態は無視されます。複数のキャッシュストアがこのプロパティーをtrueに設定する場合にキャッシュサービスを起動すると、設定の例外がスローされます。fetchPersistentStateプロパティーはデフォルトではfalseです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow パージのセットアップ
purgeSynchronouslyは、エクスパレーションをエビクションスレッドで発生させるかどうかを制御します。trueに設定されると、エビクションスレッドは、返されるものを即時にもたらすのではなく、パージが終了するまでブロックします。purgeSychronouslyプロパティーはデフォルトでfalseに設定されます。キャッシュストアが マルチスレッドパージをサポートする場合、期限の切れたエントリーを削除するためにpurgeThreadsが使用されます。purgeThreadsは、デフォルトで1に設定されます。マルチスレッドパージがサポートされているかを判断するには、キャッシュストアの設定を確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更の設定
ignoreModificationsは、書き込み操作を共有キャッシュストアではなく、ローカルファイルキャッシュストアに許可することで、書き込みメソッドが特定のキャッシュストアにプッシュされるかどうかを決定します。特定の場合に、一時的なアプリケーションデータは、インメモリーキャッシュと同じサーバー上のファイルベースのキャッシュストアにのみ存在します。例えば、これはネットワーク内のすべてのサーバーによって使用される追加の JDBC ベースのキャッシュストアで適用されます。ignoreModificationsはデフォルトではfalseです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 非同期設定
これらの属性は、それぞれのキャッシュストアに固有の側面を設定します。例えば、location属性は、SingleFileStore がデータが含まれるファイルを維持する場所を指します。他のストアには、さらに複雑な設定が必要な場合があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow シングルトンの設定
singletonStoreは、クラスター内の 1 つのノードのみによって変更が保存されるのを可能にします。このノードはコーディネーターと呼ばれます。コーディネーターは、インメモリー状態のキャッシュをディスクにプッシュします。この機能は、すべてのノードのenabled属性をtrueに設定することによりアクティベートされます。sharedパラメーターは、singletonStoreを有効にした状態で同時に定義することはできません。enabled属性はデフォルトではfalseです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Push 状態のセットアップ
pushStateWhenCoordinatorはデフォルトではtrueに設定されます。trueの場合、このプロパティーは、コーディネーターになったノードに、インメモリー状態を基礎となるキャッシュストアに転送させます。このパラメーターは、コーディネーターがクラッシュし、新規のコーディネーターが選択される場合に役に立ちます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.2.4. SKIP_CACHE_LOAD フラグについて リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat JBoss Data Grid のリモートクライアントモードでは、キャッシュがキャッシュストアからプレロードされ、エビクションが無効な場合に、読み取り要求がメモリーに移動します。読み取り要求時にエントリーがメモリー内にないと、キャッシュストアがアクセスされ、読み取りパフォーマンスが影響を受けることがあります。
キーがメモリーにない場合にキャッシュストアの参照を回避するには、
SKIP_CACHE_LOAD フラグを使用します。