Cyflwynir gweithrediad anghydamserol o DISCARD ar gyfer Btrfs

Ar gyfer system ffeiliau btrfs wedi'i gyflwyno gweithrediad asyncronig y gweithrediad DISCARD (marcio blociau a ryddhawyd nad oes angen eu storio'n gorfforol mwyach), a weithredir gan beirianwyr Facebook.

Hanfod y broblem: yn y gweithrediad gwreiddiol, mae DISCARD yn cael ei berfformio'n gydamserol Γ’ gweithrediadau eraill, sydd mewn rhai achosion yn arwain at broblemau perfformiad, gan fod yn rhaid i'r gyriannau aros i'r gorchmynion cyfatebol gwblhau, sy'n gofyn am amser ychwanegol. Gall hyn fod yn broblem os yw gweithrediad DISCARD y gyriant yn araf.

Gyda gweithrediad asyncronig, nid oes angen aros i'r gyriant gwblhau DARPARU yn ystod gweithrediad arferol FS, sy'n dileu'r broblem trwy drosglwyddo'r llawdriniaeth hon i'r cefndir. Mae'r gweithrediad a gyflwynir hefyd yn perfformio rhai optimizations. Er enghraifft, mae'n aros peth amser allan o bryder y gallai'r bloc gael ei ddefnyddio cyn bo hir yn y fath fodd fel na fyddai unrhyw ddiben gweithredu'r weithdrefn TWYLLO o gwbl, ac mae hefyd yn ceisio uno rhanbarthau cyn gweithredu'r DISCARD mewn gwirionedd er mwyn lleihau cyfanswm y llawdriniaethau.

Ffynhonnell: opennet.ru

Ychwanegu sylw