pgagroal
is a high-performance protocol-native connection pool for PostgreSQL.
Pronounced: p-g-a-gro-al, named after Agroal in Portugal.
- 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 pgagroal
.
See Configuration on how to configure pgagroal
.
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
pgagroal
will work with any PostgreSQL compliant driver, for example
pgjdbc, Npgsql and pq.
See Architecture for the architecture of pgagroal
.
pgagroal
requires
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 pgagroal
.
The following commands will create a DEBUG
version of pgagroal
.
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 debug5
.
Contributions to pgagroal
are managed on GitHub.com
Contributions are most welcome !
Please, consult our Code of Conduct policies for interacting in our community.
Consider giving the project a star on GitHub if you find it useful. And, feel free to follow the project on Twitter as well.