~/talk

Less Tokio is More Tokio: Strategies for Accelerating a Rust Native Search Database

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

A Rust-native storage layer on top of Tokio redesigns the I/O loop into a synchronous submit/poll flow and a push/pull task queue, removing an extra submitter and drastically reducing handoffs. The team adds io_uring batching, starts I/O when scheduling rather than inside task closures, and moves to fewer tokio tasks with eagerly polling futures. The result reaches about 3,800 QPS and sustains around 1.8M reads/sec, showing the approach works.

AI-written summary · about

  1. 0:00Start
  2. 0:15Introduction to Lance DB and the speaker
  3. 2:02Why this talk isn’t about IO_uring
  4. 3:07What Lance DB does and its use cases
  5. 8:42Why vector search requires millions of IOPS
  6. 10:27Balancing horizontal and vertical scaling
  7. 11:11Challenges of achieving high IOPS on NVMe
  8. 15:10Understanding synchronization overhead in IO
  9. 20:22Why simply adding IO_uring didn’t work
  10. 23:08The original IO scheduling problem
  11. 26:18Simplifying the scheduler to reduce overhead
  12. 28:25Integrating IO_uring for batching IO requests
  13. 30:31Benchmarking setup and hardware goals
  14. 32:40Results and unexpected performance gains
  15. 34:10Lessons learned from the IO_uring API
  16. 36:39Key takeaways for high-ops workloads
~/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.