Bcachefs Might Be Ready For Upstreaming In Linux This Year
Bcachefs has been in development since the mid-2010s and aims for speed while having ZFS/Btrfs-like features. It's been under heavy feature development and with time picking up features such as Btrfs-like snapshots or referred to as bad@$$ snapshots, among other promising feature work to allow it to compete as a next-gen file-system.
Lead Bcachefs developer Kent Overstreet posted this morning an update on the LKML about the state of this open-source file-system:
It's been a long road going from bcache, and starting with what was essentially a prototype for a new filesystem, and turning it into a real (scalable, robust, full featured) filesystem.
Over the past few years, we've added reflink, subvolumes and snapshots. I'm particularly proud of how snapshots turned out - it's roughly a versioned btree approach, and it's scalable and fast, even fsck is O(number of keys of metadata), not O(number of snapshots). I've got it up to a million snapshots in a test VM.
The bigger thing though is that the core fundamentals are pretty close to done - replacing all the "periodically walk the world" algorigthms with real persistent data structures that scale. A big allocator rewrite is about to land, and after that will be backpointers - to fix copygc scanning.
Things are in flux lately with all the allocator work, but I'm hoping once that settles down and I've worked through the backlog of bug reports and performance regressions, we might be ready for upstreaming sometime this year...
Here's to hoping that Bcachefs will successfully mature to a state of readiness for mainlining in the Linux kernel in 2022, which should help in expanding the pool of testers of the file-system and allow the file-system to better prove itself.