6.4. 状態の転送 (State Transfer)


状態の転送は、ノードがクラスターに参加するか、またはクラスターを離れるときにはいつでも Red Hat JBoss Data Grid で自動的に発生します。
新規ノードは、ディストリビューションモードとレプリケーションモードの両方でクラスターに参加する際に、既存ノードからキャッシュの状態を受信します。さらに状態の転送は、ノードがディストリビューションモードでクラスターを出た後に状態を再分散する際にノードに発生します。
状態の転送は、キャッシュがインメモリーの状態か、または永続状態であるかにかかわらず発生する可能性があります。
  • レプリケーションモードでは、クラスターに参加するノードは、現在キャッシュ内の他のノードにあるデータのコピーを受信します。これは、既存のノードが現在のキャッシュの状態の一部を配置するときに発生します。
  • ディストリビューションモードでは、一貫性のあるハッシュで決定される、キー領域全体のスライスが含まれます。新規ノードがクラスターに参加すると、それぞれの既存ノードから取られたキー領域のスライスが受信されます。状態の転送により、新規ノードでキー領域のスライスが受信され、既存のノードが以前に対象としていたデータの一部が減少します。

6.4.1. 非ブロッキング状態転送

Red Hat JBoss Data Grid における 非ブロッキング状態転送は、状態の転送が進行中である場合のクラスターまたはノードが応答できない時間を最小限にすることを目的としています。
JBoss Data Grid における非ブロッキング状態転送
  • 状態の遷移を実行することを可能にします (クラスターのパフォーマンスが低下します)。ただし、状態の遷移時にパフォーマンスが低下すると、例外がスローされず、プロセスを続行できます。
  • マージ後のデータ競合を解決するためのメカニズムは追加しませんが、今後これを追加することについては実行可能です。

6.4.2. JMX による状態転送の抑制

保守を行うためにクラスターの停止および再起動を行うにあたり、JMX を使用して状態転送を抑制することができます。この操作は、より効率的なクラスターのシャットダウンと起動を許可し、グリッドを停止する際のメモリー不足のエラーの発生リスクを取り除きます。
新規ノードがクラスターに参加し、再調整が抑制される際に、getCache() 呼び出しは、再調整が再度有効にされないか、または stateTransfer.awaitInitialTransferfalse に設定されない限り、stateTransfer.timeout が期限切れになった後にタイムアウトになります。
状態転送および再調整を無効にすることは、部分的なクラスターのシャットダウンや再起動の場合に有効ですが、状態転送が無効にされているために部分的なクラスターのシャットダウンでデータが失われる可能性があります。

6.4.3. rebalancingEnabled 属性

再調整の抑制は、rebalancingEnabled JMX 属性によってのみトリガーでき、これには特定の設定は不要です。
rebalancingEnabled 属性は、いずれのノードでも LocalTopologyManager JMX Mbean から、クラスター全体に対して変更することができます。この属性はデフォルトではtrue であり、プログラムを使って設定することができます。
Hot Rod などのサーバーは、起動時に設定で宣言されるすべてのキャッシュを起動するよう試みます。再調整が無効にされる場合、キャッシュは起動に失敗します。そのため、サーバー環境で以下の設定を使用することが必須になります。
<await-initial-transfer="false"/>
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.