Btrfs pateiktas asinchroninis DISCARD įgyvendinimas

Btrfs failų sistemai atstovaujama asinchroninis DISCARD operacijos įgyvendinimas (išleistų blokų, kurių nebereikia fiziškai saugoti, žymėjimas), įgyvendintas Facebook inžinierių.

Problemos esmė: pradiniame diegime DISCARD atliekama sinchroniškai su kitomis operacijomis, o tai kai kuriais atvejais sukelia našumo problemų, nes diskai turi laukti, kol bus baigtos atitinkamos komandos, o tai reikalauja papildomo laiko. Tai gali būti problema, jei disko DISCARD diegimas yra lėtas.

Naudojant asinchroninį diegimą, įprasto FS veikimo metu nereikia laukti, kol diskas baigs DISCARD, o tai pašalina problemą perkeliant šią operaciją į foną. Pateiktas įgyvendinimas taip pat atlieka kai kuriuos optimizavimus. Pavyzdžiui, jis laukia šiek tiek laiko, nes nerimauja, kad blokas netrukus gali būti panaudotas taip, kad nebūtų prasmės vykdyti DISCARD procedūros, taip pat bando sujungti regionus prieš faktiškai vykdydamas DISCARD, kad sumažinti bendrą operacijų skaičių.

Šaltinis: opennet.ru

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