Как научить 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 — это масштабируемая инфраструктура, сервисы хранения данных, инструменты машинного обучения и средства разработки.

Видео