Если моя клавиша ввода хэшируется где-то между machine1
и machine2
в круге, и наш алгоритм работает по часовой стрелке, то мы знаем, что будет возвращено machine2
.
consistentHash.getMachine(myInput) = machine2;
Что если я хотите избежать machine2
для myInput
? Скажем, myInput
- это идентификатор учетной записи, и он увеличил свой бюджет до machine2
. Есть ли способ указать эту дополнительную информацию и получить вместо нее machine0
, то есть
consistentHash.getMachine(input, excludes=[machine2]) = machine0;
Меня интересует как объяснение алгоритма c, так и любые существующие реализации / библиотеки (предпочтительно Java) ), если они существуют.

(Источник изображения: http://michaelnielsen.org/blog/consistent-hashing)