コンシステントハッシュ法を使用してノードの追加/削除を比較的安価な手順にする、memcachedで通常使用されるような分散キー/値システムについては話していません。
Pythonのdictやperlのハッシュのような標準のメモリ内ハッシュテーブルについて話しています。
コンシステントハッシュを使用する利点は、ハッシュテーブルのサイズ変更のコストを下げることにより、これらの標準データ構造にも当てはまるように思われます。リアルタイムシステム(およびその他の遅延の影響を受けやすいシステム)は、全体的なスループットがわずかに低下した場合でも、低コストの成長に最適化されたハッシュテーブルの恩恵を受ける/必要とします。
ウィキペディアは「インクリメンタルなサイズ変更」をほのめかしていますが、基本的にはサイズ変更のホット/コールド置換アプローチについて説明しています。安価な再ハッシュを実現するためにバケットルックアップにトライを使用する「拡張可能なハッシュ」に関する別の記事があります。
コンシステントハッシュ法を使用して成長コストを削減する、コア内の単一ノードのハッシュテーブルについて聞いたことがある人がいるかもしれません。または、この要件は、他のアプローチ(上記の2つのウィキペディアビット)を使用してより適切に満たされますか?
または...私の質問全体が間違っていますか?メモリページングの考慮事項により、複雑さはそれだけの価値がありませんか?つまり、コンシステントハッシュの余分な間接参照により、キー全体のごく一部のみを再ハッシュできますが、既存の各ページから読み取る必要がある可能性があるため、おそらくそれは問題ではありません。したがって、メモリレイテンシが主な要因であり、一部またはすべてのキーを再ハッシュすることは、メモリアクセスのコストと比較して重要ではありません。しかし、一方で、コンシステントハッシュを使用すると、すべてのキーの再マップが同じ宛先ページを持つため、次のようになります。キーが既存のページのいずれかに再マップする場合よりも、メモリのスラッシングが少なくなります。
編集:「data-structures」タグを追加し、「バケット」の代わりに「ページ」と言う最後の文を明確にしました。