Pgpool-II — Complete Guide
Pgpool-II — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of PostgreSQL Tutorial on Toolliyo Academy.
On this page
PostgreSQL Tutorial · Lesson 65 of 100
Pgpool-II
SQL ✓ → Advanced
Advanced · 2 — Production · ~10 min · PostgreSQL — Replication & High Availability
What is this?
Pgpool-II is middleware between apps and PostgreSQL — connection pooling, read/write splitting, query cache (limited), and automatic failover coordination with watchdog.
Why should you care?
PostgresVerse Java monolith opens 800 threads — Pgpool pools to 100 real postgres connections and sends SELECTs to standby.
See it live — copy this example
Run in pgAdmin or psql.
# pgpool.conf excerpt (conceptual)
load_balance_mode = on
backend_hostname0 = 'primary.postgresverse.local'
backend_weight0 = 1
backend_flag0 = 'ALLOW_TO_FAILOVER'
backend_hostname1 = 'standby.postgresverse.local'
backend_weight1 = 1
backend_flag1 = 'DISALLOW_TO_FAILOVER'
Run Example »
This lesson uses terminal or setup steps. Run commands on your computer — the live editor appears on coding lessons.
What happened?
- load_balance_mode sends read queries to backends by weight.
- Primary handles writes; standby serves balanced reads.
- Flags control failover participation.
Practice next
- Install Pgpool-II in lab stack (Docker compose doc).
- Point psql to Pgpool port 9999 not 5432.
- Run SELECT — may hit standby; INSERT goes primary.
- Compare latency psql direct vs via Pgpool.
- Disable load_balance and route all reads to primary for A/B test.
Remember
Pgpool is proxy + pool + optional LB. Not a replacement for PgBouncer-only pooling — overlaps exist. Watchdog handles virtual IP failover scenarios.
PostgresVerse legacy app pool
800-connection Tomcat app fronted by Pgpool; DB max_connections stays 120.
Outcome: OOM on postgres avoided during marketing push.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!