I kö upp i FUSEs”for-next”kärngren är en patch som arbetats på under de senaste månaderna för att tillåta icke-förlängande parallella direktskrivningar till samma fil.

Direkta skrivningar till samma fil med FUSE (File-Systems in User-Space) har serialiserats av ett inodlås under skrivbegäranden medan denna ändring tillåter flera direktskrivningar att ske samtidigt till samma fil, vilket tillåter att de inte är utöka filen. Med den här förändringen som förväntas för Linux 6.2, vilket hindrar problem från att smyga sig, slappnar det exklusiva låset för direkt icke-förlängande skrivningar. Utvecklarna kanske till och med kan tillåta parallella direktskrivningar när de utökar filstorleken, men de är mindre säkra på den beteendeförändringen och ändrar den inte med den här köade”för-nästa”FUSE-patchen.

Med dessa ändringar tillåter vi icke-förlängande parallella direktskrivningar på samma fil med hjälp av en flagga som heter FOPEN_PARALLEL_DIRECT_WRITES. Om denna flagga är inställd på filen (flaggan skickas från libfuse till fuse-kärnan som en del av fil öppna/skapa) tar vi inte längre exklusivt lås, utan använder istället ett delat lås som tillåter icke-förlängande skrivningar att köras parallellt. FUSE-implementationer som förlitar sig på detta inodlås för serialisering kan fortsätta att göra det och serialiserade direktskrivningar är fortfarande standard. Implementeringar som inte skriver serialisering måste uppdateras och måste ställa in FOPEN_PARALLEL_DIRECT_WRITES-flaggan i sin fil öppna/skapa svar.

De som är intresserade av detta arbete kan lära sig mer via lappen kommenterar.

Categories: IT Info