Для Btrfs прадстаўлена асінхронная рэалізацыя DISCARD

Для файлавай сістэмы btrfs прадстаўлена асінхронная рэалізацыя аперацыі DISCARD (пазнака вызваленых блокаў, якія ўжо можна не захоўваць фізічна), рэалізаваная інжынерамі кампаніі Facebook.

Сутнасць праблемы: у першапачатковай рэалізацыі DISCARD выконваецца сінхронна з астатнімі аперацыямі, што ў шэрагу выпадкаў прыводзіць да праблем прадукцыйнасці, паколькі даводзіцца чакаць завяршэнні адпаведных каманд назапашвальнікамі, што патрабуе дадатковы час. Гэта можа стаць праблемай у выпадку, калі рэалізацыя DISCARD назапашвальнікам працуе павольна.

Пры асінхроннай рэалізацыі чакаць завяршэнні DISCARD назапашвальнікам пры звычайнай працы ФС не патрабуецца, што здымае праблему, пераводзячы дадзеную аперацыю ў разрад фонавых. Прадстаўленая рэалізацыя таксама выконвае некаторыя аптымізацыі. Напрыклад, яна чакае некаторы час з меркаванняў, што блок магчыма будзе неўзабаве скарыстаны так, што наогул не апынецца сэнсу ў выкананні працэдуры DISCARD, а таксама спрабуе аб'ядноўваць рэгіёны да фактычнага выканання DISCARD з мэтай памяншэння агульнай колькасці аперацый.

Крыніца: opennet.ru

Дадаць каментар