Снапшоты своей файловой системы через LSM: с RocksDB легко, но есть нюансы

Базы данных и системы хранения

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

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

Добавление снапшотов (атомарных слепков данных) в файловой системе — задача весьма нетривиальная. Послушаем про нюансы атомарности при записи, раскроем LSM-деревья и разберемся, как они помогают в данной задаче.

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

Доклад будет полезен инженерам, рассматривающим embedded базы данных типа RocksDB и LevelDB для сложных систем, а также всем, кто хочет заглянуть под капот современных хранилищ и понять, как теория LSM-деревьев сталкивается с практикой высоких нагрузок.

Тезисы

Разрабатывая собственную файловую систему, мы столкнулись с проблемой: как эффективно и быстро реализовать механизм снапшотов для защиты данных? Для хранения метаданных файловой системы мы используем RocksDB, популярную реализацию LSM-дерева на диске, которая будто бы идеальна для этой задачи, — но на пути оказались скрытые рифы, неочевидные из документации.

В этом докладе я расскажу о нашем опыте интеграции преимуществ RocksDB, сфокусировавшись на реализации снапшотов файловой системы.

Вы узнаете, как воспользоваться преимуществами LSM-дерева для реализации снапшотов и при этом не раздуть их метаданные из-за особенностей RocksDB. Как стреляют в ногу нюансы дедуплицирующей файловой системы и POSIX. И как делать поверх всего этого очистку более не используемых данных.

4 года в IT, 2 года в YADRO. Дорос до старшего инженера. Спроектировал и руководил разработкой снапшотов в команде TATLIN.Backup.

Интересуется программированием со школы, попробовал несколько языков (работал на PHP, JS/TS, C#, Java и Rust, остановился на последнем).

В команде TATLIN.Backup его называют техлидом, там он занимается больше архитектурными вещами и ревью кода, поэтому отыгрывается на домашних проектах, пишет игры на Rust и Godot.

Видео

Другие доклады секции

Базы данных и системы хранения