Hardreplicationsharding

Что такое REPLICA и sharding?

1Постановка

Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.

2Решение

Replication — копирование данных между серверами (обычно master для записи, реплики для чтения). Sharding — горизонтальное разделение данных по ключу на разные серверы.

Replication:                Sharding:
  ┌─────────┐                 user_id % 3 == 0 → Shard A
  │ Master  │ (writes)        user_id % 3 == 1 → Shard B
  └────┬────┘                 user_id % 3 == 2 → Shard C
       │ (stream)             каждый шардж — отдельный сервер БД
  ┌────┴────┐
  │ Replica │ (reads)
  └─────────┘

Репликация решает нагрузку на чтение и отказоустойчивость (failover через Patroni/Orchestrator). Шардинг — размер одной БД и горизонтальный масштаб, но усложняет cross-shard JOIN и транзакции. Шардинг — крайняя мера: сначала вертикальный масштаб, реплики, партиционирование.

3Как отвечать

  • Сначала уточните условия и ограничения, покажите аналитическое мышление.
  • Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
  • Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡

На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.