From: | Satyanarayana Narlapuram <Satyanarayana(dot)Narlapuram(at)microsoft(dot)com> |
---|---|
To: | Robert Haas <robertmhaas(at)gmail(dot)com>, Craig Ringer <craig(at)2ndquadrant(dot)com> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | RE: [HACKERS] Client Connection redirection support for PostgreSQL |
Date: | 2018-02-12 18:56:45 |
Message-ID: | MWHPR21MB082914C5B703A2C54465753B91F70@MWHPR21MB0829.namprd21.prod.outlook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I simplified the patch and for now just allowed one server. Please find the attached patches, and the commit message.
Thanks,
Satya
-----Original Message-----
From: Robert Haas <robertmhaas(at)gmail(dot)com>
Sent: Monday, November 6, 2017 5:56 AM
To: Craig Ringer <craig(at)2ndquadrant(dot)com>
Cc: Satyanarayana Narlapuram <Satyanarayana(dot)Narlapuram(at)microsoft(dot)com>; PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [HACKERS] Client Connection redirection support for PostgreSQL
On Thu, Nov 2, 2017 at 4:33 PM, Craig Ringer <craig(at)2ndquadrant(dot)com> wrote:
>> Add the ability to the PostgreSQL server instance to route the
>> traffic to a different server instance based on the rules defined in
>> server’s pg_bha.conf configuration file. At a high level this enables
>> offloading the user requests to a different server instance based on
>> the rules defined in the pg_hba.conf configuration file.
>
> pg_hba.conf is "host based access [control]" . I'm not sure it's
> really the right place.
Well, we could invent someplace else, but I'm not sure I quite see the point (full disclosure: I suggested the idea of doing this via pg_hba.conf in an off-list discussion).
I do think the functionality is useful, for the same reasons that HTTP redirects are useful. For example, let's say you have all of your databases for various clients on a single instance. Then, one client starts using a lot more resources, so you want to move that client to a separate instance on another VM. You can set up logical replication to replicate all of the data to the new instance, and then add a pg_hba.conf entry to redirect connections to that database to the new master (this would be even smoother if we had multi-master replication in core). So now that client is moved off to another machine in a completely client-transparent way. I think that's pretty cool.
> When this has come up before, one of the issues has been determining
> what exactly should constitute "read only" vs "read write" for the
> purposes of redirecting work.
Yes, that needs some thought.
> Backends used just for a redirect would be pretty expensive though.
Not as expensive as proxying the whole connection, as pgpool and other systems do today. I think the in-core use of this redirect functionality is useful, but I think the real win would be optionally using it in pgpool and pgbouncer.
--
Robert Haas
EnterpriseDB: https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.enterprisedb.com&data=02%7C01%7CSatyanarayana.Narlapuram%40microsoft.com%7Caafef2039b194d9c02c308d5251e12bb%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636455733453945798&sdata=8qystAJQ6UhnB7WRQh5i4nF8cyBUvKc9QIBfy59y%2FX8%3D&reserved=0
The Enterprise PostgreSQL Company
Attachment | Content-Type | Size |
---|---|---|
redirection_be.patch | application/octet-stream | 5.4 KB |
redirection_fe_doc.patch | application/octet-stream | 6.5 KB |
commit_message.txt | text/plain | 2.8 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | David Fetter | 2018-02-12 19:06:16 | Re: Minor version upgrades and extension packaging |
Previous Message | Mat Arye | 2018-02-12 18:04:40 | Re: Minor version upgrades and extension packaging |