Skip to content
Latchkey

コンシステントハッシュとは?

コンシステントハッシュは、ハッシュ関数を使ってキーとノードの両方を概念上のリング上に配置し、各キーを時計回りで次のノードに割り当てます。ノードが参加または離脱すると、単純なモジュロハッシュのようにほぼすべてのキーが動くのではなく、そのノードと隣接ノードの間のキーだけが移動します。負荷をより均等に分散させるため、しばしば仮想ノードが追加されます。

なぜ重要か

素朴なキーからノードへのマッピングは、ノード数が変わるとほぼすべてを再シャッフルし、巨大な cache やデータのチャーンを引き起こします。コンシステントハッシュはそのチャーンを変化に比例した量に抑えるため、分散キャッシュやシャードがこれに依存しています。

関連ガイド