コンシステントハッシュ法は便利なアルゴリズムだが、注意点がある。 仮想ノード数をいくつにするかという問題で、仮想ノード数が多ければ多いほどファイルは均一に分散するというわけではないという事実だ。 多数のキャッシュオブジェクトをいくつかのキャッシュコンテナにコンシステントハッシュ法で分散させるとしよう。キャッシュオブジェクトの個数を 10000 個、キャッシュコンテナの個数を 10 とすると、キャッシュコンテナあたりの平均キャッシュオブジェクト保有数は 1000 個だ。 果たして、あるハッシュアルゴリズムでは、どのくらいの仮想ノード数で、どのくらい均一に分散するのだろう? MD5 でのテスト 下記グラフは、横軸が仮想ノード数、縦軸が1キャッシュコンテナあたりの平均キャッシュオブジェクト保有数に対する標準偏差の割合だ。 従って、縦軸は 0 に近ければ近いほど均一に分散することを表す。 ハッシュ
![コンシステントハッシュを使う際の仮想ノード数の決め方 - にょきにょきブログ](https://cdn-ak-scissors.b.st-hatena.com/image/square/82a7139facabbbeecb9c12b63ab857f30a0e5927/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fs%2Fshawshank99%2F20130128%2F20130128100237.png)