Check out the new USENIX Web site. next up previous
Next: A Fundamental Decision: What Up: Introduction Previous: Introduction

Fast Writes using NVS: When to Destage

For early papers on the case for and design of write cache using NVS, see [6,7,8,9,10]. Historically, NVS was introduced to enable fast writes.

In the absence of NVS, every write must be synchronously written (destaged) to disk to ensure consistency, correctness, durability, and persistence. Non-volatility enables fast writes wherein writes are stored safely in the cache, and destaged later in an asynchronous fashion thus hiding the write latency of the disk. To guarantee continued low latency for writes, the data in the NVS must be drained so as to ensure that there is always some empty space for incoming writes; otherwise, follow-on writes will become effectively synchronous, impacting adversely the response time for writes. On the other hand, if the writes are drained very aggressively, then one cannot fully exploit the benefits of write caching since average amount of NVS cache utilized will be low. Reference [11] introduced a linear threshold scheduling scheme that varies the rate of destages based on the instantaneous occupancy of the write cache. Other simpler schemes include least-cost scheduling and scheduling using high/low mark [11,12,13]. Another related issue is the size of a write burst that the write cache is designed to absorb while providing the low response time of fast writes. The write destage policy needs to ensure that a corresponding portion of NVS is available on an average. In Section IV-E, we describe a novel and effective approach to tackle this problem by using adaptive high/low watermarks combined with linear threshold scheduling.


next up previous
Next: A Fundamental Decision: What Up: Introduction Previous: Introduction
Binny Gill 2005-10-17