PostgreSQL's MVCC is bad. So is everyone else's

The article examines the design trade-offs of PostgreSQL's Multi-Version Concurrency Control (MVCC) system, addressing common criticisms regarding table bloat and vacuuming. It argues that these issues are intentional design choices rather than defects, comparing them to alternative database architectures.
The first thing you will probably learn about Postgres, if you follow people who don't like Postgres, is that MVCC is bad. The 40-year-old design mistake. It's signatures are everywhere. Bloated tables that double in size, 32-bit transaction counter limit, the never ending struggle with VACCUM, dead tuples nightmares. It comes with credentials, too: Uber measured the write amplification in 2016 and left for MySQL over it; Andy Pavlo's database group called MVCC the part of PostgreSQL they hate the most . It's a real thing. Postgres is as bad as it gets.
Get the full story
Sign up for Headlinne to unlock AI insights, political bias analysis, and your personalized news feed.
Create free accountAlready have an account? Sign in