How High Availability Works
In a highly available Postgres cluster, ParadeDB indexes replicate to standby instances alongside your data and remain available after failover. One instance serves as the primary, while the others serve as standbys. The primary sends write-ahead logs (WALs) to the standbys, which replay them to stay in sync. If the primary server goes down, a standby server is promoted to become the new primary server. This process is called failover.Standby Configuration
ParadeDB requires the following settings on standby instances to prevent query cancellations while the primary reorganizes index data. Our Helm Chart configures these settings automatically.hot_standby_feedback=on— Thehot_standby_feedbacksetting controls whether nodes acting ashot_standbys (the replicas in physical replication) send feedback to the leader about their current transaction status. ParadeDB uses this transaction status to determine when it is safe for the primary to garbage collect its segments.primary_slot_name=$something— Theprimary_slot_namesetting declares the name of the replication slot that a replica should use when it connects to the primary. In order forhot_standby_feedbackto be used and persistent, a replication slot must be used.
Asynchronous vs. Synchronous Replication
ParadeDB follows your Postgres cluster’s replication configuration. You can use asynchronous or synchronous replication depending on your durability and latency requirements.- Asynchronous replication lets transactions commit without waiting for standby confirmation. This avoids replication-related commit delays, but recent commits may be lost if the primary fails before they reach the promoted standby.
- Synchronous replication makes transactions wait for confirmation from the configured number of standbys before committing. This provides stronger durability guarantees at the cost of commit latency and can block writes if too few standbys are available.
synchronous_commit, while synchronous_standby_names determines which standbys participate and how many must respond. See the Postgres synchronous replication documentation for configuration details.