Btrfs-ի համար ներկայացված է DISCARD-ի ասինխրոն իրականացումը

btrfs ֆայլային համակարգի համար ներկայացված է DISCARD գործողության ասինխրոն իրականացումը (նշելով թողարկված բլոկները, որոնք այլևս ֆիզիկապես պահելու կարիք չունեն), իրականացվել է Facebook-ի ինժեներների կողմից:

Խնդրի էությունը. սկզբնական իրականացման մեջ DISCARD-ը կատարվում է համաժամանակյա այլ գործողությունների հետ, ինչը որոշ դեպքերում հանգեցնում է կատարողականի խնդիրների, քանի որ կրիչները պետք է սպասեն համապատասխան հրամանների ավարտին, ինչը լրացուցիչ ժամանակ է պահանջում: Սա կարող է խնդիր լինել, եթե սկավառակի DISCARD իրականացումը դանդաղ է:

Ասինխրոն ներդրման դեպքում կարիք չկա սպասել, որ սկավառակը ավարտի DISCARD-ը նորմալ FS-ի շահագործման ժամանակ, ինչը վերացնում է խնդիրը՝ այս գործողությունը հետին պլան տեղափոխելով: Ներկայացված իրականացումը կատարում է նաև որոշ օպտիմալացումներ։ Օրինակ, նա որոշ ժամանակ է սպասում՝ մտահոգվելով, որ բլոկը շուտով կարող է օգտագործվել այնպես, որ ընդհանրապես իմաստ չունի DISCARD ընթացակարգը կատարելը, և նա նաև փորձում է միավորել շրջանները, նախքան իրականում DISCARD-ը գործարկելը, նվազեցնելու համար: գործառնությունների ընդհանուր քանակը.

Source: opennet.ru

Добавить комментарий