|From:||"Tsunakawa, Takayuki" <tsunakawa(dot)takay(at)jp(dot)fujitsu(dot)com>|
|To:||Robert Haas <robertmhaas(at)gmail(dot)com>, 'Craig Ringer' <craig(at)2ndquadrant(dot)com>|
|Cc:||Magnus Hagander <magnus(at)hagander(dot)net>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, Elvis Pranskevichus <elprans(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>|
|Subject:||Re: [PATCH v1] Add and report the new "in_hot_standby" GUC pseudo-variable.|
|Views:||Raw Message | Whole Thread | Download mbox | Resend email|
> [mailto:pgsql-hackers-owner(at)postgresql(dot)org] On Behalf Of Craig Ringer
> On 13 April 2017 at 14:59, Tsunakawa, Takayuki
> <tsunakawa(dot)takay(at)jp(dot)fujitsu(dot)com> wrote:
> > 2. Make transaction_read_only GUC_REPORT This is to avoid the added
> > round-trip by SHOW command. It also benefits client apps that want to
> know when the server gets promoted? And this may simplify the libpq code.
> > I don't understand yet why we need to provide this feature for older servers
> by using SHOW. Those who are already using <= 9.6 in production completed
> the system or application, and their business is running. Why would they
> want to just replace libpq and use this feature?
> I think "transaction_read_only" is a bit confusing for something we're
> expecting to change under us.
> To me, a "read only" xact is one created with
> BEGIN READ ONLY TRANSACTION;
> .... which I would not expect to become read/write under me, since I
> explicitly asked for read-only.
> It's more like "session read only" that we're interested in IMO.
I confirmed that the attached patch successfully provides:
* If the server is >= 10, avoid the round-trip for SHOW transaction_read_only.
For this, I added a GUC_REPORT variable session_read_only which indicates the session's default read-only status. The characteristics are:
* It cannot be changed directly by the user (postgresql.conf, SET, etc.)
* Its value is the same as default_transaction_read_only when not in recovery.
* Its value is false during recovery.
Could you include this in PG 10? I think these are necessary as the bottom line to meet the average expectation of users (please don't ask me what's the average; the main reasons are that PostgreSQL provides hot standby, PgJDBC enables connection to the standby (targetServerType=slave), and PostgreSQL emphasizes performance.) Ideally, I wanted to add other features of PgJDBC (e.g. targetServerType=preferSlave), but I thought this is the limit not to endanger the quality of the final release.
|Next Message||Amit Khandekar||2017-05-24 09:17:03||Re: UPDATE of partition key|
|Previous Message||Fabien COELHO||2017-05-24 07:14:14||Re: pgbench more operators & functions|