Log Spacemap: Flushing algorithm and performance

Talk by Serapheim Dimitropoulos at OpenZFS Developer Summit 2018:

Log Spacemap: Flushing algorithm and performance

During last year’s OpenZFS Summit (2017), the Log Spacemap project was presented as a solution to reducing the number of I/Os due to metadata updates resulting in overall better allocation performance. At the time, the flushing algorithm, which is an essential piece of the project, was still an open question. This presentation will give a high-level but thorough overview on the design of the flushing algorithm that we decided to implement for the project, an evaluation of its performance, and a few pointers on how one can go about understanding the behavior of the flushing algorithm on a running system.

The presentation will cover the following topics in the presented order:
 * 1) Overview of what the Log Spacemap is and why it was implemented
 * 2) The importance of the flushing algorithm and the tradeoffs involved in implementing it
 * 3) Simulation results of different flushing algorithms and their analysis
 * 4) A description of our proposed flushing algorithm and some important implementation details
 * 5) A performance evaluation of the Log Spacemap with the proposed flushing algorithm
 * 6) How to analyze and understand the flushing behavior on a running system