Профессиональная конференция разработчиков высоконагруженных систем

Как научить MongoDB делать горячие физические бэкапы

Бэкенд, теория программирования

Доклад принят в программу конференции

Мнение Программного комитета о докладе

История о том, как Яндекс возвращал возможность физических бэкапов в MongoDB. Будет много подробностей про движок базы, про подход MongoDB к хранению данных и про то, как написать собственную логику бэкапа.

Целевая аудитория

Люди, которым интересно разбираться во внутреннем устройстве СУБД

Тезисы

0. Введение:
- Немного про логические и бинарные бэкапы
- В MongoDB Community убрали возможность физических бэкапов
- Следовательно, нужно добавить её обратно

1. Про движок MongoDB - WiredTiger:
- Немного про MMapV1 - предшественника WiredTiger
- Общая архитектура WiredTiger

2. Как бэкапить WiredTiger:
- Низкоуровневая организация хранения данных в WiredTger
- Как уплотненяются данные
- Курсоры - способ доступа к данным(и не только)
- WT_CURSOR_BACKUP - способ создания резервных копий
- Что, если скопировать WT_CURSOR_BACKUP?

3. Применяем знания на практике:
- Пишем новые стадии агрегации, чтобы соответствовать интерфейсу MongoDB Enterprise и PSMDB
- $backupCursor и $backupCursorExtend - описание
- $backupCursor и $backupCursorExtend - реализация
- Как воспользваться ими для снятия бэкапа

Разработчик СУБД

Yandex Cloud

Строят публичную облачную платформу Yandex Cloud, чтобы дать компаниям доступ к технологиям и сервисам, которые проверены нагрузками Яндекса. Продукты Yandex Cloud — это масштабируемая инфраструктура, сервисы хранения данных, инструменты машинного обучения и средства разработки.

Видео