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 подскажет развёрнутый ответ в реальном времени.