PgBouncer for example assumes that the database names are unique across the database clusters it is serving. Our front-end Gateways can serve tens of thousands of Postgres servers spanning multiple customers, and organizations, and enforcing the database names being unique is not possible for the users of the service.
> For the original idea in this thread, using something like dbname@server > seems a more logical choice than username@server. We considered this option but connecting to the database from the GUI tools is not very intuitive / possible. Also /c switch in Psql requires including full cluster_name every time user connect to a different database. Thanks, Satya From: Magnus Hagander [mailto:mag...@hagander.net] Sent: Thursday, June 15, 2017 9:24 AM To: Tom Lane <t...@sss.pgh.pa.us> Cc: Alvaro Herrera <alvhe...@2ndquadrant.com>; Satyanarayana Narlapuram <satyanarayana.narlapu...@microsoft.com>; firstname.lastname@example.org Subject: Re: [HACKERS] Making server name part of the startup message On Thu, Jun 15, 2017 at 5:57 PM, Tom Lane <t...@sss.pgh.pa.us<mailto:t...@sss.pgh.pa.us>> wrote: Alvaro Herrera <alvhe...@2ndquadrant.com<mailto:alvhe...@2ndquadrant.com>> writes: > Tom Lane wrote: >> This makes no sense at all. The client is telling the server what the >> server's name is? > I think for instance you could have one pgbouncer instance (or whatever > pooler) pointing to several different servers. So the client connects > to the pooler and indicates which of the servers to connect to. I should think that in such cases, the end client is exactly not what you want to be choosing which server it gets redirected to. You'd be wanting to base that on policies defined at the pooler. There are already plenty of client-supplied attributes you could use as inputs for such policies (user name and application name, for instance). Why do we need to incur a protocol break to add another one? The normal one to use for pgbonucer today is, well, "database name". You can then have pgbouncer map different databases to different backend servers. It's fairly common in my experience to have things like "dbname" and "dbname-ro" (for example) as different database names with one mapping to the master and one mapping to a load-balanced set of standbys, and things like that. ISTM that using the database name is a good choice for that. For the original idea in this thread, using something like dbname@server seems a more logical choice than username@server. TBH, so maybe I'm misunderstanding the original issue? -- Magnus Hagander Me: https://www.hagander.net/<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.hagander.net%2F&data=02%7C01%7CSatyanarayana.Narlapuram%40microsoft.com%7Cf43f90262f6d40ee419b08d4b40ae033%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636331406193392642&sdata=eA8FqyXqqKKc7xTjciwjp4TWY8LqxJIJihD2t3hGO9M%3D&reserved=0> Work: https://www.redpill-linpro.com/<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.redpill-linpro.com%2F&data=02%7C01%7CSatyanarayana.Narlapuram%40microsoft.com%7Cf43f90262f6d40ee419b08d4b40ae033%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636331406193392642&sdata=UwV7vawHILPH%2FbNCSonDx6vhIkYc8jX3Z6t%2BhuiEpFw%3D&reserved=0>