în ramura kernel-ului „for-next” a lui FUSE este un patch la care sa lucrat în ultimele luni pentru a permite scrierea directă paralelă care nu se extinde în același fișier.

Scrierile directe în același fișier cu FUSE (File-Systems in User-Space) au fost serializate printr-o blocare a inodului în timpul solicitărilor de scriere, în timp ce această modificare permite ca mai multe scrieri directe să aibă loc concomitent în același fișier, permițând ca acestea să nu fie extinderea dosarului. Cu această schimbare așteptată pentru Linux 6.2, împiedicând orice probleme să apară, relaxează blocarea exclusivă pentru scrierile directe fără extindere. Dezvoltatorii ar putea chiar să permită scrieri directe paralele atunci când extind dimensiunea fișierului, dar sunt mai puțin siguri de această schimbare de comportament și nu o modifică cu acest patch FUSE”pentru-următorul”pus în coadă.

Prin aceste modificări, permitem scrierile directe paralele neextensive pe același fișier cu ajutorul unui semnalizator numit FOPEN_PARALLEL_DIRECT_WRITES. Dacă acest steag este setat pe fișier (steagul este transmis de la libfuse la kernel-ul fuzionat ca parte a deschiderii/creării fișierului), nu mai acceptăm blocarea exclusivă, ci folosim în schimb o blocare partajată care permite scrierilor care nu se extind să ruleze în paralel.. Implementările FUSE care se bazează pe această blocare a inodului pentru serializare pot continua să facă acest lucru, iar scrierile directe serializate sunt încă implicite. Implementările care nu fac serializare de scriere trebuie să fie actualizate și trebuie să seteze indicatorul FOPEN_PARALLEL_DIRECT_WRITES în fișierul lor deschide/creează răspuns.

Cei interesați de această lucrare pot afla mai multe prin comentariile patch-urilor.

Categories: IT Info