Thread: Load balancing of write queries among health-checked nodes

Load balancing of write queries among health-checked nodes

From
me+postgres@kotovalexarian.com
Date:
Hello. I have a PostgreSQL high availability cluster with Pgpool-II, but I don't use the virtual IP feature so my
clientsdon't know which node to send queries to. DNS round-robin is not a solution because it can't distinguish between
healthyand dead nodes. 

I thought about having a Pgpool-II instance on each client (client Pgpool-II -> cluster Pgpool-II -> PostgreSQL), but
AFAIKit can't distribute write queries. I also know that libpq may have multiple nodes to connect, but I need an
advancedhealth check because a node may have connectivity but be separated from the whole cluster so it must be
considereddead. 

Is there any solution?



Re: Load balancing of write queries among health-checked nodes

From
Ron Johnson
Date:
On Mon, Oct 7, 2024 at 11:04 PM <me+postgres@kotovalexarian.com> wrote:
Hello. I have a PostgreSQL high availability cluster with Pgpool-II, but I don't use the virtual IP feature so my clients don't know which node to send queries to. DNS round-robin is not a solution because it can't distinguish between healthy and dead nodes.

I thought about having a Pgpool-II instance on each client (client Pgpool-II -> cluster Pgpool-II -> PostgreSQL), but AFAIK it can't distribute write queries. I also know that libpq may have multiple nodes to connect, but I need an advanced health check because a node may have connectivity but be separated from the whole cluster so it must be considered dead.

Isn't that multi-master clustering?

--
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> crustacean!

Re: Load balancing of write queries among health-checked nodes

From
me+postgres@kotovalexarian.com
Date:
Among PostgreSQL instances there is only one master. But yes, each server may be considered master by the clients
becauseit's Pgpool-II will redirect write queries to the actual master. Maybe it's even better to avoid this
unnecessarytraffic between servers and decide which Pgpool-II is in front of the master on the client side, but this is
optional.

Dnia 8 października 2024 07:30:05 GMT+04:00, Ron Johnson <ronljohnsonjr@gmail.com> napisał/a:
>On Mon, Oct 7, 2024 at 11:04 PM <me+postgres@kotovalexarian.com> wrote:
>
>> Hello. I have a PostgreSQL high availability cluster with Pgpool-II, but I
>> don't use the virtual IP feature so my clients don't know which node to
>> send queries to. DNS round-robin is not a solution because it can't
>> distinguish between healthy and dead nodes.
>>
>> I thought about having a Pgpool-II instance on each client (client
>> Pgpool-II -> cluster Pgpool-II -> PostgreSQL), but AFAIK it can't
>> distribute write queries. I also know that libpq may have multiple nodes to
>> connect, but I need an advanced health check because a node may have
>> connectivity but be separated from the whole cluster so it must be
>> considered dead.
>>
>
>Isn't that multi-master clustering?
>