Re: Transactions involving multiple postgres foreign servers, take 2

From: Masahiro Ikeda <ikedamsh(at)oss(dot)nttdata(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Cc: Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Masahiko Sawada <masahiko(dot)sawada(at)2ndquadrant(dot)com>, Tatsuo Ishii <ishii(at)sraoss(dot)co(dot)jp>, Muhammad Usama <m(dot)usama(at)gmail(dot)com>, amul sul <sulamul(at)gmail(dot)com>, Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>, Sawada Masahiko <sawada(dot)mshk(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Ildar Musin <ildar(at)adjust(dot)com>, Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp>, Chris Travers <chris(dot)travers(at)adjust(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, "Tsunakawa, Takayuki" <tsunakawa(dot)takay(at)jp(dot)fujitsu(dot)com>, Bruce Momjian <bruce(at)momjian(dot)us>
Subject: Re: Transactions involving multiple postgres foreign servers, take 2
Date: 2020-06-17 00:01:09
Message-ID: 8ec7da01fb8225ed4212b4da76228bfe@oss.nttdata.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> I've attached the new version patch set. 0006 is a separate patch
> which introduces 'prefer' mode to foreign_twophase_commit.

I hope we can use this feature. Thank you for making patches and
discussions.
I'm currently understanding the logic and found some minor points to be
fixed.

I'm sorry if my understanding is wrong.

* The v22 patches need rebase as they can't apply to the current master.

* FdwXactAtomicCommitParticipants said in
src/backend/access/fdwxact/README
is not implemented. Is FdwXactParticipants right?

* A following comment says that this code is for "One-phase",
but second argument of FdwXactParticipantEndTransaction() describes
this code is not "onephase".

AtEOXact_FdwXact() in fdwxact.c
/* One-phase rollback foreign transaction */
FdwXactParticipantEndTransaction(fdw_part, false, false);

static void
FdwXactParticipantEndTransaction(FdwXactParticipant *fdw_part, bool
onephase,
bool for_commit)

* "two_phase_commit" option is mentioned in postgres-fdw.sgml,
but I can't find related code.

* resolver.c comments have the sentence
containing two blanks.(Emergency Termination)

* There are some inconsistency with PostgreSQL wiki.
https://wiki.postgresql.org/wiki/Atomic_Commit_of_Distributed_Transactions

I understand it's difficult to keep consistency, I think it's ok to
fix later
when these patches almost be able to be committed.

- I can't find "two_phase_commit" option in the source code.
But 2PC is work if the remote server's "max_prepared_transactions"
is set
to non zero value. It is correct work, isn't it?

- some parameters are renamed or added in latest patches.
max_prepared_foreign_transaction, max_prepared_transactions and so
on.

- typo: froeign_transaction_resolver_timeout

Regards,

--
Masahiro Ikeda
NTT DATA CORPORATION

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2020-06-17 00:09:26 Re: Add A Glossary
Previous Message Tom Lane 2020-06-16 23:55:44 Re: language cleanups in code and docs