Non-blocking writes to files

Daniel Campello, Hector Lopez, Luis Useche, Ricardo Koller, Raju Rangaswami · 2015

Writing data to a page not present in the file-system page cache causes the operating system to synchronously fetch the page into memory first. Synchronous page fetch defines both policy (when) and mechanism (how), and al-ways blocks the writing process. Non-blocking writes eliminate such blocking by buffering the written data elsewhere in memory and unblocking the writing pro-cess immediately. Subsequent reads to the updated page locations are also made non-blocking. This new han-dling of writes to non-cached pages allow processes to overlap more computation with I/O and improves page fetch I/O throughput by increasing fetch parallelism. Our empirical evaluation demonstrates the potential of non-blocking writes in improving the overall performance of systems with no loss of performance when workloads cannot benefit from it. Across the Filebench write work-loads, non-blocking writes improve benchmark through-put by 7X on average (up to 45.4X) when using disk drives and by 2.1X on average (up to 4.2X) when using SSDs. For the SPECsfs2008 benchmark, non-blocking writes decrease overall average latency of NFS opera-tions between 3.5 % and 70 % and average write latency between 65 % and 79%. When replaying the MobiBench file system traces, non-blocking writes decrease average operation latency by 20-60%. 1

Read the paper · More papers on PaperTik