Что такое шардирование?

Middle
579 просмотров
AFK Offer AI

Шардирование — разделение данных по нескольким серверам (шардам). Каждый шард хранит часть данных. Цель — горизонтальное масштабирование, когда один сервер не справляется.

Стратегии:

  • По диапазону: user_id 1-1M → shard1, 1M-2M → shard2
  • По хешу: shard = hash(user_id) % N
  • По бизнес-логике: EU-пользователи → EU-шард
Проблемы: cross-shard JOIN невозможен, ребалансировка при добавлении шарда, distributed transactions. Consistent hashing помогает минимизировать перемещение данных при изменении числа шардов.

Не путать с репликацией: репликация — копии одних данных, шардирование — разные данные.

Следующий вопрос

Когда использовать panic?