--- aliases: tags: - зрелость/🌱 date: - - 2024-06-30 zero-link: - "[[00 Алгоритмы]]" parents: - "[[Шардирование в БД]]" linked: --- Представим, что весь диапазон нашей хэш функции можно отобразить на окружности (0 до 32 или от -32 до 32). Хэшфункция указывает место на круге. Хэш-функция используется для определения места узлов на круге. Этаже хэш функция используется для определения значения ключей на круге. Выбирается ближайший по часовой стрелке узел. **Плюсы:** - При добавлении/удалении шардов затрагивается только часть данных. **Минусы:** - Данные могут быть распределены не равномерно, если между шардами будет различное расстояние на круге. ## Virtual Nodes (Bucket) Можно попытаться решить проблему неравноморного распределения. Для этого мы добавим виртуальные шарды: для одной ноды определяется несколько точек на круге. Такой подход используется в [Cassandra](Cassandra.md) ## Дополнительные материалы - Есть какая-то библиотека Guava/Sumbur