Topic 03 / 40
Database Connection Pooling & Settings Tuning
1. Deep Architecture
Creating a TCP connection to PostgreSQL for every request consumes memory (~10MB per backend process) and adds connection latency. Django’s CONN_MAX_AGE configuration keeps database connections alive, reusing them across multiple requests to reduce handshake latency.
2. The Feynman Gatekeeper
[KNOWLEDGE CHECK] What is the difference between persistent database connections (CONN_MAX_AGE) and a database-side proxy pooler like PgBouncer?
3. The Code
# config/settings.py
import dj_database_url
DATABASES = {
'default': dj_database_url.config(
default='postgres://postgres:postgres@localhost:5432/sanjaya',
conn_max_age=600, # Reuse connection for up to 10 minutes
conn_health_checks=True, # Check connection before reusing
)
}
4. The Funnel
Stat Level-Up: Database Optimizer (Lvl 1).
Sanjaya Integration: Ensure Sanjaya can scale query processing during batch video analysis uploads.