| From: | Jelte Fennema <Jelte(dot)Fennema(at)microsoft(dot)com> |
|---|---|
| To: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Support load balancing in libpq |
| Date: | 2022-06-10 16:31:26 |
| Message-ID: | PR3PR83MB04768E2FF04818EEB2179949F7A69@PR3PR83MB0476.EURPRD83.prod.outlook.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Load balancing connections across multiple read replicas is a pretty
common way of scaling out read queries. There are two main ways of doing
so, both with their own advantages and disadvantages:
1. Load balancing at the client level
2. Load balancing by connecting to an intermediary load balancer
Option 1 has been supported by JDBC (Java) for 8 years and Npgsql (C#)
merged support about a year ago. This patch adds the same functionality
to libpq. The way it's implemented is the same as the implementation of
JDBC, and contains two levels of load balancing:
1. The given hosts are randomly shuffled, before resolving them
one-by-one.
2. Once a host its addresses get resolved, those addresses are shuffled,
before trying to connect to them one-by-one.
| Attachment | Content-Type | Size |
|---|---|---|
| 0001-Support-load-balancing-in-libpq.patch | application/octet-stream | 17.4 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jacob Champion | 2022-06-10 17:58:09 | Re: [PATCH] Expose port->authn_id to extensions and triggers |
| Previous Message | Phil Florent | 2022-06-10 16:20:09 | Re: Error from the foreign RDBMS on a foreign table I have no privilege on |