What went wrong (& what went right) with AIO with Andres Freund
Update: 2025-09-19
Description
Six years, a prototype, and a brief multi-layered descent into “wronger and wronger” design—what does it take to land a major architectural change in Postgres? In Episode 31 of Talking Postgres, Andres Freund—major contributor, Postgres committer, and lead of the Asynchronous I/O project—shares the wins, the missteps, and why he thinks AIO definitely took too long. We dig into io_uring in Linux, direct I/O, streaming reads, technical leadership, and exactly when is the right time to stop working on a prototype. If you’ve ever wondered how big architectural changes happen, or why they sometimes take years, this episode is for you.
Links mentioned in this episode:
- Talking Postgres podcast: How I got started as a developer (& in Postgres) with Andres Freund & Heikki Linnakangas
- Release Notes: PostgreSQL 18 release notes
- News: PostgreSQL RC 1 Released on Sep 04 2025
- Wikipedia page: io_uring
- PostgreSQL: Join the PostgreSQL Hacking Discord
- Video of talk: What went wrong with AIO by Andres Freund at PGConfdev 2025
- Commit: Add core asynchronous I/O infrastructure to PostgreSQL
- Wiki page: AIO project in PostgreSQL with state, sub-projects, and work still to be done
- Upcoming Talk: AIO in PG 18 and Beyond at PGConf NYC on 30 Sep 2025
- Upcoming Talk: AIO in PG 18 and Beyond at PGConf EU on 23 Oct 2025
- Wikipedia page: XZ Utils backdoor discovery by Andres Freund
- Cal invite: LIVE recording of Ep32 of Talking Postgres to happen on Wed Oct 8, 2025
Comments
In Channel