コンシステント・ハッシュ法
コンシステント・ハッシュ法により、クラスター全体にデータを分散できるため、ノードの追加や除去の際に、再編成を最小限に抑えられます。
コンシステント・ハッシュ法により、クラスター全体にデータ分散できるため、ノードの追加や除去の際に、再編成を最小限に抑えられます。コンシステント・ハッシュ法は、パーティション・キーに基づいてデータをパーティション分割します。パーティション・キーおよびプライマリ・キーの説明については、「データ・モデリング例」を参照してください。
たとえば、以下のようなデータがあるとします。
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 |
クラスターの各ノードは、ハッシュ値に基づいたデータ範囲に対する責任を担います。
DataStax Enterpriseは、パーティション・キーの値とノードが担当する範囲に従って各ノードにデータを置きます。たとえば、4ノードのクラスターでは、この例のデータは以下のように分散されます。
ノード | 開始範囲 | 終了範囲 | パーティション・キー | ハッシュ値 |
---|---|---|---|---|
1 | -9223372036854775808 | -4611686018427387904 | johnny | -6723372854036780875 |
2 | -4611686018427387903 | -1 | jim | -2245462676723223822 |
3 | 0 | 4611686018427387903 | suzy | 1168604627387940318 |
4 | 4611686018427387904 | 9223372036854775807 | carol | 7723358927203680754 |