Встречается на собеседованиях • сегодня

Как работает шардирование

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

Принципы:

  • Критерий шардирования: данные распределяются по ключу (например, user_id % 3).
  • Горизонтальное масштабирование: добавление новых шардов увеличивает общую ёмкость.
  • Локализация запросов: запросы направляются только в нужный шард.

Пример:

java
// Определение шарда по хэшу userId
int shardIndex = Math.abs(userId.hashCode()) % numberOfShards;
Database shard = shards.get(shardIndex);
shard.save(userData);

Проблемы:

  • Решардинг при изменении количества шардов.
  • Сложности с транзакциями и JOIN между шардами.
  • Неравномерная нагрузка (hot shards).

Используется в MongoDB, PostgreSQL (через расширения), Cassandra.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы