Re: Is DBLINK transactional

From: Craig Ringer <craig(at)postnewspapers(dot)com(dot)au>
To: Jeff Davis <pgsql(at)j-davis(dot)com>
Cc: Merlin Moncure <mmoncure(at)gmail(dot)com>, elias ghanem <e(dot)ghanem(at)acteos(dot)com>, pgsql-performance(at)postgresql(dot)org
Subject: Re: Is DBLINK transactional
Date: 2010-03-13 12:10:49
Message-ID: 4B9B80C9.4010004@postnewspapers.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On 13/03/2010 5:54 AM, Jeff Davis wrote:
> On Fri, 2010-03-12 at 12:07 -0500, Merlin Moncure wrote:
>> of course. You can always explicitly open a transaction on the remote
>> side over dblink, do work, and commit it at the last possible moment.
>> Your transactions aren't perfectly synchronized...if you crash in the
>> precise moment between committing the remote and the local you can get
>> in trouble. The chances of this are extremely remote though.
>
> If you want a better guarantee than that, consider using 2PC.

Translation in case you don't know: 2PC = two phase commit.

Note that you have to monitor "lost" transactions that were prepared for
commit then abandoned by the controlling app and periodically get rid of
them or you'll start having issues.

> The problem with things that are "extremely remote" possibilities are
> that they tend to be less remote than we expect ;)

... and they know just when they can happen despite all the odds to
maximise the pain and chaos caused.

--
Craig Ringer

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Hannu Krosing 2010-03-13 12:18:55 Re: Is DBLINK transactional
Previous Message Jeff Davis 2010-03-12 21:54:17 Re: Is DBLINK transactional