20.2. ライトビハインドキャッシング


Red Hat JBoss Data Grid のライトビハインド (非同期) モードでは、キャッシュの更新が非同期的にキャッシュストアへ書き込みされます。非同期的な更新は、キャッシュと対話するクライアントスレッド以外のスレッドによってキャッシュストアの更新が実行されるようにします。
ライトビハインドモードの主な利点は、キャッシュ操作のパフォーマンスが基礎のストア更新によって影響されないことです。ただし、非同期の更新であるため、キャッシュと比較した場合にキャッシュストアに陳腐データが短期間存在することになります。

20.2.1. スケジュール外のライトビハインドストラテジーについて

スケジュール外のライトビハインドストラテジーモードでは、Red Hat JBoss Enterprise Data Grid は保留の変更を平行して適用し、変更をできるだけ早く保管しようとします。そのため、複数のスレッドが変更の完了を待つことになります。これらの変更が完了すると、スレッドが使用可能になり、基礎のキャッシュストアに適用されます。
このストラテジーは、待ち時間が短く、運用コストが低いキャッシュストアに適しています。例としては、キャッシュストアがキャッシュ自体に対してローカルとなる、共有されていないローカルのファイルベースキャッスストアなどが挙げられます。このストラテジーを使用すると、キャッシュの内容とキャッシュストアの内容に不整合が生じる時間が、可能な限り最短の間隔まで削減されます。

20.2.2. スケジュール外のライトビハインドストラテジーの設定 (リモートクライアントサーバーモード)

Red Hat JBoss Data Grid のリモートクライアントサーバーモードでライトビハインドストラテジーを設定するには、次のように write-behind 要素をターゲットキャッシュストアの設定に追加します。

手順20.2 write-behind 要素

write-behind 要素は次の設定パラメーターを使用します。
  1. modification-queue-size パラメーター

    modification-queue-size パラメーターは、非同期ストアの変更キューサイズを設定します。更新がキャッシュストアがキューを処理するよりも速く行なわれる場合に、非同期ストアは同期ストアのように動作します。ストアの動作は、キューが要素を許可できるようになるまで同期された状態になり、要素をブロックします。その後ストアの動作は再び非同期になります。
    <file-store passivation="false" 
                path="${PATH}" 
                purge="true" 
                shared="false">
        <write-behind modification-queue-size="1024" />
  2. shutdown-timeout パラメーター

    shutdown-timeout パラメーターは、キャッシュストアがシャットダウンするまでのミリ秒単位の時間を指定します。ストアが停止している場合でも、いくらかの変更が依然として適用される必要がある場合があります。タイムアウトの値として大きな値を設定すると、データを損失する可能性が低くなります。このパラメーターのデフォルト値は 25000 です。
    <file-store passivation="false" 
                path="${PATH}" 
                purge="true" 
                shared="false">
        <write-behind modification-queue-size="1024" 
                      shutdown-timeout="25000" />
  3. flush-lock-timeout パラメーター

    flush-lock-timeout パラメーターは、定期的にフラッシュされる状態を保護するロックを取得するための時間 (ミリ秒単位) を指定します。このパラメーターのデフォルト値は 15000 です。
    <file-store passivation="false" 
                path="${PATH}" 
                purge="true" 
                shared="false">
        <write-behind modification-queue-size="1024" 
                      shutdown-timeout="25000"  
                      flush-lock-timeout="15000" />
  4. thread-pool-size パラメーター

    thread-pool-size パラメーターはスレッドプールのサイズを指定します。このスレッドプール内のスレッドによって、変更がキャッシュストアに適用されます。このパラメーターのデフォルト値は 5 です。
    <file-store passivation="false" 
                path="${PATH}" 
                purge="true" 
                shared="false">
        <write-behind modification-queue-size="1024" 
                      shutdown-timeout="25000"  
                      flush-lock-timeout="15000" 
                      thread-pool-size="5" />
    </file-store>

20.2.3. スケジュール外のライトビハインドストラテジーの設定 (ライブラリーモード)

キャッシュのストアへのエントリーのライトビハインドストラテジーを有効にするには、以下のように async 要素をストア設定に追加します。

手順20.3 async 要素

async 要素は次の設定パラメーターを使用します。
  1. modificationQueueSize パラメーターは、非同期ストアの変更キューサイズを設定します。更新がキャッシュストアがキューを処理するよりも速く行なわれる場合に、非同期ストアは同期ストアのように動作します。ストアの動作は、キューが要素を受け入れるまで同期が取られた状態のままになり、要素をブロックします。その後ストアの動作は再び非同期になります。
    <persistence>
        <fileStore location="${LOCATION}">
            <async enabled="true" 
                        modificationQueueSize="1024" />
  2. shutdownTimeout パラメーターは、キャッシュストアがシャットダウンされた後の時間 (ミリ秒単位) を指定します。これにより、キャッシュがシャットダウンされた際に非同期ライターがデータをストアへフラッシュする時間が提供されます。このパラメーターのデフォルト値は 25000 です。
    <persistence>
        <fileStore location="${LOCATION}">
            <async enabled="true" 
                        modificationQueueSize="1024" 
                        shutdownTimeout="25000" />
  3. flushLockTimeout パラメーターは、定期的にフラッシュする状態を保護するロックを取得するための時間 (ミリ秒単位) を指定します。このパラメーターのデフォルト値は 15000 です。
    <persistence>
        <fileStore location="${LOCATION}">
            <async enabled="true" 
                        modificationQueueSize="1024" 
                        shutdownTimeout="25000" 
                        flushLockTimeout="15000" />
  4. threadPoolSize パラメーターは、変更をストアに同時に適用するスレッドの数を指定します。このパラメーターのデフォルト値は 5 です。
    <persistence>
        <fileStore location="${LOCATION}">
            <async enabled="true" 
                        modificationQueueSize="1024" 
                        shutdownTimeout="25000" 
                        flushLockTimeout="15000" 
                        threadPoolSize="5"/>
        </fileStore>
    </persistence>
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.