2026-09-30
· 6 min
PostgreSQL's `max_worker_processes` hasn't budged since 2014, but parallel queries, logical replication, and extensions keep demanding slots.
0 comments
2026-09-29
· 6 min
·
PostgreSQL
`max_wal_size` is a checkpoint trigger, not a maximum—and the real cost is paid by setting it too low, not too high.
0 comments
2026-09-28
· 6 min
·
PostgreSQL
WAL senders have their own connection pool, separate from max_connections—but it fills up faster than you'd think.
0 comments
2026-09-27
· 7 min
·
PostgreSQL
max_sync_workers_per_subscription parallelizes table copies across tables, not within them.
0 comments
2026-09-26
· 8 min
·
PostgreSQL
`max_standby_streaming_delay` buys you replication lag, not query time—and when the budget runs out, queries get canceled regardless of how long they've…
0 comments
2026-09-25
· 6 min
·
PostgreSQL
Replication slots can silently fill your disk and crash the primary, or you can set `max_slot_wal_keep_size` to kill a stalled replica instead.
0 comments
2026-09-24
· 6 min
·
PostgreSQL
`max_replication_slots` sizes a shared-memory array that holds every replication slot, regardless of type or state.
0 comments
2026-09-23
· 6 min
·
PostgreSQL
Prepared transactions are orphaned sessions that hold locks and block vacuum indefinitely.
0 comments
2026-09-22
· 5 min
·
PostgreSQL
Predicate locks outlive their transactions in PostgreSQL's serializable isolation, so the default `max_pred_locks_per_transaction` of 64 sizes a table holding…
0 comments
2026-09-22
· 14 min
·
PostgreSQL
WalShadow replicates PostgreSQL to ClickHouse by decoding the physical WAL stream itself, not logical decoding.
0 comments