Найти тему
Проект OpenNet

Для Btrfs представлена асинхронная реализация DISCARD

Для файловой системы btrfs представлена асинхронная реализация операции DISCARD (пометка освобождённых блоков, которые уже можно не хранить физически), реализованная инженерами компании Facebook.

Суть проблемы: в изначальной реализации DISCARD выполняется синхронно с остальными операциями, что в ряде случаев приводит к проблемам производительности, поскольку приходится ожидать завершения соответствующих команд накопителями, что требует дополнительное время. Это может стать проблемой в случае если реализация DISCARD накопителем работает медленно.

В случае асинхронной реализации ожидать завершения DISCARD накопителем при обычной работе ФС не требуется, что снимает проблему, переводя данную операцию в разряд фоновых. Представленная реализация также выполняет некоторые оптимизации. Например, она ожидает некоторое время из соображений что блок возможно будет вскоре использован, так что вообще не окажется смысла в выполнении процедуры DISCARD, а также пытается объединять регионы до фактического выполнения DISCARD с целью уменьшения общего числа операций.