Tijdens de bespreking van de nieuwste reeks verbeteringen die voorgesteld zijn voor opname in de kernel 6.11-rc5 door de auteur van Bcachefs, schreef Linus Torvalds dat hij begint te betreuren dat hij het bestandssysteem Bcachefs in de kernel heeft opgenomen. Torvalds' ontevredenheid komt voort uit het feit dat Kent Overstreet, de auteur van Bcachefs, in de fase van de final release candidates te omvangrijke fixes verzendt die in wezen niet alleen bugs oplossen, maar ook de functionaliteit verder ontwikkelen. Functionele wijzigingen zijn echter alleen toegestaan in de vroege ontwikkelingsfase van een nieuwe tak, terwijl alleen kleine, afzonderlijke fixes worden geaccepteerd in de rc5-fase, waarvan de grootte idealiter niet meer dan 100 regels code mag zijn.
De patch die voor Bcachefs is ingediend, bevatte 1309 toegevoegde en 671 verwijderde regels in 39 bestanden. Naast bugfixes omvatte deze twee significante wijzigingen: ondersteuning voor een nieuwe datastructuur voor het beheer van de lijst met vrije elementen in de cache en de mogelijkheid om hashtabellen voor de cache om te zetten. De nieuwe structuur werd toegevoegd om onnodige cache-locks te verwijderen en situaties uit te sluiten die kunnen leiden tot lockconflicten bij multi-threaded belasting.
Dit is niet de eerste keer dat grote verbeteringen voor Bcachefs worden ingediend na de deadline voor wijzigingsaanvragen, en het is ook niet de eerste keer dat in plaats van eenvoudige bugfixes zwaardere functionele aanvullingen worden voorgesteld via pull-verzoeken in de latere stadia van de ontwikkeling van een nieuwe tak. Linus Torvalds reageerde op de ingediende pull-aanvraag:
«Genug. Der letzte Pull-Request war ebenfalls umfangreich. Dieser Pull-Request ist auch zu umfangreich und betrifft Dinge, die nichts mit Bcachefs zu tun haben, und ist nicht einmal ansatzweise eine Regression. Irgendwann verwandelt sich das „Beheben von etwas“ einfach in Entwicklung, und das ist der Punkt, an dem wir uns befinden. Niemand im Vollbesitz seiner geistigen Kräfte verwendet Bcachefs und erwartet Stabilität, weshalb jeder Benutzer ein Experimentierfeld ist. Die Patches für Bcachefs sind zu einer Art „großer Entwicklung während des Release-Vorbereitungszyklus und nicht davor“ geworden, bis zu dem Punkt, an dem ich anfange, es zu bedauern, Bcachefs angenommen zu haben. Wenn Bcachefs nicht ordnungsgemäß im Einklang mit dem Zeitplan des Haupt- (upstream) Kernels arbeiten kann, sollte es möglicherweise nicht im Hauptkernel enthalten sein. Das geht schon über das Lustige hinaus.«
Kent Overstreet wies darauf hin, dass Bcachefs definitiv zuverlässiger ist als Btrfs und arbeitet daran, es stabiler und zuverlässiger als XFS und EXT4 zu machen, dank der Implementierung eines Mechanismus zur ganzheitlichen Datenintegrität (end to end data Integrity). Kent betonte auch, dass die vorgeschlagenen Änderungen direkt mit der Erhöhung der Zuverlässigkeit zu tun haben, und während ein Fehler in anderen Kern-Subsystemen möglicherweise auf einen Absturz und einen Neustart beschränkt bleibt, ist der Preis eines Fehlers in Dateisystemen sehr hoch und kann zu versteckten Datenbeschädigungen führen, die erst Wochen später bemerkt werden können.
Torvalds widersprach, dass es derzeit keine großen Linux-Distributionen gibt, die Bcachefs verwenden, und wies darauf hin, dass die Regeln für die Entwicklung von Kernel-Releases beachtet werden sollten, da die Wahrscheinlichkeit, dass neue Fehler durch derartige große Patches mit mehr als 1000 Zeilen Code auftreten, besteht. Derzeit sind die diskutierten Korrekturen für Bcachefs nicht im Linux-Kernel angenommen worden, und der Bcachefs-Entwickler hat bisher noch keinen aktualisierten Pull-Request vorbereitet, der ohne neue Funktionalitäten auskommt und sich nur auf Fehlerbehebungen konzentriert.
Bron: opennet.ru
