Different I/O Access Methods for Linux, What We Chose for ScyllaDB, and Why
When most server application developers think of I/O, they consider network I/O since most resources these days are accessed over the network: databases, object storage, and other microservices. However, the developer of a database must also consider file I/O.
In this on-demand video , Avi Kivity provides a detailed technical overview of the available choices for I/O access and their various tradeoffs. He then explains why ScyllaDB chose asynchronous direct I/O (AIO/DIO) as the access method for our high-performance low latency database and reviews how that decision has impacted our engineering efforts as well as our product performance.
It covers:
- Four choices for accessing files on a Linux server: read/write, mmap, Direct I/O (DIO) read/write, and asynchronous direct I/O (AIO/DIO)
- The tradeoffs among these choices with respect to core characteristics such as cache control, copying, MMU activity, and I/O scheduling
- Why we chose AIO/DIO for ScyllaDB and a retrospective on that decision seven years later