Что такое шардирование и что нужно учитывать при его проектировании?

Шардирование распределяет строки между несколькими независимыми узлами по ключу, чтобы масштабировать объём данных и нагрузку. Это отличается от репликации, где узлы хранят копии.

Короткий ответ

Что ответить на собеседовании

Шардирование распределяет строки между несколькими независимыми узлами по ключу, чтобы масштабировать объём данных и нагрузку. Это отличается от репликации, где узлы хранят копии.

Подробный разбор

Ответ с пояснениями

Шардирование распределяет строки между несколькими независимыми узлами по ключу, чтобы масштабировать объём данных и нагрузку. Это отличается от репликации, где узлы хранят копии.

Ключ должен давать достаточно равномерное распределение и позволять маршрутизировать типовые запросы без обхода всех шардов. Важны горячие ключи, рост числа узлов и перенос данных без потерь.

Заранее определяют глобальные ID, уникальность, транзакции между шардами, резервное копирование и восстановление. Диапазонное распределение удобно для интервалов, хеширование — для балансировки; универсального ключа нет. Прежде чем шардировать, стоит проверить индексы, запросы и пределы более простой схемы.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее