Status update
Added 2019-11-06 20:07:53 +0000 UTCThere is now a (very work-in-progress) fuse port!
The fuse port isn't intended to ever be for serious use - but I do expect it to be useful for debugging in the future; if someone is hitting a repeatable bug in the bcachefs code, debugging it via the fuse version (with gdb) should be much easier for most people than collecting kernel oopses. We've also already found at least one real bug by running the fuse version of bcachefs under valgrind (thanks to Justin Husted for that).
Also, I'd like to see ports to other operating systems happen eventually, and the fuse port is a nice first step.
Performance work:
I recently got my test machine working again, so I've been doing some benchmarking and profiling. I've been focusing on the performance of the O_DIRECT write path - some of you may have seen a bunch of patches go by from that work - I was able to nearly _double_ performance of 4k random writes.
It looks like there's two big performance related things left on the todo list: we still need support for inlining small amounts of data into the extents btree (similar to how other filesystems inline small files into the inode), and we need support for storing checksums at smaller than extent granularity. Once those are done, I expect we'll be on par with other filesystems in the Phoronix benchmarks.
Upstreaming:
The main obstacle last time I posted bcachefs on the mailing lists was locking for pagecache consistency around O_DIRECT writes; the locking I came up with was not particularly appealing to anyone else (or myself, to be honest). I've now switched bcachefs to something closer to what XFS does, and now I've got only one small patch to core kernel code to avoid a deadlock in the bcachefs fault handler when called via get_user_pages(). So, we're one step closer there.
There's lots to do for anyone interested in joining the project and helping out. Come hang out in the #bcache channel on irc.oftc.net if you're interested.
Comments
Is there bcache in BSD?
brunoais
2019-12-30 09:31:27 +0000 UTCOr Windows support via Winfsp, in case you want to dual-boot your NAS :-)
2019-12-15 16:24:49 +0000 UTCIt might also be a good fit for initial BSD support.
SSailor67
2019-12-01 20:49:11 +0000 UTCPerhaps the FUSE port won't be used in a *sustained* manner, but until bcachefs is in most Linux kernels, it seem like a good compatibility bridge, e.g. for recovering a filesystem from a dead server.
2019-11-12 15:13:12 +0000 UTCGreat work and nice to see progress - thanks for all your efforts!
Duncan Lock
2019-11-07 19:04:12 +0000 UTC