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
In response to
pgsql-hackers by date
|Next:||From: Andrew Dunstan||Date: 2008-09-24 21:57:41|
|Subject: Re: Upgrading pgFoundry (Was: Where to Host Project)|
|Previous:||From: Josh Berkus||Date: 2008-09-24 21:26:44|
|Subject: Re: Proposal of SE-PostgreSQL patches (for CommitFest:Sep)|
pgsql-patches by date
|Next:||From: Simon Riggs||Date: 2008-09-25 16:27:21|
|Subject: Re: get_relation_stats_hook()|
|Previous:||From: Simon Riggs||Date: 2008-09-24 16:23:38|
|Subject: Re: hash index improving v3|