2TL: A raid I/O scheduling algorithm for simultaneously providing latency and throughput guarantees
It is increasingly common for applications to require that data read from and written to a shared storage system be delivered within a specified amount of time (usually milliseconds), called a latency requirement, or be delivered at a specified rate (measured in megabytes per second), called a throughput requirement. Given an input/output (I/O) workload, which consists of the streams of I/O requests of a set of applications, the storage system, via its I/O scheduler, is expected to simultaneously meet the workload's latency and throughput requirements. In addition, it is expected to provide performance guarantees, i.e., guarantees that it will meet a workload's latency and throughput requirements. Of course, these guarantees are provided under certain conditions associated with the storage system and the streams in the workload. ^ While providing throughput guarantees is a well-studied topic, providing latency guarantees requires further study. The vast majority of the existing schedulers that provide latency guarantees are "reactive" schedulers, which adjust request scheduling parameters based on stream performance. That is, when the latency requirement of a stream is not being met, a reactive scheduler adjusts its scheduling parameters, which may include increasing the service allocated to the stream, to meet the stream's latency requirement. The reactive nature of these schedulers makes it difficult, if not impossible, for them to meet latency requirements at high percentiles, e.g., for 99% of requests, to meet the latency requirement, for streams with bursty access characteristics. ^ This dissertation introduces 2TL, an I/O scheduler for RAID storage systems that simultaneously provides latency guarantees at high percentiles as well as throughput guarantees. 2TL was designed and implemented to continuously monitor the access characteristics of the latency-bound streams in a given workload and proactively adjust its scheduling parameters to meet their latency requirements. To the best of our knowledge, 2TL is only the second scheduler in the literature that employs proactive scheduling to meet latency requirements - Courier was introduced first. 2TL differentiates itself from Courier in two significant ways: (1) 2TL meets I/O stream latency requirements at high percentiles, and (2) it takes into consideration disk queuing, which is a technique that is employed in consolidated storage systems. ^ The effectiveness of 2TL was evaluated through simulation using a set of synthetic and real workloads that cover a wide range of storage system access characteristics. The simulations are used to demonstrate essential properties of 2TL and to compare its effectiveness with a reactive scheduler that functionally resembles 2TL. When a set of conditions, which apply to schedulers that provide latency guarantees in general, are met, 2TL's proactive scheduling of the requests of latency-bound streams, i.e., streams with latency requirements, allows 2TL to meet the latency requirements of streams with bursty access characteristics that the reactive scheduler cannot meet. Most importantly, the simulations demonstrate that the more bursty the latency-bound streams are, the more pronounced the performance advantage of 2TL. In contrast, when the latency-bound streams of a workload are not bursty or when all the streams in a workload have throughput requirements, 2TL has similar performance to that of the reactive scheduler.^
Kwok, Yipkei, "2TL: A raid I/O scheduling algorithm for simultaneously providing latency and throughput guarantees" (2014). ETD Collection for University of Texas, El Paso. AAI3682470.