コンシステントハッシュ法とは?こんしすてんとはっしゅほう
コンシステントハッシュ法とは、キーとノードの双方を同じハッシュ空間の円周上に置き、キーから時計回りに最初に出会うノードを担当とする割り当て方。ノードを増減しても移動するキーが全体のごく一部で済むため、分散データストアの台数変更が現実的になる。「ハッシュ値 mod 台数」方式との差がそのまま論点になる。
最終更新:2026-10-06
データベースSPを最短で暗記・合格する →背景
割り当てを「ハッシュ値 mod ノード数」で決めると、4台を5台に増やしただけで剰余がすべて変わり、ほぼ全部のキーが別ノードへ移る。移動が終わるまで読めない、あるいは全データを転送し直すことになり、増設が事実上できない。移動量を台数比ぶんに抑えるために考え出されたのが、環へ写して隣を担当させる方式である。
具体例
Apache Cassandraはトークンを環に並べて担当範囲を決め、1台を複数の仮想ノード(既定256)として置くことで偏りをならす。4台から5台へ増やすとき移るのは新ノードの担当区間ぶん、おおむね全体の5分の1で済む。Amazon DynamoDBのパーティション分割も同じ系統の考え方に立つ。
試験での引っ掛け
そのままでは環上の配置が偏り、特定ノードに負荷が集まる。仮想ノードを置いて初めて均されるので、「自動的に均等になる」わけではない。Redis Clusterは16,384個の固定スロットをノードへ割り当てる方式で、環に写す方法とは別物。またこの方式で分けたデータは範囲検索が全ノードへ散るため、受注日の範囲で引く用途には向かない。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。