Justin Gibbs, Will Andrews
This project's primary focus was to avoid copy on write faults, which occur primarily when overwriting ZFS data blocks in less-than-recordsize chunks. Additionally, when faults are necessary, they are resolved asynchronously, significantly reducing their impact on throughput and latency. Applications that fill ZFS data blocks in such chunks now get performance approaching what they would if they were writing out in larger chunks.
Another focus was rewriting the DMU I/O APIs to support asynchronous
I/Os. Using this mechanism, ZVOL block objects can queue reads to be
completed asynchronously. File I/Os have also implemented this.
This work is still being curated for entry into a FreeBSD Subversion project directory, with the goal to be in HEAD. In the near future, we plan to release a paper that describes in more detail.
Downloads (updated May 12, 2012): Patch vs FreeBSD/head Change log (with embedded diffs)