Dla systemu plików btrfs asynchroniczna realizacja operacji DISCARD (oznaczenie zwolnionych bloków, które już nie muszą być fizycznie przechowywane), zrealizowana przez inżynierów firmy Facebook.
Istota problemu: w pierwotnej realizacji DISCARD jest wykonywane synchronicznie z innymi operacjami, co w wielu przypadkach prowadzi do problemów z wydajnością, ponieważ konieczne jest oczekiwanie na zakończenie odpowiednich poleceń przez nośniki, co wymaga dodatkowego czasu. Może to stać się problemem, jeśli realizacja DISCARD przez nośnik działa wolno.
Przy asynchronicznej realizacji oczekiwanie na zakończenie DISCARD przez nośnik przy normalnej pracy FS nie jest wymagane, co rozwiązuje problem, przenosząc tę operację do kategorii działań w tle. Przedstawiona realizacja wykonuje również pewne optymalizacje. Na przykład, czeka pewien czas z uwagi na to, że blok może być wkrótce użyty, co sprawia, że wykonanie procedury DISCARD nie ma sensu, a także stara się łączyć obszary przed faktycznym wykonaniem DISCARD w celu zmniejszenia ogólnej liczby operacji.
Źródło: opennet.ru
