'n Asinchroniese implementering van DISCARD word vir Btrfs aangebied

Vir btrfs-lêerstelsel verteenwoordig deur asynchrone implementering van die DISCARD-operasie (merk vrygemaakte blokke wat nie meer fisies gestoor hoef te word nie), geïmplementeer deur Facebook-ingenieurs.

Die kern van die probleem: in die oorspronklike implementering word DISCARD sinchroon uitgevoer met ander bedrywighede, wat in sommige gevalle tot prestasieprobleme lei, aangesien die aandrywers moet wag vir die ooreenstemmende opdragte om te voltooi, wat ekstra tyd verg. Dit kan 'n probleem wees as die aandrywer se DISCARD-implementering stadig is.

Met 'n asynchrone implementering is dit nie nodig om te wag vir die aandrywer om DISCARD te voltooi tydens normale FS-werking nie, wat die probleem uitskakel deur hierdie bewerking na die agtergrond oor te dra. Die voorgestelde implementering voer ook 'n paar optimaliserings uit. Dit wag byvoorbeeld 'n geruime tyd uit kommer dat die blok binnekort op so 'n manier gebruik kan word dat dit geen sin het om die DISCARD-prosedure uit te voer nie, en dit probeer ook om streke saam te voeg voordat die DISCARD werklik uitgevoer word om te verminder die totale aantal operasies.

Bron: opennet.ru

Voeg 'n opmerking