
On the performance front for Btrfs in Linux 5.9 there are optimized helpers for little-endian architectures to avoid little/big endian conversions around the on-disk format, tree-log/fsync optimizations yielding around a 12% lower maximum latency for the Dbench benchmark, faster mount times for large file-systems in the terabyte range, and parallel fsync optimizations.
On the parallel fsync side, Linux 5.9 is speeding up its performance with reflinked/deduplicated extents, which can improve throughput roughly by 50% on average and runtime decreasing by around 30% on average. In some cases the throughput improvement and quicker runtime is even more drastic. Additionally, there is also a speed-up to the Btrfs parallel fsync code around checksum tree lookups and contentions. With two tasks running there is around a 20% throughput improvement and -16% runtime or when up to 64 tasks yielded +200% for the throughput and -66% runtime. Damn!
The Btrfs driver for Linux 5.9 also introduces the new rescue= mount option for consolidating different recovery-related options like "nologreplay" and "usebackuproot". Other work includes deprecating the inode_cache mount option, removing other already deprecated options, FS_INFO ioctl enhancements, and a range of other code improvements.
More details on the Btrfs changes for this next version of the Linux kernel via this Git merge.
37 Comments