"Connection"
- PostgreSQL Connection Scaling:process-per-connection model 跟為什麼 pooler 是必裝
PG 每個 client connection fork 一個 backend process(不是 thread)、RAM 成本 5-15MB/connection、context switch 跟 fork() cost 在 100+ connection 後線性放大、所以 pooler 不是 *optional optimization* 而是 *production prerequisite*。本文走 process-per-connection model 跟 MySQL thread-per-connection 對比、max_connections + shared_buffers + work_mem 三 GUC 互動、application-side pool vs middleware pool vs RDS Proxy 三層選擇、5 production 踩雷(connection storm / fork() cost 在 burst 流量 / shared_buffers 跟 connection 數壓縮 / double-pool 配置錯誤 / max_connections 設太大反而慢)、跟 PgBouncer config 互補不重複
- Redis 連線與 pipeline:RTT 稅、連線池與一次往返打包多命令
Redis 單命令通常微秒級執行,但 application 端量到的延遲是毫秒級——差距全在網路往返(RTT)。pipelining 的本質不是『批次發命令』,是把 N 次 RTT 壓成 1 次。本文展開 RTT 會計、連線池配置、pipeline 與 MULTI 的差異、5 個把連線與往返寫成延遲與正確性問題的 production 踩坑,以及連線模型撞牆的邊界