PostgreSQL's MVCC is bad. So is everyone else's.
Summary
An in-depth look at PostgreSQL MVCC, arguing that MVCC incurs real costs in write amplification, bloat, idle-transaction penalties, and 32-bit XID wraparound. It contrasts PostgreSQL with undo-based systems (Oracle/InnoDB), SQL Server, MongoDB, and LSM engines, detailing how different architectures distribute the burden between writers, readers, and maintenance. The article also surveys historical fixes and future directions, emphasizing that there is no one-size-fits-all MVCC solution.