Re: Hot Standby on git

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: Hot Standby on git
Date: 2009-10-01 14:39:27
Message-ID: 1254407967.17864.229.camel@ebony.2ndQuadrant
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


On Thu, 2009-10-01 at 14:29 +0300, Heikki Linnakangas wrote:
> + /*
> + * If our initial RunningXactData had an overflowed snapshot then we
> + * knew we were missing some subxids from our snapshot. We can use
> + * this data as an initial snapshot, but we cannot yet mark it valid.
> + * We know that the missing subxids are equal to or earlier than
> + * LatestRunningXid. After we initialise we continue to apply changes
> + * during recovery, so once the oldestRunningXid is later than the
> + * initLatestRunningXid we can now prove that we no longer have
> + * missing information and can mark the snapshot as valid.
> + */
> + if (initRunningXactData && !recoverySnapshotValid)
> + {
> + if (TransactionIdPrecedes(initLatestRunningXid,
> xlrec->oldestRunningXid)
> + {
> + recoverySnapshotValid = true;
> + elog(trace_recovery(DEBUG2),
> + "running xact data now proven complete");
> + elog(trace_recovery(DEBUG2),
> + "recovery snapshots are now enabled");
> + }
> + return;
> + }
> +
>
> When GetRunningXactData() calculates latestRunningXid in the master,
> which is stored in initLatestRunningXid in the standby, it only looks at
> xids and subxids present in the procarray. It doesn't take into account
> overflowed subxids. I think we could declare a recovery snapshot "proven
> complete" too early because of that.

Hmm, yes. ISTM that I'm still calculating latestRunningXid the old way
while assuming it is calculated the new way. The new way is just to grab
nextXid since we have XidGenLock and do TransactionIdRetreat() on it.

--
Simon Riggs www.2ndQuadrant.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2009-10-01 14:45:30 Re: Hot Standby on git
Previous Message Tom Lane 2009-10-01 14:35:55 Re: Limit allocated memory per session