Этап 13 из 15 · ≈ 10 ч

Репликация и шардирование

Основа с Senior

Синхронная и асинхронная репликация, лаг реплик, стратегии шардирования, consistent hashing.

Что важно знать

  • Реплики масштабируют чтение; асинхронная репликация — лаг, «не вижу своей записи».
  • Шардирование масштабирует запись и объём; ключ определяет распределение и какие запросы станут дорогими.
  • Горячий шард и решардинг — главные боли.
  • Consistent hashing — при добавлении узла переезжает малая часть ключей.

Критерии освоения

Senior ≈ 10 ч

  • Объясняет синхронную и асинхронную репликацию и последствия лага реплик для чтения
  • Выбирает ключ и стратегию шардирования и планирует решардинг
  • Объясняет consistent hashing и виртуальные узлы

Практика. Спроектировать шардирование таблицы заказов на 10 млрд строк — ключ, запросы по разным измерениям, решардинг без простоя.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Как работает consistent hashing и зачем нужны виртуальные узлы?Middle

Ключи и узлы хешируются на одно кольцо; ключ принадлежит первому узлу по часовой стрелке. При добавлении или удалении узла переезжает только ~1/N ключей, а не почти все, как при hash % N.

Полный разбор
Как в кластере выбирают лидера и что такое split brain?Senior

Лидером может стать только узел, за которого проголосовало большинство. Два большинства всегда пересекаются, поэтому в одном «сроке» (term) не бывает двух лидеров — это защищает от split brain.

Полный разбор
Пользователь сохранил изменения, обновил страницу — а изменений нет. Что происходит и как это исправить?Middle

Запись ушла в лидера, а чтение — на асинхронную реплику, которая ещё не догнала. Это нормальное поведение асинхронной репликации; приложение должно давать нужные гарантии само.

Полный разбор
Что делать с горячими ключами, на которые приходится непропорционально большая нагрузка?Senior

Горячий ключ не делится ни хешем, ни consistent hashing: все запросы к нему идут в один узел. Нужно размножить ключ для чтения или разбить его для записи.

Полный разбор
Какие бывают схемы репликации и чем они отличаются?Middle

С одним лидером — все записи через лидера, реплики повторяют его журнал. С несколькими лидерами — запись в любом дата-центре, конфликты разрешаются потом. Без лидера — клиент пишет и читает сразу в несколько реплик по кворуму.

Полный разбор
Как перешардировать данные без простоя?Senior

Переносить данные по частям, пока система работает: копия + догоняющий поток изменений + переключение маршрутизации по одной части и проверка.

Полный разбор
Как выбрать ключ и стратегию шардирования?Middle

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

Полный разбор
Чем синхронная репликация отличается от асинхронной и что выбрать?Middle

Синхронная — лидер подтверждает запись, когда реплика её сохранила: потерь при падении лидера нет, но задержка записи растёт, а отказ реплики может остановить запись. Асинхронная — подтверждает сразу: быстро, но последние записи могут потеряться.

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

← Вся карта «Backend-разработчик»

Партнёр платформы

Разбор собеседования с sotto

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

Разбор собеседования