Articles

Field notes on PostgreSQL high availability

Written from a real test cluster, not from memory. Every number was measured and every error message was seen.

High availability

What happens to Patroni when etcd loses quorum (measured)

Lab-measured: the primary demotes itself and writes fail after 18 seconds, how recovery looks, and what failsafe_mode changes.

High availability

Patroni and HAProxy: which health check to use (/primary, /replica, /leader and the rest)

Which REST API endpoint HAProxy should check, a working configuration, and the mistakes that send writes to a replica.

Backups

Point-in-time restore of a Patroni cluster with pgBackRest (tested)

The tested steps to restore to just before a bad DROP, why Patroni must be stopped first, and the mistakes to avoid.

Performance

How long does a Patroni failover take? We measured it

Switchover, clean stop and crash timings, what ttl and loop_wait really do, and what tuning buys you.

Troubleshooting

pg_rewind “password authentication failed” and the PGPASSWORD trap

Why a crashed leader stays in start failed, and a 10-second check for the cause.

Installation

“'int' object has no attribute 'get'” with etcd on Ubuntu 24.04

Patroni never starts on Ubuntu's etcd package. How to confirm it and install a working etcd 3.6.