コンシステント・ハッシュ法

コンシステント・ハッシュ法により、クラスター全体にデータを分散できるため、ノードの追加や除去の際に、再編成を最小限に抑えられます。

コンシステント・ハッシュ法により、クラスター全体にデータを分散できるため、ノードの追加や除去の際に、再編成を最小限に抑えられます。コンシステント・ハッシュ法は、パーティション・キーに基づいてデータをパーティション分割しますパーティション・キーとプライマリ・キーの説明については、CQL for DataStax Enterprise 5.1の「データ・モデリング例」を参照してください。

たとえば、以下のようなデータがあるとします。

name age car gender
jim 36 camaro M
carol 37 bmw F
johnny 12 M
suzy 10 F

データベースは、ハッシュ値を各パーティション・キーに割り当てます。

パーティション・キー Murmur3ハッシュ値
jim -2245462676723223822
carol 7723358927203680754
johnny -6723372854036780875
suzy 1168604627387940318

クラスターの各ノードは、ハッシュ値に基づいたデータ範囲に対する責任を担います。

図: 4つのノードで構成されるクラスターのハッシュ値

DataStax Enterpriseは、パーティション・キーの値とノードが担当する範囲に従って各ノードにデータを置きます。たとえば、4ノードのクラスターでは、この例のデータは以下のように分散されます。

ノード 開始範囲 終了範囲 パーティション・キー ハッシュ値
A -9223372036854775808 -4611686018427387904 johnny -6723372854036780875
B -4611686018427387903 -1 jim -2245462676723223822
C 0 4611686018427387903 suzy 1168604627387940318
D 4611686018427387904 9223372036854775807 carol 7723358927203680754