Btrfs:lle on esitetty DISCARDin asynkroninen toteutus

btrfs-tiedostojärjestelmälle edustaa Facebookin insinöörien toteuttama DISCARD-toiminnon asynkroninen toteutus (vapautettujen lohkojen merkitseminen, joita ei enää tarvitse fyysisesti tallentaa).

Ongelman ydin: alkuperäisessä toteutuksessa DISCARD suoritetaan synkronisesti muiden toimintojen kanssa, mikä johtaa joissakin tapauksissa suorituskykyongelmiin, koska asemat joutuvat odottamaan vastaavien komentojen valmistumista, mikä vaatii lisäaikaa. Tämä voi olla ongelma, jos aseman DISCARD-toteutus on hidas.

Asynkronisessa toteutuksessa ei tarvitse odottaa, että asema suorittaa DISCARD-toiminnon loppuun normaalin FS-toiminnan aikana, mikä poistaa ongelman siirtämällä tämän toiminnon taustalle. Esitetty toteutus suorittaa myös joitain optimointeja. Se esimerkiksi odottaa jonkin aikaa huolestuneena siitä, että lohkoa saatetaan pian käyttää niin, että DISCARD-proseduurin suorittamisessa ei ole mitään järkeä, ja se yrittää myös yhdistää alueita ennen varsinaista DISCARD-komennon suorittamista vähentääkseen operaatioiden kokonaismäärä.

Lähde: opennet.ru

Lisää kommentti