We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Improving PostgreSQL's mysterious SLRU subsystem - Thomas Munro - PGCon 2022
Improve PostgreSQL's SLRU subsystem, a mysterious and complex part of the database, with proposals for cache-friendly buffer pool design, intelligent replacement algorithms, checksums, and performance enhancements.
- Improving PostgreSQL’s SLRU subsystem involves turning SLRU into a cache-friendly buffer pool.
- The current SLRU design can cause bugs and does not handle high contention scenarios.
- The speaker worries about the buffer replacement policy, advocating for a more intelligent replacement algorithm.
- The design of the main buffer pool was driven by the need to store arbitrary data, which led to complexity.
- The SLRU subsystem has no checksums, which can make errors in the data invisible.
- The speaker proposes implementing checksums in the buffer pool to detect and correct errors.
- The background writer process can be slow and can cause delays in writing data to disk.
- The speaker proposes improving the performance of the background writer.
- The neconference track and ‘shared Nothing’ approach may be useful in improving the performance of PostgreSQL.
- The C log is a fundamental part of the Postgres system.
- The speaker has created a commit-fest entry and a mailing list thread to discuss improving the SLRU subsystem.
- The issue of how to handle raw pages is still open.
- The speaker proposes using atomix for locking, which may simplify the buffer pool locking mechanism.
- The buffer pool should benefit from future developments in storage and I/O.