10.3.7. キーベースのリハッシュ対応 Operator


イテレーター、スプリッター、および それぞれの 情報は、セグメントだけではなく、セグメントごとのキーを追跡するために、リハッシュ認識が他の端末オペレーターとは異なります。これは、クラスターメンバーシップが変更された場合でも、1回だけ(iterator と spliterator)または1回以上の(forEach)の動作を保証するためです。

リモートノードで呼び出されると iterator および spliterator オペレーターは、エントリーの再バッチを返します。この場合、次のバッチは最後に使用された後にのみ送信されます。このバッチ処理は、ある時点のメモリー内のエントリー数を制限するために行われます。ユーザーノードは、処理したキーを保持し、特定のセグメントが完了すると、それらのキーをメモリから解放します。そのため、iterator メソッドには順次処理が優先されることがあるため、すべてのノードからではなく、セグメントキーのサブセットのみがメモリーに保持されます。

forEach() メソッドはバッチを返しますが、キーの処理が少なくともバッチ処理された後に、キーのバッチを返します。これにより、送信元ノードはどの鍵がすでに処理されているかを把握して、同じエントリーを再処理する可能性を減らすことができます。ただし、これはノードが予期せずダウンした場合に、少なくとも 1 回の動作を要する可能性があることを意味します。この場合、そのノードはバッチを処理していてまだ完了していない可能性があり、処理されたが完了したバッチに含まれていないエントリは、再ハッシュ失敗オペレーションが発生したときに再度実行されます。ノードを追加しても、すべての応答を受け取るまで、再ハッシュフェイルオーバーが発生しないため、この問題は発生しません。

これらの操作バッチサイズは、どちらも CacheStreamdistributedBatchSize メソッドを呼び出すことで設定できる同じ値によって制御されます。この値はデフォルトで、状態遷移で設定された chunkSize に設定されます。残念ながら、この値は、メモリ使用量とパフォーマンスと少なくとも1回のトレードオフであり、マイレージは異なる場合があります。

レプリケートされた分散キャッシュでのiteratorの使用

ノードが分散ストリームのすべての要求されたセグメントのプライマリーまたはバックアップ所有者である場合、Red Hat Data Grid は イテレーター または Spliterator ターミナル操作をローカルで実行します。リモート反復がリソース集約型であるため、パフォーマンスを最適化します。

この最適化は、レプリケートされたキャッシュと分散キャッシュの両方に適用されます。ただし、共有 され、write-behind が有効になっているキャッシュストアを使用する場合、Red Hat Data Grid はリモートで反復を実行します。この場合は、リモートで反復を行うことで一貫性が確保されます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る