Re: Transactions involving multiple postgres foreign servers

From: Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
To: Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com>
Cc: vinayak <Pokale_Vinayak_q3(at)lab(dot)ntt(dot)co(dot)jp>, Robert Haas <robertmhaas(at)gmail(dot)com>, Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>, Vinayak Pokale <vinpokale(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Konstantin Knizhnik <k(dot)knizhnik(at)postgrespro(dot)ru>
Subject: Re: Transactions involving multiple postgres foreign servers
Date: 2017-01-16 08:35:18
Views: Raw Message | Whole Thread | Download mbox
Lists: pgsql-hackers

On Fri, Jan 13, 2017 at 3:48 PM, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com> wrote:
> On Fri, Jan 13, 2017 at 3:20 PM, Ashutosh Bapat
> <ashutosh(dot)bapat(at)enterprisedb(dot)com> wrote:
>>> Long time passed since original patch proposed by Ashutosh, so I
>>> explain again about current design and functionality of this feature.
>>> If you have any question, please feel free to ask.
>> Thanks for the summary.
>>> Parameters
>>> ==========
>> [ snip ]
>>> Cluster-wide atomic commit
>>> =======================
>>> Since the distributed transaction commit on foreign servers are
>>> executed independently, the transaction that modified data on the
>>> multiple foreign servers is not ensured that transaction did either
>>> all of them commit or all of them rollback. The patch adds the
>>> functionality that guarantees distributed transaction did either
>>> commit or rollback on all foreign servers. IOW the goal of this patch
>>> is achieving the cluster-wide atomic commit across foreign server that
>>> is capable two phase commit protocol.
>> In [1], I proposed that we solve the problem of supporting PREPARED
>> transactions involving foreign servers and in subsequent mail Vinayak
>> agreed to that. But this goal has wider scope than that proposal. I am
>> fine widening the scope, but then it would again lead to the same
>> discussion we had about the big picture. May be you want to share
>> design (or point out the parts of this design that will help) for
>> solving smaller problem and tone down the patch for the same.
> Sorry for confuse you. I'm still focusing on solving only that
> problem. What I was trying to say is that I think that supporting
> PREPARED transaction involving foreign server is the means, not the
> end. So once we supports PREPARED transaction involving foreign
> servers we can achieve cluster-wide atomic commit in a sense.

Attached updated patches. I fixed some bugs and add 003 patch that
adds TAP test for foreign transaction.
003 patch depends 000 and 001 patch.

Please give me feedback.


Masahiko Sawada
NTT Open Source Software Center

Attachment Content-Type Size
000_support_fdw_xact_v4.patch binary/octet-stream 113.4 KB
001_pgfdw_support_atomic_commit_v4.patch binary/octet-stream 41.1 KB
002_pg_fdw_resolver_contrib_v4.patch binary/octet-stream 11.1 KB
003_regression_test_for_fdw_xact_v4.patch binary/octet-stream 6.4 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Masahiko Sawada 2017-01-16 08:42:07 Typo in condition_variable.c
Previous Message Andres Freund 2017-01-16 08:33:16 Re: Implement targetlist SRFs using ROWS FROM() (was Changed SRF in targetlist handling)