mergerfs 2.32.2 released and general news
Added 2020-12-30 21:03:04 +0000 UTCI apologize for posting here later than other places.
I've released 2.32.x recently with a few internal updates and bug fixes.
https://github.com/trapexit/mergerfs/releases
There hasn't been much going on publicly with mergerfs but I have spent a bunch of time playing with different ideas. I'm an iterative style developer where I tend to rewrite features a few times before committing them. Takes longer but I better understand things better and write better code that way.
I've been reworking the config management a bit to remove the locking by using an RCU style of updates. I doubt that it will make any real difference to the CPU usage and there really isn't any contention but removing as many possible calls to the kernel the better.
I also spent a bunch of time messing with libfuse and playing with different ideas to limit the CPU and memory usage as well as redesigning the way FUSE messages are managed in hopes to improve performance generally.
There has also been some work in the kernel space to add file read/write passthrough which could offer reading and writing at nearly native speeds. If it gets upstreamed it should be easy to add to mergerfs. The downside is that in the current design errors won't be catchable by mergerfs which means features like `moveonenospc` and the upcoming read failover wouldn't work. For many it'd be a worthy trade.
I'm also still considering how to best support tiered storage. I've wanted to refactor the config management and internal policy objects before tackling that and that's almost done. I'm think a list of lists for create functions might be best. Where each sub list is run through the policy as defined now and only when a sublist succeeds is that returned. Action and Search functions would act as if it were a flat list. My fear is that it might be a bit complicated for some but the alternatives might not be as flexible.
Also considering moving to readthedocs.io for documentation. I've gotten increasing complaints about the verbosity of the docs and difficulty in searching. I honestly don't feel like a table of content and a search bar is any better than "ctrl-f" in the browser but if that's what people prefer I'm open to it. I definitely don't want to use a wiki as that makes it hard to keep track of changes.
There are a few other misc features sitting in some branches I've yet to merge due to lack of thorough testing. A read failover feature for those who have duplicate data across drives and flaky devices / mounts as well as a "follow symlink" feature similar to Samba. Once I get the time to test those more thoroughly I'll merge them.
Thanks for the support. I wasn't as productive this year as I'd hoped but things are progressing.
Happy new year.