from PgBouncer
Migrating from PgBouncer is straight forward once a Supavisor cluster is setup and a database has been added as a tenant
.
No application level code changes should be required other than a connection string change. Both transaction
and session
pool mode behavior for Supavisor is the same as PgBouncer.
One caveat during migration is running two connection poolers at the same time.
When rolling out a connection string change to your application you will momentarily need to support two connection pools to Postgres.
Check Postgres connection limit
Lets see what our connection limit is set to on our Postgres database:
1 |
|
Check used connections
Lets see how many connections we're currently using:
1 |
|
Change Postgres max_connections
Based on the responses above configure the default_pool_size
accordingly or increase your max_connections
limit on Postgres to accomadate two connection poolers.
e.g if you're using 30 connections out of 100 and you set your default_pool_size
to 20 you have enough connections to run a new Supavisor pool along side your PgBouncer pool.
If you are using 90 connections out of 100 and your default_pool_size
is set to 20 you will have problems during the deployment of your Supavisor connection string because you will hit your Postgres max_connections
limit.
Verify Supavisor connections
Once we've got Supavisor started we can verify it's using the amount of connections we set for default_pool_size
:
1 2 3 4 5 6 7 8 9 10 |
|
Celebrate!
You deserve it 🤙