EXT4 Lands A Nice Performance Improvement For Appending To Delalloc Files
EXT4 with Linux 6.6 has better performance when appending to a delayed allocation "delalloc" file. This performance optimization comes thanks to Alibaba engineer Liu Song.
In the optimization patch Liu Song explains:
"In the delalloc append write scenario, if inode's i_size is extended due to buffer write, there are delalloc writes pending in the range up to i_size, and no need to touch i_disksize since writeback will push i_disksize up to i_size eventually. Offers significant performance improvement in high-frequency append write scenarios.
I conducted tests in my 32-core environment by launching 32 concurrent threads to append write to the same file. Each write operation had a length of 1024 bytes and was repeated 100000 times. Without using this patch, the test was completed in 7705 ms. However, with this patch, the test was completed in 5066 ms, resulting in a performance improvement of 34%.
Moreover, in test scenarios of Kafka version 2.6.2, using packet size of 2K, with this patch resulted in a 10% performance improvement."
Seeing a 34% improvement with many concurrent writes to an append-write scenario is quite an achievement and the Apache Kafka 10% performance boost as a real-world workload is also great to see for EXT4 with Linux 6.6.
A fun RAID comparison of file-systems atop Linux 6.6 happens to be coming up soon on Phoronix.
Aside from this performance optimization work though, there isn't much for end-users to get excited about for EXT4 in Linux 6.6. See this Git pull for the full batch of EXT4 feature patches this cycle.