Снапшоты своей файловой системы через LSM: с RocksDB легко, но есть нюансы
Доклад принят в программу конференции
Целевая аудитория
Тезисы
Разрабатывая собственную файловую систему, мы столкнулись с проблемой: как эффективно и быстро реализовать механизм снапшотов для защиты данных? Для хранения метаданных файловой системы мы используем RocksDB, популярную реализацию LSM-дерева на диске, которая будто бы идеальна для этой задачи — но на пути оказались скрытые рифы, неочевидные из документации.
В этом докладе я расскажу о нашем опыте интеграции преимуществ RocksDB, сфокусировавшись на реализации снапшотов файловой системы.
Вы узнаете как воспользоваться преимуществами LSM-дерева для реализации снапшотов и при этом не раздуть их метаданные из-за особенностей RocksDB. Как стреляют в ногу нюансы дедуплицирующей файловой системы и POSIX. И как делать поверх всего этого очистку более неиспользуемых данных.
4 года в IT, 2 года в YADRO. Дорос до старшего инженера. Спроектировал и руководил разработкой снапшотов в команде TATLIN.Backup.
Сам интересуюсь программированием со школы, попробовал несколько языков (работал на PHP, JS/TS, C#, Java и Rust, остановился на последнем)
В команде TATLIN.Backup меня почему-то называют техлидом, там я занимаюсь больше архитектурными вещами и ревью кода, поэтому отыгрываюсь на домашних проектах, пишу игры на расте и Godot :)
Видео
Другие доклады секции
Базы данных и системы хранения