[PlanetScale Blog] Patterns for Postgres Traffic Control

Nguồn: PlanetScale Blog Tóm tắt Kiểm soát luồng traffic vào database Postgres là một trong những quyết định kiến trúc quan trọng nhất khi xây dựng và mở rộng ứng dụng. PlanetScale đã tổng hợp các pattern phổ biến nhất bao gồm connection pooling, read replicas với read/write splitting, query routing, circuit breakers và rate limiting ở tầng database. Connection pooling là kỹ thuật cơ bản nhất: Postgres sử dụng mô hình process-per-connection, tức mỗi client kết nối sẽ tạo ra một backend process mới, tiêu tốn bộ nhớ và CPU đáng kể....

14/04/2026 · 2 min · dhphong

[PlanetScale Blog] Scaling Postgres connections with PgBouncer

Nguồn: PlanetScale Blog Tóm tắt Postgres sử dụng mô hình process-based: mỗi client connection spawns một backend process mới, tiêu tốn 5-10MB RAM, CPU cho context switching, và file descriptors. Khi connection count tăng, memory pressure và context switching overhead khiến query throughput giảm và latency tăng. max_connections mặc định là 100 — đây là ngưỡng giới hạn cứng của Postgres. PgBouncer (ra mắt 2007) là connection pooler phổ biến nhất giải quyết vấn đề này: clients kết nối vào PgBouncer thay vì trực tiếp vào Postgres, và PgBouncer duy trì một pool nhỏ các kết nối thực sự đến database, multiplexing requests từ nhiều clients qua số lượng connections ít hơn....

14/04/2026 · 2 min · dhphong