====== Non-blocking Writes ====== ===== Authors ===== * [[http://www.cs.fiu.edu/~dcamp020/|Daniel Campello]] * [[http://www.cs.fiu.edu/~hlope048/|Hector Lopez]] * [[http://www.cs.fiu.edu/~lusec001/|Luis Useche]] * [[http://users.cis.fiu.edu/~rkoll001/|Ricardo Koller]] * [[http://www.cs.fiu.edu/~raju/|Raju Rangaswami]] ===== Abstract ===== Writing data to a page not present in the file-system page cache causes the operating system to synchronously fetch the page into memory before it can be written into. {\em Synchronous} page fetch defines both policy (//when//) and mechanism (//how//). However, its //read-before-write// behavior blocks the writing process. Non-blocking writes eliminate such blocking by buffering the written data elsewhere in memory and unblocking the writing process immediately. Subsequent //reads// to the updated page locations are also made non-blocking. This new handling 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. ===== Publications ===== * **Non-blocking Writes to Files** {{nbw-fast15.pdf|pdf}}\\ Daniel Campello, Hector Lopez, Luis Useche, Ricardo Koller, and Raju Rangaswami\\ Proceedings of USENIX File and Storage Technologies (FAST), February, 2015. ===== Public Software ===== * [[projects:nbw:traces:start|Traces used in the paper titled "Non-blocking Writes to Files", Proceedings of USENIX FAST 2015.]] ===== Acknowledgement of Support ===== This work is supported in part by the National Science Foundation under grant CNS-1320426 and by a NetApp Faculty Fellowship.