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