~/talk

Storage-intensive apps on tokio: when it's time to reach for io_uring

Talkat TokioConf 2026 · 2026-04-20..04-22· [rust]
slides:none on file

Page server moves tokio IO onto io_uring by building tokio-epoll-uring, a library that submits io_uring SQEs from within a vanilla Tokio process and awaits completions via an async_fd-driven task. It guarantees nonblocking IO, requires no extra threads or runtime, and yields a proof-of-concept 10x better tail latency for batch submission, but stops short of a native runtime: ext4 blocking corner cases, lack of a batch-submit API, and an extra wake-up “trampoline” that delays completions remain practical limits.

AI-written summary · about

  1. 0:00Storage workloads intro
  2. 1:18Neon’s page server
  3. 5:56Naive Tokio with spawn_blocking
  4. 9:52Async IO with io_uring
  5. 11:56How io_uring works
  6. 22:10Ext4 buffered reads
  7. 24:57Tokio-uring for page server
  8. 30:56Performance gains and limits
  9. 32:42Call to Tokio optimizations
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.