Симуляция шардинга базы данных
Настройки
DB Architect Pro
Пакет программ для моделирования распределенных систем, версия 2.4Архитектурные концепции
Хеширование по модулю
Простейшая форма шардинга с использованием hash(key) % N Несмотря на простоту реализации, она страдает от «шторма перебалансировки».
Недостаток: Изменение N (добавление/удаление сервера) меняет результат вычисления остатка от деления почти для каждого ключа. Это вынуждает базу данных перемещать почти 100% данных в новые места, что приводит к масштабным простоям.
Последовательное хеширование
Рассматривает хеш-пространство как кольцо (0-360°). Узлы размещаются на кольце. Ключи сопоставляются с кольцом и назначаются следующему узлу по часовой стрелке.
Решение: При добавлении узла он получает ключи только от своего непосредственного соседа. Перемещаются только ключи K/N . Это минимизирует передачу данных во время масштабирования.
Виртуальные узлы (vNodes)
В стандартном алгоритме согласованного хеширования узел может получить «большой кусок» кольца исключительно по счастливой случайности, что приводит к возникновению «горячих точек».
Принцип работы: каждому физическому серверу назначается несколько позиций (vNodes) в кольцевой сети (например, узел A находится под углами 10°, 150° и 290°). Это статистически сглаживает распределение, обеспечивая равномерную нагрузку (низкое стандартное отклонение).