Re: Latest version of Hot Standby patch

From: Simon Riggs <simon(at)2ndQuadrant(dot)com>
To: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Latest version of Hot Standby patch
Date: 2009-01-08 09:20:55
Message-ID: 1231406455.18005.123.camel@ebony.2ndQuadrant
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


On Wed, 2009-01-07 at 22:08 +0000, Simon Riggs wrote:
> On Wed, 2009-01-07 at 23:56 +0200, Heikki Linnakangas wrote:
> > Simon Riggs wrote:
> > > On Wed, 2009-01-07 at 15:43 +0200, Heikki Linnakangas wrote:
> > >> When there's no xids in the procarray, couldn't we just use
> > >> latestCompletedXid instead of calling ReadNewTransactionId()?
> > >
> > > latestCompletedXid is protected by ProcArrayLock so not much difference
> > > between those two.
> >
> > The big difference is that we're already holding ProcArrayLock. You
> > could read the value of latestCompletedXid before releasing
> > ProcArrayLock, and wouldn't need the retry logic.
>
> Sounds good to me then. Will rework.

Applies brakes suddenly.

I realise this is subtle trap I almost fell into the first time I coded
it. The function is retrieving GetRunningTransactionData() and so we are
interested in the latest running xid, not the latest completed xid. The
latter is sufficient for snapshots, but the information derived by
GetRunningTransactionData() is used to maintain UnobservedXids.

Now we might have a discussion about whether we *need* that information,
but the code is correct as it currently stands.

--
Simon Riggs www.2ndQuadrant.com
PostgreSQL Training, Services and Support

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2009-01-08 09:38:26 Python 3.0 does not work with PL/Python
Previous Message Heikki Linnakangas 2009-01-08 07:38:00 Re: text search patch status update?