ScyllaDB 2.0: Improved Latencies from 3.6ms to 0.8ms for the 99th Percentile
Blog post from ScyllaDB
ScyllaDB 2.0 introduces advancements in workload conditioning, particularly through the implementation of a userspace disk I/O Scheduler that efficiently manages disk resources to balance different database tasks. This system ensures Quality-of-Service (QoS) by isolating tasks and limiting resource utilization, notably improving latencies from 3.6ms to 0.8ms for the 99th percentile. The update supports the faster NVMe disks and the Amazon i3 family, addressing the shift from being disk-bound to potentially CPU-bound systems. ScyllaDB 2.0 incorporates an experimental CPU scheduler to manage CPU usage for background tasks like memtable flushes and compactions, crucial for maintaining stable foreground loads without sacrificing performance. By automatically determining optimal CPU quotas for memtable flushes and capping CPU usage during contention, ScyllaDB reduces high percentile latencies and enhances consistency, as evidenced by improved benchmark results. Future versions aim to further automate this quota adjustment in response to varying workloads, promising even more robust performance optimization.