Re: [EXTERNAL] Re: Support load balancing in libpq
Jelte Fennema-Nio <jelte.fennema@microsoft.com>
From: Jelte Fennema <Jelte.Fennema@microsoft.com>
To: Michael Banck <mbanck@gmx.net>
Cc: Maxim Orlov <orlovmg@gmail.com>, Aleksander Alekseev <aleksander@timescale.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2023-01-09T13:00:01Z
Lists: pgsql-hackers
Attachments
- v6-0001-libpq-Run-pgindent-after-a9e9a9f32b3.patch (application/octet-stream) patch v6-0001
- v6-0002-Support-load-balancing-in-libpq.patch (application/octet-stream) patch v6-0002
Attached an updated patch which should address your feedback and
I updated the commit message.
> I wonder whether making the parameter a boolean will paint us into a
> corner
I made it a string option, just like target_session_attrs. I'm pretty sure a
round-robin load balancing policy could be implemented in the future
given certain constraints, like connections being made within the same
process. I adjusted the docs accordingly.
> > +typedef struct
> > +{
> > + int family;
> > + SockAddr addr;
> > +} AddrInfo;
>
> That last line looks weirdly indented compared to SockAddr; in the
> struct above.
Yes I agree, but for some reason pgindent really badly wants it formatted
that way. I now undid the changes made by pgindent manually.
> I wonder whether this needs to be documented if it is mostly a
> development/testing parameter?
I also wasn't sure whether it should be documented or not. I'm fine with
either, I'll leave it in for now and let a committer decide if it's wanted or not.
> A bit unclear why you put the variables at this point in the list, but
> the list doesn't seem to be ordered strictly anyway; still, maybe they
> would fit best at the bottom below target_session_attrs?
Good point, I added them after target_session_attrs now and also moved
docs/parsing accordingly. This makes conceptually to me as well, since
target_session_attrs and load_balance_hosts have some interesting
sense contextually too.
P.S. I also attached the same pgindent run patch that I added in
https://www.postgresql.org/message-id/flat/AM5PR83MB0178D3B31CA1B6EC4A8ECC42F7529@AM5PR83MB0178.EURPRD83.prod.outlook.com
Commits
-
Fix pointer cast for seed calculation on 32-bit systems
- 2fe7a6df94e6 16.0 landed
-
Copy and store addrinfo in libpq-owned private memory
- 44d85ba5a336 16.0 landed
-
libpq: Use modern socket flags, if available.
- bfc9497ece01 16.0 cited