Re: Proposal: Implement failover on libpq connect level.
Kevin Grittner <kgrittn@ymail.com>
From: Kevin Grittner <kgrittn@ymail.com>
To: Bruce Momjian <bruce@momjian.us>, Robert Haas <robertmhaas@gmail.com>
Cc: "Shulgin, Oleksandr" <oleksandr.shulgin@zalando.de>,
Andres Freund <andres@anarazel.de>,
Alvaro Herrera <alvherre@2ndquadrant.com>,
Tom Lane <tgl@sss.pgh.pa.us>, Albe Laurenz <laurenz.albe@wien.gv.at>,
Victor Wagner <vitus@wagner.pp.ru>,
"pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2015-09-08T13:29:12Z
Lists: pgsql-hackers
Bruce Momjian <bruce@momjian.us> wrote: > It is annoying for less capable database to say they have high > availability when that just involves having a client library that > can connect to multiple hosts. This sounds like the "But all the *other* kids are doing it!" argument, which comes up often. We generally resist doing something solely on that basis, so the rest of the email is really what matters, I think, much as this does gall. > Yes, we can do this in DNS, but that is all happening at a > different layer. More than that, there are technical reasons that can be a bad solution. As just one example, the servers might well be in different domains. > Now, the counter-argument is that this is the wrong layer to do > it, and we will end up adding tons of configurations variables to > libpq to control this. Yeah, we definitely *don't* want to implement some sort of failover manager in every connector -- that way madness lies. > We are clearly not adding this just because JDBC has it --- we > are adding it because it allows for more complex server > configurations. I think what we need is a clear description of use cases where we think this is the solution, and some clear boundaries to the scope -- so it is also clear what kinds of problems this is *not* intended to solve. > Could this ability be more powerfully done with DNS or a > connection pooler, yes, but not everyone wants that complexity. > For me, this libpq change has a simple user API with a small > amount of code change that give us a simple solution to a common > problem. I'm not saying we shouldn't have something like this; but we need a clear definition of that common problem we are solving. I don't think I've seen that yet. I've seen various spins on solutions described, from which I can infer various possible problems; but to pick the best version of this as *the* solution I think we need a clear statement of the problem itself. -- Kevin Grittner EDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
libpq: Add target_session_attrs parameter.
- 721f7bd3cbcc 10.0 landed
-
Remove superuser checks in pgstattuple
- fd321a1dfd64 10.0 cited
-
Fix unwanted flushing of libpq's input buffer when socket EOF is seen.
- c405918858c0 9.6.0 cited