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


Reply via email to