pgagroal is a high-performance protocol-native connection pool for PostgreSQL.
- High performance
- Connection pool
- Limit connections for users and databases
- Prefill support
- Remove idle connections
- Perform connection validation
- Enable / disable database access
- Graceful / fast shutdown
- Prometheus support
- Grafana 8 dashboard
- Remote management
- Authentication query support
- Failover support
- Transport Layer Security (TLS) v1.2+ support
- Daemon mode
- User vault
See Getting Started on how to get started with
See Configuration on how to configure
See Performance for a performance run.
pgagroal makes use of
- Process model
- Shared memory model across processes
- libev for fast network interactions
- Atomic operations are used to keep track of state
- The PostgreSQL native protocol v3 for its communication
See Architecture for the architecture of
Compiling the source
dnf install git gcc cmake make libev libev-devel openssl openssl-devel systemd systemd-devel python3-docutils
Alternative clang 8+ can be used.
The following commands will install
pgagroal in the
/usr/local hierarchy and run the default configuration.
git clone https://github.com/agroal/pgagroal.git cd pgagroal mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr/local .. make sudo make install /usr/local/bin/pgagroal -c /usr/local/etc/pgagroal/pgagroal.conf -a /usr/local/etc/pgagroal/pgagroal_hba.conf
See RPM for how to build a RPM of
The following commands will create a
DEBUG version of
git clone https://github.com/agroal/pgagroal.git cd pgagroal mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug .. make cd src cp ../../doc/etc/*.conf . ./pgagroal -c pgagroal.conf -a pgagroal_hba.conf
Remember to set the
log_level configuration option to
pgagroal are managed on GitHub.com
Contributions are most welcome !
Please, consult our Code of Conduct policies for interacting in our community.