Re: Add new protocol message to change GUCs for usage with future protocol-only GUCs - Mailing list pgsql-hackers
From | Robert Haas |
---|---|
Subject | Re: Add new protocol message to change GUCs for usage with future protocol-only GUCs |
Date | |
Msg-id | CA+Tgmoa=gQ5LcRSz9A9EMUVm5kuuL=Q-umeKe+y9b4D9CY9PqQ@mail.gmail.com Whole thread Raw |
In response to | Re: Add new protocol message to change GUCs for usage with future protocol-only GUCs (Heikki Linnakangas <hlinnaka@iki.fi>) |
Responses |
Re: Add new protocol message to change GUCs for usage with future protocol-only GUCs
|
List | pgsql-hackers |
On Thu, Aug 15, 2024 at 6:03 PM Heikki Linnakangas <hlinnaka@iki.fi> wrote: > On the default for "max_protocol_version": I'm pretty disappointed if we > cannot change the default to "latest". I realize that that won't work > with poolers that don't implement NegotiateProtocolVersion. But I'm > afraid if we make the new protocol version opt-in, no one will use it, > and the poolers etc still won't bother to implement > NegotiateProtocolVersion for years to come, if ever. We can revisit this > decision later in the release cycle though. But I'd suggest changing the > default to "latest" for now, so that more hackers working with > connection poolers will notice, and we get more testing of the new > protocol and the negotiation. In this regard, I think your proposed protocol change (bumping the cancel-key length) is different from all of the other protocol enhancement proposals that I can think of. Most people seem to be interested in adding an optional feature that some clients might want and other clients might not care about. Peter Eisentraut's transparent column encryption stuff is an example of that. What Jelte wants to do here is too, really, because while these facilities seem like they could be generally useful for poolers -- at least if we could agree on what to do and work out all the problems -- and could potentially be used by applications as well, there would no requirement that any particular application use any of the new facilities and many of them wouldn't. So in that kind of world, it makes more sense to me to default to 3.0 unless the user indicates a desire to use a newer feature. That way, we minimize breakage at very little cost. Desire to use the new features can be expected to spur some development in ecosystem projects, and until that work gets done, many setups are unaffected. But the cancel key is a whole different kind of thing. I don't expect people to be motivated to add support for newer protocol versions just to get a longer cancel key. If we want people to adopt longer cancel keys, we need to change the client default and accept that there's going to be a bunch of breakage until everybody fixes their code. But is that actually a good idea? I have some misgivings about that. When somebody's stuff stops working because of some problem that boils down to "we made the cancel key longer," I think we're going to have some pretty irate users. I believe everybody would agree in a vacuum that making cancel keys longer is probably a good idea, but it seems like a relatively minor benefit for the amount of inconvenience we're going to be imposing on everyone. On the other hand, the logical conclusion of that argument is that we should never do it, which I don't really believe either. I'm actually kind of surprised that nobody else (that I've seen, anyway) has expressed concern about the fact that that proposal involves a protocol version bump. Have people not noticed? Does nobody care? To me, that thread reads like "I'm going to make a fire in the fireplace" but then there's a footnote that reads "by setting off a nuclear bomb" but we're only talking about how warm and cozy the fire will be. :-) I'm sure you're going to say "it's worth it" -- you wouldn't have written the patch otherwise -- but I wonder if it's going to feel worth it to everybody who has to deal with the downstream effects. -- Robert Haas EDB: http://www.enterprisedb.com
pgsql-hackers by date: