Postgres recovery_prefetch can cause outages

A technical analysis reveals that the 'recovery_prefetch' feature in PostgreSQL can cause production outages by converting large sequential I/O operations into inefficient random reads. The author highlights that this issue was previously overlooked despite early warnings from the developer community.
Why it matters
This insight is critical for database administrators and engineers managing high-availability PostgreSQL clusters to prevent unexpected downtime.
Another story of something I saw in the field which surprised me. Turns out recovery_prefetch can cause outages.
Something which has been happening quietly in the background all the time, but we didn’t notice until we looked close enough to see it.
After a lot of work I discovered this was partly a case where someone had dropped an email to the postgres hackers list years ago “hey what about this” and everyone thought “nah it can’t be that bad” … and now here we are seeing production outages!
Exhibit A: Feb 2021, while the feature was being developed, a year and a half before it shipped, Stephen Frost
https://www.postgresql.org/message-id/20210214231815.GO27507@tamriel.snowman.net
Exhibit B: Mar 2025, clear report from the field, Michael Zhilin (Postgres Pro)
https://www.postgresql.org/message-id/9bdb428a-fc8e-4801-8fff-1ad0bc6fa76b%40postgrespro.ru
Both of these emails were on the right track, but didn’t quite get the complete picture yet.
Get smarter about the news
Sign up free for a feed built around what you actually care about, Dive Deeper research on any story, and the full text of every article.
Create free accountAlready have an account? Sign in