Voor het bestandssysteem btrfs asynchrone implementatie van de DISCARD-operatie (markering van vrijgegeven blokken die fysiek niet meer hoeven te worden opgeslagen), gerealiseerd door ingenieurs van Facebook.
De kern van het probleem: in de oorspronkelijke implementatie wordt DISCARD synchroon uitgevoerd met andere operaties, wat in sommige gevallen leidt tot prestatieproblemen, omdat moet worden gewacht op de voltooiing van de bijbehorende opdrachten door de opslagmedia, wat extra tijd vereist. Dit kan problematisch zijn als de DISCARD-implementatie op het opslagapparaat langzaam werkt.
Bij de asynchrone implementatie is het niet nodig om te wachten op de voltooiing van DISCARD op het opslagapparaat tijdens het normale functioneren van het bestandssysteem, waardoor het probleem wordt verholpen en deze operatie in de achtergrond kan worden uitgevoerd. De gepresenteerde implementatie bevat ook enkele optimalisaties. Zo wacht deze een bepaalde tijd af uit het oogpunt dat de block mogelijk binnenkort opnieuw zal worden gebruikt, zodat het helemaal geen zin heeft om de DISCARD-procedure uit te voeren, en probeert regio's te combineren vóór de daadwerkelijke uitvoering van DISCARD om het totale aantal operaties te verminderen.
Bron: opennet.ru
