A btrfs fájlrendszerhez. Az aszinkron DISCARD művelet (a már felszabadított blokkok megjelölése, amelyeket fizikailag már nem szükséges tárolni) megvalósítása a Facebook mérnökei által.
A probléma lényege: az eredeti DISCARD megvalósítás szinkron módon zajlik a többi művelettel, ami bizonyos esetekben teljesítményproblémákhoz vezethet, mivel várakozni kell a tárolók megfelelő parancsainak befejezésére, ami további időt igényel. Ez problémát okozhat, ha a DISCARD megvalósítása a tárolón lassan működik.
Az aszinkron megvalósítással a DISCARD befejezésére nem szükséges várni a fájlrendszer szokásos működése közben, ez eltávolítja a problémát, és háttérműveletté alakítja ezt a folyamatot. A bemutatott megvalósítás emellett bizonyos optimalizációkat is végez. Például vár egy ideig, hogy figyelembe vegye, hogy a blokkot hamarosan felhasználják, így a DISCARD eljárás végrehajtásának tényleges szükségessége megszűnik, illetve megpróbálja egyesíteni a régiókat a DISCARD tényleges végrehajtása előtt a műveletek számának csökkentése érdekében.
Forrás: opennet.ru
