Managing Your Tuple Graveyard


When making the leap from "running Postgres" to "running Postgres at scale", managing table bloat is a hurdle which many engineers trip over. In this talk, we discuss everything from Postgres internals to application design on the journey to understanding table bloat, why it occurs, how to manage it, and (best of all) how to avoid tripping over it in the first place.

This talk will cover:

  • Multi-Version Concurrency Control (MVCC)
  • "Dead" vs "live" tuples
  • Vacuum & its multiple roles
  • Methods of identifying and quantifying bloat
  • How much bloat is "too much"?
  • Dealing with bloated tables: autovacuum configuration & pg_repack
  • Designing bloat-aware data access patterns
Ballroom A
Friday, March 10, 2023 - 15:30 to 16:30