Skip to main content

PostgreSQL cluster fault tolerance

By default, a Managed Databases PostgreSQL cluster consists of a single master node. To ensure cluster fault tolerance, add replicas to it. In multi-node clusters, one node will be the master node, and the rest will be replicas.

note

For example, if you created a three-node cluster, the cluster will have one master node and two replicas. If you add more nodes, they will be replicas.

When adding replicas, consider the node allocation type in the cluster.

Master node

By default, a cluster consists of one primary node: a master node. When connecting to the master node, all operations are available: read (SELECT) and write (INSERT, UPDATE, DELETE, and others).

All data changes on the master node are duplicated on the replicas. The replication process does not affect the operation of the replicas or the master node.

Replicas

Replicas are exact copies of the master node. They are available only for reading data (SELECT). In Managed Databases PostgreSQL clusters, one replica is always synchronous, and all subsequent replicas are asynchronous.

Having replicas in a cluster ensures its fault tolerance — if the master node stops working, its role will be taken over by one of the replicas, and the cluster will continue to operate normally. When the master node is restored, it will take on the role of a replica. At this point, the master node address will change.

Clusters with replicas are covered by an SLA: we guarantee 99.95% write availability and 99.99% read availability.

If there are no replicas in the cluster, it will be unavailable until the master node is restored. Data will not be lost.

We recommend creating fault-tolerant clusters with replicas or adding replicas to existing clusters.

Node allocation type

The node allocation type in a cluster depends on:

  • the presence of replicas in the cluster;
  • the type of pool where the cluster is located;
  • the number of segments in the pool;
  • configuration line.

You can view the list of pools and segments in the Selectel infrastructure table of the Locations: Countries, Regions, Availability Zones, Pools, and Data Center Addresses guide.

Four node allocation types are available:

  • Single-Segment;
  • Multi-Segment;
  • Single-AZ;
  • Multi-AZ

Nodes are placed in the same segment of a single-AZ pool. Applicable to:

  • for clusters without replicas;
  • for clusters with replicas that are located in pools with only one segment;
  • clusters with replicas in HighFreq and Dedicated configuration lines.
note

For example, you created a three-node cluster (one master node and two replicas) in the HighFreq line configuration in the ru-2 pool. All nodes will be placed in a single pool segment, for example, in ru-2c.

Change the number of replicas

You can increase or decrease the number of replicas. The cluster continues to run while the number of replicas is being changed.

  1. In the Control panel, in the top menu, click Products and select Managed Databases.
  2. Open the Active tab.
  3. Open the cluster page → Settings tab.
  4. Click Change configuration.
  5. In the Fault tolerance section, in the Number of nodes field, specify the new number of replicas. If there are no available IP addresses in the subnet to which the cluster is connected, you cannot add a replica — each new replica takes a new address in the subnet.
  6. Click Save.