一貫性ハッシュ(DB)
ノードの追加や削除の際に、移動が必要なキーをごく一部に抑えられるデータ分散の手法。単純な剰余ハッシュは構成が変わるたびにほぼ全データを再配置させてしまうが、その問題を解く。
問題の出発点は、「node = hash(key) % N」ではNが変わる(ノードが加わる・抜ける)とほとんどすべてのキーの担当が変わり、壊滅的な再配置が起きることだ。一貫性ハッシュはノードとキーを円環状の「リング」(ハッシュ空間)に置き、キーは時計回りで次のノードに属する。ノードを足すと隣のノードからキーの一部を引き継ぐだけ、抜けると隣が引き継ぐだけなので、動くデータは約1/Nで済む。仮想ノード(vnode)を使えば、分布と負荷がより均等になる。2007年のAmazon Dynamo、ひいてはCassandra、Riak、DynamoDBの土台となった。CDN、memcachedのようなキャッシュ、ロードバランサにも使われる。スケーラブルな分散システムの古典的な部品である。