On 2016/08/26 15:13, Ashutosh Bapat wrote:


On Fri, Aug 26, 2016 at 11:37 AM, Masahiko Sawada <sawada.m...@gmail.com <mailto:sawada.m...@gmail.com>> wrote:

    On Fri, Aug 26, 2016 at 3:03 PM, Ashutosh Bapat
    <ashutosh.ba...@enterprisedb.com
    <mailto:ashutosh.ba...@enterprisedb.com>> wrote:
    >
    >
    > On Fri, Aug 26, 2016 at 11:22 AM, Masahiko Sawada
    <sawada.m...@gmail.com <mailto:sawada.m...@gmail.com>>
    > wrote:
    >>
    >> On Fri, Aug 26, 2016 at 1:32 PM, Vinayak Pokale
    <vinpok...@gmail.com <mailto:vinpok...@gmail.com>>
    >> wrote:
    >> > Hi All,
    >> >
    >> > Ashutosh proposed the feature 2PC for FDW for achieving
    atomic commits
    >> > across multiple foreign servers.
    >> > If a transaction make changes to more than two foreign
    servers the
    >> > current
    >> > implementation in postgres_fdw doesn't make sure that either
    all of them
    >> > commit or all of them rollback their changes.
    >> >
    >> > We (Masahiko Sawada and me) reopen this thread and trying to
    contribute
    >> > in
    >> > it.
    >> >
    >> > 2PC for FDW
    >> > ============
    >> > The patch provides support for atomic commit for transactions
    involving
    >> > foreign servers. when the transaction makes changes to
    foreign servers,
    >> > either all the changes to all the foreign servers commit or
    rollback.
    >> >
    >> > The new patch 2PC for FDW include the following things:
    >> > 1. The patch 0001 introduces a generic feature. All kinds of
    FDW that
    >> > support 2PC such as oracle_fdw, mysql_fdw, postgres_fdw etc.
    can involve
    >> > in
    >> > the transaction.
    >> >
    >> > Currently we can push some conditions down to shard nodes,
    especially in
    >> > 9.6
    >> > the directly modify feature has
    >> > been introduced. But such a transaction modifying data on
    shard node is
    >> > not
    >> > executed surely.
    >> > Using 0002 patch, that modify is executed with 2PC. It means
    that we
    >> > almost
    >> > can provide sharding solution using
    >> > multiple PostgreSQL server (one parent node and several
    shared node).
    >> >
    >> > For multi master, we definitely need transaction manager but
    transaction
    >> > manager probably can use this 2PC for FDW feature to manage
    distributed
    >> > transaction.
    >> >
    >> > 2. 0002 patch makes postgres_fdw possible to use 2PC.
    >> >
    >> > 0002 patch makes postgres_fdw to use below APIs. These APIs
    are generic
    >> > features which can be used by all kinds of FDWs.
    >> >
    >> >     a. Execute PREAPRE TRANSACTION and COMMIT/ABORT PREAPRED
    instead of
    >> > COMMIT/ABORT on foreign server which supports 2PC.
    >> >     b. Manage information of foreign prepared transactions
    resolver
    >> >
    >> > Masahiko Sawada will post the patch.
    >> >
    >> >
    >>
    >
    > Thanks Vinayak and Sawada-san for taking this forward and basing
    your work
    > on my patch.
    >
    >>
    >> Still lot of work to do but attached latest patches.
    >> These are based on the patch Ashutosh posted before, I revised
    it and
    >> divided into two patches.
    >> Compare with original patch, patch of pg_fdw_xact_resolver and
    >> documentation are lacked.
    >
    >
    > I am not able to understand the last statement.

    Sorry to confuse you.

    > Do you mean to say that your patches do not have
    pg_fdw_xact_resolver() and
    > documentation that my patches had?

    Yes.
    I'm confirming them that your patches had.


Thanks for the clarification. I had added pg_fdw_xact_resolver() to resolve any transactions which can not be resolved immediately after they were prepared. There was a comment from Kevin (IIRC) that leaving transactions unresolved on the foreign server keeps the resources locked on those servers. That's not a very good situation. And nobody but the initiating server can resolve those. That functionality is important to make it a complete 2PC solution. So, please consider it to be included in your first set of patches.
The attached patch included pg_fdw_xact_resolver.

Regards,
Vinayak Pokale
NTT Open Source Software Center

Attachment: 0003-pg-fdw-xact-resolver.patch
Description: application/download

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to