Destage algorithms for disk arrays with non-volatile caches

In a disk array with a nonvolatile write cache, destages from the cache to the disk are performed in the background asynchronously while read requests from the host system are serviced in the foreground. We study a number of algorithms for scheduling destages in a RAID-5 system. We introduce a new scheduling algorithm, called linear threshold scheduling, that adaptively varies the rate of destages to disks based on the instantaneous occupancy of the write cache. The performance of the algorithm is compared with that of a number of alternative scheduling approaches such as least-cost scheduling and high/low mark. The algorithms are evaluated in terms of their effectiveness in making destages transparent to the servicing of read requests from the host, disk utilization, and their ability to tolerate bursts in the workload without causing an overflow of the write cache. Our results show that linear threshold scheduling provides the best read performance of all the algorithms compared, while still maintaining a high degree of burst tolerance. An approximate implementation of the linear-threshold scheduling algorithm is also described. The approximate algorithm can be implemented with much lower overhead, yet its performance is virtually identical to that of the ideal algorithm.

[1]  Jai Menon,et al.  Floating Parity and Data Disk Arrays , 1993, J. Parallel Distributed Comput..

[2]  Robert Geist,et al.  A continuum of disk scheduling algorithms , 1987, TOCS.

[3]  Garth A. Gibson,et al.  RAID: high-performance, reliable secondary storage , 1994, CSUR.

[4]  Yale N. Patt,et al.  Scheduling algorithms for modern disk drives , 1994, SIGMETRICS 1994.

[5]  Yale N. Patt,et al.  Disk arrays: high-performance, high-reliability storage subsystems , 1994, Computer.

[6]  Margo I. Seltzer,et al.  Disk Scheduling Revisited , 1990 .

[7]  Jai Menon,et al.  Performance of disk arrays in transaction processing environments , 1992, [1992] Proceedings of the 12th International Conference on Distributed Computing Systems.

[8]  Peter J. Denning,et al.  Effects of scheduling on file memory operations , 1899, AFIPS '67 (Spring).

[9]  John Wilkes,et al.  UNIX Disk Access Patterns , 1993, USENIX Winter.

[10]  MenonJai Performance of RAID5 disk arrays with read and write caching , 1994 .

[11]  John Wilkes,et al.  Disk scheduling algorithms based on rotational position , 1991 .

[12]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[13]  John Wilkes,et al.  An introduction to disk drive modeling , 1994, Computer.

[14]  Jai Menon,et al.  The Architecture Of A Fault-tolerant Cached RAID Controller , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[15]  K. K. Ramakrishnan,et al.  Trace driven analysis of write caching policies for disks , 1993, SIGMETRICS '93.

[16]  Randy H. Katz,et al.  A case for redundant arrays of inexpensive disks (RAID) , 1988, SIGMOD '88.

[17]  Carl Staelin,et al.  Idleness is Not Sloth , 1995, USENIX.

[18]  Daniel Stodolsky,et al.  Parity logging overcoming the small write problem in redundant disk arrays , 1993, ISCA '93.