FUSE Patch Allows Non-Extending, Parallel Direct Writes For Better Performance
Dharmendra Singh explained with today's FUSE patch, "It is observed that currently in Fuse, for direct writes, we hold inode lock for the full duration of the request. As a result, only one direct write request can proceed on the same file. This, I think is due to various reasons such as serialization needed by USER space fuse implementations/file size issues/write failures. This patch allows parallel writes to proceed on the same file by by holding shared lock on the non-extending writes and exclusive lock on extending writes."
Benchmarking with FIO is showing very promising results for threaded write tests.
At 32 threads, the performance was as much as a 630% improvement or even at four threads was a 42% improvement.