Designing a Userspace Disk I/O Scheduler for Modern Datastores: the ScyllaDB example (Part 2)
Blog post from ScyllaDB
In the conclusion of a two-part series, the article examines the Seastar I/O Scheduler used by ScyllaDB to manage disk I/O, focusing on its ability to provide predictable latencies, fairness, and balance among various priority classes. The Seastar scheduler employs a shared-nothing architecture, dividing global resources like I/O depth among shards, and utilizes I/O Queues to facilitate local parallelism and efficient resource allocation. By classifying requests into priority classes with assigned shares, ScyllaDB ensures balanced resource distribution, even under heavy workloads. The scheduler's design allows for dynamic adjustment of shares, maintaining low latencies and efficient disk usage. Future versions may include dynamic share adjustments and support for multiple disk arrays with separate schedulers, enhancing performance and scalability as core numbers increase. The article highlights that relocating the disk I/O scheduler to userspace within a thread-per-core model provides more stable and faster results, showcasing a significant advancement in scalable database performance.
| Trend | Post Mentions | Total Month Mentions | Posts | Companies | MoM |
|---|---|---|---|---|---|
| Real-time | 2 | 106 | 53 | 25 | -40% |
Use this post, company, and trend context to find content marketing opportunities, perform competitive analysis, or address product feature gaps via the Plushcap MCP server or the Plushcap API.