20.6.15. hotgitops Hash Functions


Red Hat Data Grid は一貫性のあるハッシュ機能を使用して、ハッシュホイールにノードを置き、同じ wheel にエントリーのキーを配置して、エントリーの場所を判断します。

Infinispan 4.2 以前では、ハッシュ領域は 10240 にハードコーディングされましたが 5.0 以降、ハッシュ領域は Integer.MAX_INT です。Hotgitops クライアントはデフォルトで特定のハッシュスペースを想定してはならないことに注意してください。ハッシュトポロジーの変更が検出されたときに毎回、この値は Hot336 プロトコルを介してクライアントに返信されます。

Hotgitops プロトコルを介して Red Hat Data Grid と対話する場合は、プラットフォームに依存しない動作を確保するために、キー(および値)がバイト配列であることが義務付けられます。そのため、バックエンド上のハッシュディストリビューションを認識している smart-clients は、プラットフォームに依存しない方法で、このようなバイトアレイキーのハッシュコードを計算できる必要があります。このため、Red Hat Data Grid で使用されるハッシュ関数はバージョン化され、文書化されるため、必要に応じて Java 以外のクライアントが再実装できます。

使用するハッシュ関数のバージョンは、ハッシュ関数のバージョンパラメーターとして HotTEMPLATES プロトコルにあります。

  1. バージョン 1(単一のバイト、0x01)は、Austin Appleby の MurmurHash 2.0 アルゴリズム、高速で非暗号化のハッシュが、優れたディストリビューション、競合、および有効な動作を示す高速で非暗号化ハッシュに基づいています。使用するアルゴリズムの特定バージョンは、大規模な CPU アーキテクチャーとリトルエンディアン CPU アーキテクチャーの両方で一貫した動作を可能にする、若干遅く、エンディアンに依存しないバージョンです。また、Red Hat Data Grid のバージョンは、ハッシュを -1 としてハードコーディングします。アルゴリズムの詳細については、Austin Appleby の MurmurHash 2.0 ページ を参照してください。その他の実装は、Wikipedia に記載されています。このハッシュ関数は、Infinispan 4.2.1 まで Hotgitops サーバーによって使用されるデフォルトのものです。Infinispan 5.0 以降、サーバーはハッシュバージョン 1 を使用しません。Infinispan 9.0 以降、クライアントはハッシュバージョン 1 を無視します。
  2. バージョン 2(単一バイト、0x02)、Infinispan 5.0 以降、Austin Appleby の MurmurHash 3.0 アルゴリズム を基にした新しいハッシュ関数がデフォルトで使用されます。ハッシュ関数の詳細は、この wiki を参照してください。2.0 と比較すると、パフォーマンスが向上します。Infinispan 7.0 以降、サーバーは HotRod 1.x クライアントにバージョン 2 のみを使用します。
  3. バージョン 3(単一バイト、0x03)、Infinispan 7.0 以降、デフォルトで新しいハッシュ関数が使用されます。この関数は wiki に基づいていますが、サーバーの ConsistentHash で使用されるハッシュセグメントも認識します。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る