Implementing a New IO Scheduler Algorithm for Mixed Read/Write Workloads
Blog post from ScyllaDB
The blog post discusses the implementation of a new I/O scheduler algorithm for ScyllaDB to improve the management of mixed read/write workloads, aiming to balance disk throughput and latency. ScyllaDB's I/O scheduler prioritizes requests to prevent latency spikes caused by background activities like compaction and repair, which can interfere with immediate read requests. The new algorithm employs a token bucket model to control the rate of outgoing requests, ensuring they remain within the disk's capabilities while adapting to real-time disk conditions. Testing on ScyllaDB versions 4.6 and 5.0 showed that the new scheduler allows for better handling of high request rates, reducing latency by managing the bandwidth and IOPS more effectively. This advancement will be integrated into ScyllaDB version 5.0, along with additional enhancements such as improved metrics reporting and runtime adjustments to accommodate disk aging and different drive speeds.