Postgres 18 adds asynchronous I/O
30-second read
Postgres 18 ships async I/O via io_uring on Linux, finally letting checkpoints, sequential scans, and WAL writes run without blocking on disk. The thread splits between cloud-Postgres operators (cheering) and on-prem DBAs (worried about kernel-version and observability gaps).
▲ For
- Async I/O removes the single biggest latency cliff in checkpoint-heavy OLTP — multiple commenters from RDS-scale shops report 30–60% reduction in p99 write latency in their benchmarks.
- Sequential scans on cold data finally overlap with prefetch instead of stalling per page; one user posted a 4× speedup on a 200 GB analytical query.
- Implementation reuses the existing background-worker framework, so the failure modes are familiar to anyone who already runs PG in production.
▼ Against
- io_uring is Linux-only and requires a recent-ish kernel (5.10+). Anyone on RHEL 8, older Debian, or any BSD gets the synchronous fallback and none of the wins.
- Operational complexity goes up: new GUCs (`io_method`, `io_workers`) have non-obvious defaults, and tuning requires understanding kernel-side queue depths.
- Existing observability tools (pg_stat_io is new in 18, vendor dashboards have not caught up) don't yet show async wait events clearly — debugging a slow query in the wild will be harder for the next 6 months.
? Still unknown
- Real-world impact on logical replication and standby lag — the release notes are quiet, and nobody in the thread has run it at multi-TB scale yet.
- How managed providers (RDS, Cloud SQL, Aurora, Neon, Supabase) will expose the new knobs — or whether they'll lock them down entirely.
- Whether the io_uring path is safe under tight cgroup memory limits — one commenter reported OOM kills under sustained checkpoint pressure in their staging environment.
→ What it means
- Cloud Postgres providers will likely roll this out behind a feature flag in Q3/Q4 2026, with knob exposure coming later if at all.
- Self-hosted users on modern Linux can adopt immediately; everyone else effectively waits for their distro to catch up.
- Expect a wave of '`io_method=worker` vs `io_method=io_uring` benchmarks on HN' within the next month.
“ Notable quotes
Async I/O has been the missing piece for years. We finally have a path to saturating modern NVMe without one process per file descriptor.— andresfreund
Excited, but we're still on PG 15 in production. By the time we upgrade, the dashboards will hopefully tell us what async waits even mean.— msuser_2026
This is a hand-curated demonstration of grephn's AI compression format. Argument structure, quotes, and figures are representative of the linked HN discussion but are not verbatim transcriptions. Open the app to run live compression on any current thread.