On Tue, Nov 13, 2018 at 7:26 AM Laurenz Albe <laurenz.a...@cybertec.at>
wrote:

> Tom Lane wrote:
> > Laurenz Albe <laurenz.a...@cybertec.at> writes:
> > > Haribabu Kommi wrote:
> > > > Added comments along the lines that you mentioned. And also try
> > > > to update some more comments.
> > > Looks ok to me, I'll mark it as "ready for committer".
> >
> > I don't like this patch at all: the business with keeping two connections
> > open seems impossibly fragile and full of race conditions.  (For
> instance,
> > by the time you return the read-only session to the application, it might
> > not be read-only any more.  I also wonder what inquiry functions like
> > PQsocket ought to return while in this state.)  I think the feature
> > definition needs to be re-thought to make that unnecessary.
>
> As it is now, the patch doesn't keep two connections open.  It remembers
> the index of the host of the first successful writable connection, but
> closes the connection, and opens another one to that host if no read-only
> host can be found.
>
> If the read-only connection turns writable after it has been tested,
> but before it is returned, that can hardly be avoided.
> I don't think that's so bad - after all, you asked for a read-only
> connection *if possible*.
> If you demand that the server be not promoted until the connection has
> been returned to the client, you'd somehow have to block the server
> from being promoted, right?
>

I also have the same opinion of Laurenz, that this option is letting the
application to connect to read-only server if possible, otherwise let it
connect to read-write server.

I feel that any of the state changes during the connection and after
connection,
needs not to be reflected on the existing connection for these type of
connections.


> > Also, we really need to consider the interaction between this and the
> > feature(s) being discussed in the thread at
> >
> >
> https://www.postgresql.org/message-id/flat/1700970.cRWpxnom9y%40hammer.magicstack.net
>
> That's a good point.
>

Thanks for the link. Based on the conclusion on the other thread of
GUC_REPORT,
this patch also can use that logic, but that is limited only till the
connection establishment
for these connection types.

Regards,
Haribabu Kommi
Fujitsu Australia

Reply via email to