RADIR: Lock-free and wait-free bandwidth allocation models for solid state drives

Novel applications such as micro-blogging and algorithmic trading typically place a very high load on the underlying storage system. They are characterized by a stream of very short requests, and thus they require a very high I/O throughput. The traditional solution for supporting such applications is to use an array of hard disks. With the advent of solid state drives (SSDs), storage vendors are increasingly preferring them because their I/O throughput can scale up to a million IOPS (I/O operations per second). In this paper, we design a family of algorithms, RADIR, to schedule requests for such systems. Our algorithms are lock-free/wait-free, lineariz-able, and take the characteristics of requests into account such as the deadlines, request sizes, dependences, and the amount of available redundancy in RAID configurations. We perform simulations with workloads derived from traces provided by Microsoft and demonstrate a scheduling throughput of 900K IOPS on a 64 thread Intel server. Our algorithms are 2-3 orders of magnitude faster than the versions that use locks. We show detailed results for the effect of deadlines, request sizes, and the effect of RAID levels on the quality of the schedule.

[1]  John K. Ousterhout Scheduling Techniques for Concurrebt Systems. , 1982, ICDCS 1982.

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

[3]  Wei Jin,et al.  Interposed proportional sharing for a storage service utility , 2004, SIGMETRICS '04/Performance '04.

[4]  Michael J. Franklin,et al.  Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing , 2012, NSDI.

[5]  Jongmoo Choi,et al.  Disk schedulers for solid state drivers , 2009, EMSOFT '09.

[6]  William E. Weihl,et al.  Lottery scheduling: flexible proportional-share resource management , 1994, OSDI '94.

[7]  Giuseppe Lipari,et al.  Constant bandwidth vs. proportional share resource allocation , 1999, Proceedings IEEE International Conference on Multimedia Computing and Systems.

[8]  Kai Shen,et al.  FIOS: a fair, efficient flash I/O scheduler , 2012, FAST.

[9]  Rina Panigrahy,et al.  Design Tradeoffs for SSD Performance , 2008, USENIX ATC.

[10]  Ravi Jain,et al.  Heuristics for Scheduling I/O Operations , 1997, IEEE Trans. Parallel Distributed Syst..

[11]  Mark Moir,et al.  Wait-free synchronization in multiprogrammed systems: integrating priority-based and quantum-based scheduling , 1999, PODC '99.

[12]  John K. Ousterhout,et al.  Scheduling Techniques for Concurrent Systems , 1982, ICDCS.

[13]  James W. Layland,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[14]  Patrick Wendell,et al.  Sparrow: distributed, low latency scheduling , 2013, SOSP.

[15]  Marcus P. Dunn,et al.  A New I/O Scheduler for Solid State Devices , 2010 .

[16]  Fabio Checconi,et al.  High Throughput Disk Scheduling with Fair Bandwidth Distribution , 2010, IEEE Transactions on Computers.

[17]  Andrey Gubarev,et al.  Dremel : Interactive Analysis of Web-Scale Datasets , 2011 .

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

[19]  Scott Shenker,et al.  The Case for Tiny Tasks in Compute Clusters , 2013, HotOS.

[20]  Shuichi Oikawa,et al.  Resource kernels: a resource-centric approach to real-time and multimedia systems , 2001, Electronic Imaging.

[21]  Gregory R. Ganger,et al.  Argon: Performance Insulation for Shared Storage Servers , 2007, FAST.

[22]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[23]  Smruti R. Sarangi,et al.  Lock-Free and Wait-Free Slot Scheduling Algorithms , 2016, IEEE Transactions on Parallel and Distributed Systems.

[24]  Maurice Herlihy,et al.  The art of multiprocessor programming , 2020, PODC '06.

[25]  Jacek Blazewicz,et al.  Scheduling under resource constraints - deterministic models , 1986 .

[26]  Bin Shen,et al.  Resource availability-aware advance reservation for parallel jobs with deadlines , 2013, The Journal of Supercomputing.

[27]  Chuck Yoo,et al.  Performance enhancement of I/O scheduler for Solid State Devices , 2011, 2011 IEEE International Conference on Consumer Electronics (ICCE).

[28]  Maurice Herlihy,et al.  The Art of Multiprocessor Programming, Revised Reprint , 2012 .