Nakapila up sa”for-next”kernel branch ng FUSE ay isang patch na nagtrabaho sa mga nakaraang buwan para sa pagpapahintulot sa hindi pagpapahaba ng parallel direct writes sa parehong file.

Ang mga direktang pagsusulat sa parehong file na may FUSE (File-Systems sa User-Space) ay na-serialize ng isang inode lock sa panahon ng mga kahilingan sa pagsulat habang ang pagbabagong ito ay nagbibigay-daan para sa maraming direktang pagsusulat na mangyari nang sabay-sabay sa parehong file, na nagpapahintulot sa mga ito na hindi pagpapalawak ng file. Sa pagbabagong ito na inaasahan para sa Linux 6.2 na humahadlang sa anumang mga isyu mula sa gumagapang, nire-relax ang eksklusibong lock para sa mga direktang hindi nagpapalawak na pagsusulat. Maaaring payagan ng mga developer ang parallel na direktang pagsusulat kapag pinalawak ang laki ng file, ngunit hindi sila sigurado sa pagbabago sa pag-uugali na iyon at hindi nila ito binabago gamit ang naka-queue na”for-next”na FUSE patch na ito.

Sa mga pagbabagong ito, pinapayagan namin ang hindi pagpapalawak ng parallel direct writes sa parehong file sa tulong ng flag na tinatawag na FOPEN_PARALLEL_DIRECT_WRITES. Kung ang flag na ito ay nakatakda sa file (ang flag ay ipinasa mula sa libfuse upang i-fuse ang kernel bilang bahagi ng file na bukas/gumawa), hindi na kami kumukuha ng eksklusibong lock, ngunit sa halip ay gumamit ng shared lock na nagbibigay-daan sa hindi nagpapalawak na mga pagsusulat na tumakbo nang magkatulad. Ang mga pagpapatupad ng FUSE na umaasa sa inode lock na ito para sa serialization ay maaaring magpatuloy na gawin ito at ang mga serialized na direktang pagsusulat ay ang default pa rin. Ang mga pagpapatupad na hindi gumagawa ng write serialization ay kailangang i-update at kailangang itakda ang FOPEN_PARALLEL_DIRECT_WRITES na flag sa kanilang file open/create reply.

Maaaring matuto nang higit pa ang mga interesado sa gawaing ito sa pamamagitan ng ang mga komento sa patch.

Categories: IT Info