MongoBD
Что это:
MongoBD - документоориентированная система управления базами данных, не требующая описания схемы таблиц.
Использует JSON-подобные документы и схему базы данных.
GridFS
GridFS - внутренняя система хранения файлов более 16 MB.
Использует 2 коллекции для хранения:
- fs.files - хранение файлов по частям.
- fs.chunks - хранения метаданных
Конвенция именования:
- Database - camelCase, в единственной числе, "db" в конце.
- Collections - snake_case, множественное число.
- Variables - camelCase.
Что произойдет, если падает мастер-нода:
Если падает мастер-нода (primary) в реплика-сете, это обычная и предусмотренная ситуация, которая
обрабатывается механизмом автоматического выбора нового primary.
- Остановка записи. Пока не выбран новый primary, кластер не может обрабатывать записи (write). Чтения (read)
могут продолжаться, если вы настроили чтение с secondary (readPreference: secondary), но не все типы
операций поддерживаются.
- Выбор нового primary. Оставшиеся узлы (ноды) проводят перевыборы (election). Узел с наибольшим
приоритетом и самым актуальным данными становится новым primary. Обычно выбор занимает несколько секунд
(5–10).
- Восстановление старой ноды. Когда упавшая нода вернётся, она подключится как secondary и
синхронизируется с текущим primary.
Возможные проблемы:
- Если нет кворума (большинство нод недоступны) — кластер "зависает", не может выбрать нового primary.
- В сетевой сегментации ("split brain") могут временно появиться два primary — MongoDB старается это
избегать с помощью кворума и приоритетов.
Как подготовиться:
- Используйте нечётное количество нод в реплика-сете (обычно 3, 5).
- Назначьте приоритеты (priority) для контроля, кто может стать primary.
- Добавьте арбитра (arbiter), если не хотите держать полноценную 3-ю ноду, но нужен кворум.