On Tue, Jan 9, 2018 at 11:38 PM, Robert Haas <robertmh...@gmail.com> wrote: > On Wed, Dec 27, 2017 at 9:40 PM, Tsunakawa, Takayuki > <tsunakawa.ta...@jp.fujitsu.com> wrote: >> (1) >> Why don't you use the existing global variable MyXactFlags instead of the >> new TransactionDidWrite? Or, how about using XactLastRecEnd != 0 to >> determine the transaction did any writes? When the transaction only >> modified temporary tables on the local database and some data on one remote >> database, I think 2pc is unnecessary. > > If I understand correctly, XactLastRecEnd can be set by, for example, > a HOT cleanup record, so that doesn't seem like a good thing to use.
Yes, that's right. > Whether we need to use 2PC across remote nodes seems like it shouldn't > depend on whether a local SELECT statement happened to do a HOT > cleanup or not. So I think we need to check if the top transaction is invalid or not as well. Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center