PgBouncer: Present and Future: Euler Taveira - PGCon 2023

PgBouncer: powering PostgreSQL with connection pooling, authentication, and reconfiguration options, from simple design to scalable codebase growth, and innovative features like peering and peptide.

Key takeaways

Key Takeaways

  • PgBouncer is a connection pooler for PostgreSQL, designed for simplicity and lightness.
  • It offers several features, including section pooling, transaction pooling, and statement pooling.
  • The show state command provides global state information for PgBouncer.
  • Options for authentication include MD5, scram, certificates, trust, PAM, and HBA.
  • The peptide feature helps with canceling requests in cases of multiple instances.
  • The project is hosted on GitHub, with bug tracking and answers to questions.
  • There are 48 releases along the years, with two or three releases per year.
  • The main configuration file is PgBouncer.ini with 87 parameters.
  • The project has grown four times since its initial version in 2007.
  • The average number of lines of code has grown significantly, from 6,000 to 24,000.
  • The project is designed to be simple, with a low memory footprint for each connection.
  • Online reconfiguration is possible.
  • Authentication plays an important role, especially in connection pooling.
  • The kill command can be used to immediately close client and server connections.
  • Several other commands, such as pause and suspend, are available for specific scenarios.
  • A new feature, peering, helps with canceling requests in cases of multiple instances.
  • The project is open for suggestions and ideas.
  • Minimal pull size, minimal number of connections, and query wait timeout are available options.
  • The ignore start up parameters option is available for certain situations.