A DISCARD aszinkron megvalósítását mutatjuk be a Btrfs számára

btrfs fájlrendszerhez bemutatott a DISCARD művelet aszinkron megvalósítása (a felszabadult blokkok megjelölése, amelyeket már nem kell fizikailag tárolni), amelyet a Facebook mérnökei valósítottak meg.

A probléma lényege: az eredeti megvalósításban a DISCARD más műveletekkel szinkronban hajtódik végre, ami bizonyos esetekben teljesítményproblémákhoz vezet, mivel a meghajtóknak meg kell várniuk a megfelelő parancsok befejezését, ami további időt igényel. Ez akkor lehet probléma, ha a meghajtó DISCARD megvalósítása lassú.

Aszinkron megvalósítás esetén nem kell megvárni, hogy a meghajtó befejezze a DISCARD-ot normál FS-működés közben, ami kiküszöböli a problémát azáltal, hogy ezt a műveletet a háttérbe helyezi át. A bemutatott megvalósítás néhány optimalizálást is végez. Például vár egy ideig attól tartva, hogy a blokkot hamarosan úgy használhatják, hogy egyáltalán nincs értelme a DISCARD eljárás végrehajtásának, és megpróbálja egyesíteni a régiókat a DISCARD tényleges végrehajtása előtt, hogy csökkentse a műveletek teljes száma.

Forrás: opennet.ru

Hozzászólás