Skip site navigation (1) Skip section navigation (2)

Re: Is DBLINK transactional

From: Hannu Krosing <hannu(at)2ndquadrant(dot)com>
To: Craig Ringer <craig(at)postnewspapers(dot)com(dot)au>
Cc: Jeff Davis <pgsql(at)j-davis(dot)com>, 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:18:55
Message-ID: 1268482735.3629.6.camel@hvost (view raw, whole thread or download thread mbox)
Lists: pgsql-performance
On Sat, 2010-03-13 at 20:10 +0800, Craig Ringer wrote:
> 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.

And you still have the problem of committing one 2PC transaction and
then crashing before committing the other and then crashing the
transaction monitor before being able to record what crashed :P, though
this possibility is even more remote than just crashing between the 2
original commits (dblink and local).

To get around this fundamental problem, you can actually do async queues
and remember, what got replayed on the remote side, so if you have
crashes on either side, you can simply replay again.

> > 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

Hannu Krosing
PostgreSQL Scalability and Availability 
   Services, Consulting and Training

In response to

pgsql-performance by date

Next:From: fkater@googlemail.comDate: 2010-03-13 21:17:42
Subject: Deleting bytea, autovacuum, and 8.2/8.4 differences
Previous:From: Craig RingerDate: 2010-03-13 12:10:49
Subject: Re: Is DBLINK transactional

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group