Re: [HACKERS] Subtransaction commits and Hot Standby - Mailing list pgsql-patches

From Simon Riggs
Subject Re: [HACKERS] Subtransaction commits and Hot Standby
Date
Msg-id 1222292659.4445.650.camel@ebony.2ndQuadrant
Whole thread Raw
In response to Re: [HACKERS] Subtransaction commits and Hot Standby  (Simon Riggs <simon@2ndQuadrant.com>)
List pgsql-patches
On Wed, 2008-09-24 at 13:48 +0100, Simon Riggs wrote:
> On Tue, 2008-09-23 at 22:47 +0100, Simon Riggs wrote:
>
> > I've tested this some more and am much happier with it now.
>
> The concept is fine, but I've found a coding bug in further testing.
> Please wait now for new version before review.

OK, spent long time testing various batching scenarios for this using a
custom test harness to simulate various spreads of xids in transaction
trees. All looks fine now.

The main work is done in new clog.c functions:
TransactionIdSetTreeStatus() which sets whole tree atomically by calling
TransactionIdSetPageStatus(), which in turn calls
TransactionIdSetStatusBit() for each xid status change.

TransactionIdSetPageStatus() performs locking and handles write_ok
problem, as did code it replaces. TransactionIdSetPageStatus() is called
theoretical minimum number of times for any transaction tree.

Patch slightly fumbles diff-ing new and replacement code, so there are
two chunks that appear to show I'm removing locking. I'm not!!

Everything else is just API changes.

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

Attachment

pgsql-patches by date:

Previous
From: Simon Riggs
Date:
Subject: Re: hash index improving v3
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] Infrastructure changes for recovery