Ruby’s Scheduler: Improving I/O
Ruby’s thread scheduler is a round-robin scheduler, which makes it simple and completely fair. However, this hurts the responsiveness of I/O-bound threads for mixed I/O and CPU workloads because I/O-bound threads have to wait for CPU-bound threads to finish their timeslice. Many Ruby applications have this type of workload, so would benefit from a priority scheduler. In this talk, we will examine how a priority scheduler works and the benefits it can give to a Ruby application.
-
Luke GruberLuke is a Ruby core committer interested in concurrency and parallelism in Ruby's VM. He has an interest in improving Ractors as well as improving Ruby's VM for non-Ractor workloads. He works at Shopify.