A Linux 7.1 kernelben teljesítményspecifikus fejlesztések érkeznek a Btrfs fájlrendszerhez, a shutdown ioctl funkció kikerül a kísérleti státuszból

A Linux 7.1-es kernel beolvasztási időablakának keretében beküldött Btrfs fejlesztési csomag a teljesítmény növelésére, a tranzakciókezelés pontosítására és a memóriahasználat rendezésére épülnek. Másik fontos újdonság, hogy a Linux 7.1-ben a Btrfs shutdown ioctl kikerül a kísérleti státuszából.

A Linux 7.1 kernelben teljesítményspecifikus fejlesztések érkeznek a Btrfs fájlrendszerhez, a shutdown ioctl funkció kikerül a kísérleti státuszból

10%-os teljesítménynövekedés várható az új btrfs fejlesztésekkel

A Linux 7.1-hez beküldött változtatások egyik lényeges területe a teljesítmény javításához kapcsolódik.
A fejlesztők gyorsították a követett tartományok első extentjének törlését, ami a mellékelt mérés szerint egy mintaterhelésnél nagyjából 10 százalékos teljesítmény növekedést hozott. Ugyanabban a tranzakcióban kevesebb CoW-újraírás éri az extent buffereket, az eszközstatisztikák frissítésekor pedig a fájlrendszer a tranzakció lezárásánál már nem veszi fel indokolatlanul az összes eszközre kiterjedő zárat.
A csomag ezen felül megszünteti az üres fájlok csonkítása utáni szükségtelen close-flush műveletet, és azt is megakadályozza, hogy a tömörített előolvasás azonnali memóriavisszanyerést kényszerítsen ki.

A shutdown ioctl kikerült a kísérleti státuszból

A fájlrendszert érintő másik fontos fejlesztés, hogy a shutdown ioctl a 7.1-es kernelben kikerül a kísérleti státuszból. Ez egy olyan vezérlőhívás, amellyel a fájlrendszer leállított állapotba helyezhető: az opció alkalmazását követően az új műveleteket a fájlrendszer elutasítja, a folyamatban lévő műveletek pedig még megpróbálnak lefutni és lezárulni. Ez a funkció először a Linux 6.19 kernelben jelent meg, azonban eddig csak a CONFIG_BTRFS_EXPERIMENTAL kapcsoló aktiválásával volt használható. A 7.1-es fejlesztési ciklusban a Btrfs már az FSERROR mechanizmuson keresztül is jelzi a leállított állapotot, emellett a hibakezelés több pontja is módosult. További részletek a pull requestben olvashatóak.