FUSE Read/Write Passthrough Updated For Much Better File-System Performance

Of various criticisms around FUSE for implementing file-systems in user-space, one of the most prolific issues is around the performance generally being much lower than a proper file-system kernel driver. But with the FUSE passthrough functionality that continue to be worked on, there is the potential for much better FUSE file-system performance.

The ongoing FUSE passthrough work is about allowing the passthrough read/write of files in avoiding at times unnecessary overhead of the user-space FUSE daemon. When operating in FUSE_PASSTHROUGH mode, the daemon can allow on a per-file basis opening in passthrough mode where all read and write operations are forwarded by the kernel directly to the lower file-system rather than to the FUSE daemon running in user-space.

When performing "massive manipulations on a single opened file", the FUSE passthrough mode can show "close to native" file-system performance, especially in random read performance where the bandwidth can almost double while the sequential write performance can nearly triple.

The latest patch for FUSE passthrough has been re-based against Linux 5.8 and has various code improvements and refactoring. While the performance gains are quite compelling, this isn't on-deck for the Linux 5.9 kernel cycle. But at least with this passthrough code continuing to mature, it will hopefully be mainlined in the not too distant future.