プロジェクトのヴォルデモートのデザインページ:
http://project-voldemort.com/design.php
ハッシュリングは区間[0、2^31-1]をカバーすると述べられています。
ここで、間隔[0、2^31-1]は2^31の総数を表し、最大数の2 ^ 31-1はすべて1に設定された31ビットです(これを納得させるために、2 ^3-を検討してください)。 1. 2 ^ 3=8で0x1000です。2^3-1= 7で0x111です)。
したがって、通常の32ビットアドレスワードを使用して値を格納する場合、1ビットの空き容量があります。
では、なぜ2 ^ 31-1が上限なのですか?その余分なビットは、ある種のシステム簿記に使用されていますか?
(たとえば、1ビット余分に1ビット追加すると、オーバーフローすることなく2つの有効なハッシュアドレスを安全に追加するためのスペースが提供されます)。
そして最後に、この選択はヴォルデモートに固有のものですか、それとも他のコンシステントハッシュスキームで見られますか?