01 / 01

Work, Thread, Work — A New Paradigm for Database Performance

Asynchronous I/O in DuckDB

Based on DuckDB Engineering Blog

July 2026

02

Why Async I/O Matters

Breaking the synchronous bottleneck in modern databases

The Problem with Synchronous I/O

schedule

Blocking Threads

Threads wait idle during disk or network operations, wasting valuable CPU cycles

trending_down

Poor Scalability

Adding more threads doesn't help when they're all waiting on I/O

speed

Latency Accumulation

Each I/O operation adds delay, compounding into significant query slowdown

DuckDB's Solution: Work, Thread, Work

1

Work (Submit)

Submit I/O request without blocking — thread continues processing

2

Thread (Execute)

Thread moves to other tasks while I/O completes asynchronously

3

Work (Complete)

Resume original work when I/O finishes, minimizing idle time

05

How It Works

The mechanics behind DuckDB's asynchronous I/O model

Key Implementation Strategies

  • 01
    Task Queue Design Work items queued and scheduled across available threads dynamically
  • 02
    Non-blocking Submission I/O requests return immediately, allowing threads to stay productive
  • 03
    Completion Callbacks Efficient notification system signals when I/O operations finish
  • 04
    Work Stealing Idle threads can take work from busy threads, maximizing utilization

Performance Improvements

85%
Thread Utilization
60%
Query Speed
72%
CPU Efficiency
55%
I/O Throughput

Performance gains measured in analytical query workloads vs. synchronous baseline

Thank You

Asynchronous I/O: Making databases faster by keeping threads busy

https://duckdb.org/2026/07/31/asynchronous-io
Made with AirSlide
𝕏 in