20.6.5.3. Distribution-Aware クライアントトポロジー変更ヘッダー
Infinispan 5.2 では、一貫性のあるハッシュ機能に基づいた仮想ノードが破棄され、代わりにセグメントベースの一貫性のあるハッシュが実装されました。Hotgitops クライアントがデータを可能な限り確実に見つけ出す機能を満たすために、Red Hat Data Grid は、セグメントベースの一貫したハッシュを、Hoting 1.x プロトコルに適合するように変換しました。バージョン 2.0 以降、完全に新しいディストリビューション対応トポロジー変更ヘッダーが実装されました。このヘッダーは、一貫性のあるハッシュに基づいて一貫したハッシュに基づいて、データの場所の保証を提供するものです。
| フィールド名 | サイズ | 値 |
|---|---|---|
| トポロジー変更マーカーのある応答ヘッダー | variable | |
| トポロジー ID | vInt | トポロジー ID |
| トポロジーの num サーバー | vInt | クラスター内で稼働している Red Hat Data Grid Hotgitops サーバーの数。これは、これらのノードの一部のみが HotTEMPLATES サーバーを実行している場合に、クラスター全体のサブセットになる可能性があります。 |
| M1: ホスト/IP 長 | vInt | Hotgitops クライアントがアクセスするために使用できる各クラスターメンバーのホスト名または IP アドレスの長さ。ここで変数の長さを使用すると、ホスト名、IPv4 アドレス、および IPv6 アドレスに対応できます。 |
| M1: ホスト/IP アドレス | string | Hot336 クライアントがアクセスに使用できる個別のクラスターメンバーのホスト名または IP アドレスが含まれる文字列。 |
| M1: ポート | 2 バイト(未署名) | Hotgitops クライアントがこのクラスターメンバーと組み合わせるために使用できるポート。 |
| m2: ホスト/IP の長さ | vInt | |
| m2: ホスト/IP アドレス | string | |
| m2: ポート | 2 バイト(未署名) | |
| … | … | |
| ハッシュ関数バージョン | 1 バイト | 使用中の特定のハッシュ関数を参照するハッシュ関数のバージョン。詳細は「 Hotgitops hash functions 」を参照してください。 |
| トポロジーの num セグメント | vInt | トポロジー内のセグメントの合計数 |
| セグメントの所有者数 | 1 バイト | これには 0、1 または 2 所有者のいずれかを指定できます。 |
| 最初の所有者のインデックス | vInt | すべてのノードの一覧を指定すると、この一覧にあるこの所有者の位置になります。これは、このセグメントの所有者の数が 1 または 2 の場合にのみ表示されます。 |
| 2 つ目の所有者のインデックス | vInt | すべてのノードの一覧を指定すると、この一覧にあるこの所有者の位置になります。これは、このセグメントの所有者の数が 2 の場合にのみ表示されます。 |
この情報を指定すると、Hotgitops クライアントはすべてのハッシュセグメントを再計算でき、各セグメントの所有者であるノードを検出できる必要があります。セグメントごとに所有者が 2 つ以上存在する可能性があっても、Hot pressure プロトコルは効率の理由から所有者の数を制限するものです。