← К оглавлению занятия

⚠️ Ошибки

📁 Блок: MongoDB / репликация ⏱️ Время изучения: ~90 мин 🎯 Сложность: Продвинутая

⚡ Кратко: суть занятия

Репликация в MongoDB — способ повысить надёжность и отказоустойчивость базы данных.

Простая идея: есть несколько копий данных, которые автоматически поддерживаются в синхронизации.

Цели репликации: отказоустойчивость и повышение производительности чтения.

Replica set — группа экземпляров mongod с одним набором данных.

Primary принимает записи, secondary хранят копии и могут помогать с чтением.

Синхронная репликация даёт более актуальные копии, но добавляет задержку.

Асинхронная репликация быстрее для записи, но secondary могут отставать.

Arbiter не хранит данные и участвует в выборах primary при сбое.

Типичные ошибки

Считать arbiter репликой данных

Симптом: Ожидают, что с него можно читать документы.

Исправление: Arbiter не хранит набор данных.

Путать primary и secondary

Симптом: Запись отправляется на secondary без понимания настроек.

Исправление: Запись обычно идёт в primary.

Игнорировать replication lag

Симптом: После записи чтение с secondary возвращает старое значение.

Исправление: Учитывайте задержку асинхронной репликации.

Считать синхронную репликацию всегда лучшей

Симптом: Система становится медленной на расстоянии.

Исправление: Сравнивайте требования к актуальности и задержке.

Забыть про выборы

Симптом: При сбое primary ожидают ручного переключения всегда.

Исправление: Replica set может выбрать новый primary автоматически.

Распределять чтение без анализа

Симптом: Чтение с secondary нарушает ожидания пользователя.

Исправление: Проверьте требования к свежести данных.