För filsystemet btrfs asynkron implementering av DISCARD-operationen (markering av frigjorda block som inte lÀngre behöver lagras fysiskt), implementerad av ingenjörerna pÄ Facebook.
Problemet Àr att i den ursprungliga implementationen utförs DISCARD synkront med andra operationer, vilket i vissa fall leder till prestandaproblem, eftersom man mÄste vÀnta pÄ att motsvarande kommandon slutförs av lagringsmedierna, vilket krÀver extra tid. Detta kan bli ett problem om DISCARD-implementationen pÄ lagringsmediet fungerar lÄngsamt.
Vid asynkron implementering behöver man inte vÀnta pÄ att DISCARD ska slutföras av lagringsmediet under den vanliga driften av FS, vilket löser problemet och gör denna operation till en bakgrundsuppgift. Den presenterade implementeringen utför ocksÄ vissa optimeringar. Till exempel vÀntar den en tid med tanke pÄ att blocket kan komma att anvÀndas snart, vilket gör att det kanske inte finns nÄgot syfte med att genomföra DISCARD-processen, samt försöker sammanfoga regioner innan den faktiska DISCARD-processen genomförs för att minska det totala antalet operationer.
KĂ€lla: opennet.ru
