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 these 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
Speakers: Andres Freund