Home / Companies / ScyllaDB / Blog / Post Details
Content Deep Dive

Different I/O Access Methods for Linux, What We Chose for ScyllaDB, and Why

Blog post from ScyllaDB

Post Details
Company
Date Published
Author
Avi Kivity
Word Count
2,001
Company Posts That Month
14
Language
English
Hacker News Points
-
Post removed?
No
Summary

Server application developers often focus on network I/O, but database developers must also consider file I/O, particularly when choosing access methods on Linux servers. The text outlines four primary methods: traditional read/write, mmap, Direct I/O (DIO), and asynchronous direct I/O (AIO/DIO), each with distinct tradeoffs regarding cache control, copying, MMU activity, I/O scheduling, thread scheduling, I/O alignment, and application complexity. Traditional methods rely heavily on the kernel for caching and scheduling, while DIO and AIO/DIO offer more control to the application, although they increase complexity. ScyllaDB opts for AIO/DIO to maximize performance and control, utilizing the Seastar framework to manage the complexity and optimize I/O operations such as compaction and queries. This approach allows ScyllaDB to bypass the kernel's limitations, improve cache management, and align small reads for efficiency, showcasing the potential of directly driving NVMe drives in the future.

Trends Found in this Post

No tracked trend matches for this post yet.

Use This Data

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.