The Community for Technology Leaders
12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06) (2006)
San Jose, California
Apr. 4, 2006 to Apr. 7, 2006
ISBN: 0-7695-2516-4
pp: 125-134
Theodore M. Wong , IBM Almaden Research Center
Richard A. Golding , IBM Almaden Research Center
Caixue Lin , Unversity of California at Santa Cruz
Ralph A. Becker-Szendy , IBM Almaden Research Center
Large-scale storage systems often hold data for multiple applications and users. A problem in such systems is isolating applications and users from each other to prevent their workloads from interacting in unexpected ways. Another is ensuring that each application receives an appropriate level of performance. As part of the solution to these problems, we have designed a hierarchical I/O scheduling algorithm to manage performance resources on an underlying storage device. Our algorithm uses a simple allocation abstraction: an application or user has a corresponding pool of throughput, and manages throughput within its pool by opening sessions. The algorithm ensures that each pool and session receives at least a reserve rate of throughput and caps usage at a limit rate, using hierarchical token buckets and EDF I/O scheduling. Once it has fulfilled the reserves of all active sessions and pools, it shares unused throughput fairly among active sessions and pools such that they tend to receive the same amount. It thus combines deadline scheduling with proportional-style resource sharing in a novel way. We assume that the device performs its own low-level head scheduling, rather than modeling the device in detail. Our implementation shows the correctness of our algorithm, imposes little overhead on the system, and achieves throughput nearly equal to that of an unmanaged device.

R. A. Becker-Szendy, R. A. Golding, C. Lin and T. M. Wong, "Zygaria: Storage Performance as a Managed Resource," 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06)(RTAS), San Jose, California, 2006, pp. 125-134.
80 ms
(Ver 3.3 (11022016))