[moving this branch of discussion to pgsql-jdbc] On Tue, Nov 15, 2016 at 10:31 PM, Mithun Cy <mithun...@enterprisedb.com> wrote:
> JDBC is sending "show transaction_read_only" to find whether it > is master or not. If true, that's insane. That can be different on each connection to the cluster and can change tens of thousands of times per second on any connection! I know of one large shop that sets default_transaction_read_only = true because 99% of their transactions are read only and they use serializable transactions -- which run faster and with less contention when transactions which don't need to write are flagged as read only. It seems safer to them to only turn off the read only property for transactions which might need to write. > Victor's patch also started with it, but later it was transformed into > pg_is_in_recovery > by him as it appeared more appropriate to identify the master / slave. I don't know whether that is ideal, but it is sure a lot better than something which can change with every transaction -- or even within a transaction (in one direction). -- Kevin Grittner EDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers