Btrfs Gets Improved Performance On Linux 3.8 Kernel
Here's the key part of the Btrfs 3.8 feature pull request from Chris Mason:
In terms of line count, most of the code comes from Stefan, who added the ability to replace a single drive in place. This is different from how btrfs normally replaces drives, and is much much much faster.The performance improvements will be much appreciated since with the EXT4 vs. Btrfs vs. XFS benchmarks from the Linux 3.7 kernel, the next-generation Btrfs file-system lost in a number of the test cases. There's also numbers from Btrfs mount option tuning for maximum performance.
Josef is plowing through our synchronous write performance. This pull request does not include the DIO_OWN_WAITING patch that was discussed on the list, but it has a number of other improvements to cut down our latencies and CPU time during fsync/O_DIRECT writes.
Miao Xie has a big series of fixes and is spreading out ordered operations over more CPUs. This improves performance and reduces contention.
I've put in fixes for error handling around hash collisions. These are going back to individual stable kernels as I test against them.
Otherwise we have a lot of fixes and cleanups, thanks everyone! raid5/6 is being rebased against the device replacement code. I'll have it posted this Friday along with a nice series of benchmarks.
The hash collision fixes is another big item to address the recent Btrfs security vulnerability that could lead to a hash-based denial-of-service attack.