Tech News
← Home  ·  All topics

Io Uring

2 GoKawiil briefs on this topic

Conviva finds io_uring underperforms mmap in Rust-based DataFusion query engine

Conviva engineers tried replacing mmap with io_uring for reading large Arrow IPC files in their DataFusion-based analytics engine, hoping to fix latency spikes seen under heavy concurrent query loads with mmap. Instead of resolving the problem, the io_uring approach ran slower, and the team's investigation traced the original mmap issue to page-cache thrashing and excessive page faults under high concurrency rather than the memory-mapping mechanism itself.

Turso finds io_uring readahead cuts device requests 12x in TPC-H benchmark

A throwaway pull request to add readahead to Turso's io_uring backend became a case study in I/O performance. Without readahead, Turso issues one io_uring read at a time and waits for each to complete before requesting the next page; with a 32-page prefetch window enabled via PRAGMA, it submits many reads concurrently. On a TPC-H full-table scan, this dropped actual device requests from about 196,000 to roughly 16,300, while average request size grew more than tenfold and request-merging jumped from near zero to over 90%.