Choosing a deployment architecture

Choosing a deployment architecture#

Failover Manager provides various high availability options for EDB Postgres Advanced Server using the Postgres connection poolers and connection libraries. These options have implications for a high-availability architecture.

To ensure the high availability of your database, you can combine core features of Failover Manager with the Postgres connection libraries (client connect failover) and connection poolers.

With the capabilities of Failover Manager, EDB has designed four basic architectures to run a high-availability environment:

  1. Using Failover Manager with virtual IP addresses : Failover Manager has a key capability to manage VIP addresses out of the box. VIP addresses allow applications to connect to a single IP address that is being routed to the primary database server. This architecture is the most basic solution to run when VIP addresses are available in your environment.

  2. Failover Manager with client connect failover : PostgreSQL client libraries like libpq and jdbc allow for client connection failover. With client connection failover, the connection string contains multiple servers (host=srv1,srv2) and the client library loops over the available hosts to find a connection that is available and capable of read-write operations. This capability allows clients to follow the master during a switchover. This solution doesn’t rely on virtual IP addresses. You can use it in every environment where such client configurations can be set.

  3. Failover Manager with EDB PgBouncer : PgBouncer adds capabilities such as connection pooling and the option to halt traffic. You can also use it as a proxy between the client and the Postgres database server. By leveraging the integration options in Failover Manager to run reconfiguration of PgBouncer during a failover, you can use PgBouncer to route the traffic to the correct primary database server.

  4. Failover Manager with EDB Pgpool-II : EDB Pgpool-II is another tool used as a proxy between the client and the Postgres database server. EDB Pgpool-II adds capabilities such as running in cluster mode with a Watchdog, managing VIPs, and read-only scalability. Failover Manager has native capabilities to integrate with EDB Pgpool-II to redirect traffic to another primary during Database failover operations.

These features are supported in each of the architectures:

Client connect failover

Features

Failover Manager with VIP

Failover Manager with client connect failover

Failover Manager with EDB PgBouncer

Failover Manager with EDB Pgpool-II

Connection pooling

Yes

Yes

Runs on cloud (no VIP)

Yes

Yes

Yes

Halt traffic option

Yes

Read-only scalability

Yes (using multiple connection factories)

Yes

Clustered proxy

Yes

Proxy integration

ssh

PCP

Minimum servers required

3

3

5

6

Complexity

Low

Low

Medium

High

Network hops

1

1

Failover duration

Low

Medium

Low

Low