PgConf.Russia 2016 talks

Improving Postgres' Buffer Manager

Andres Freund
Citus Data

Postgresql's buffer manager has parts where it's showing its age. We'll discuss how it currently works, what problems there are, and what attempts are in progress to rectify its weaknesses.

  • Lookups in the buffer cache are expensive
  • The buffer mapping table is organized as a hash table, which makes efficient implementations of prefetching, write coalescing, dropping of cache contents hard
  • Relation extension scales badly
  • Cache replacement is inefficient
  • Cache replacement replaces the wrong buffers