Re: Subtransaction commits and Hot Standby - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: Subtransaction commits and Hot Standby
Date
Msg-id 20080916141148.GA9229@alvh.no-ip.org
Whole thread Raw
In response to Re: Subtransaction commits and Hot Standby  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Responses Re: Subtransaction commits and Hot Standby  (Simon Riggs <simon@2ndQuadrant.com>)
Re: Subtransaction commits and Hot Standby  (Simon Riggs <simon@2ndQuadrant.com>)
Re: Subtransaction commits and Hot Standby  (Simon Riggs <simon@2ndQuadrant.com>)
List pgsql-hackers
Heikki Linnakangas wrote:
> Simon Riggs wrote:
>> Subtransactions cause a couple of problems for Hot Standby:
>
> Do we need to treat subtransactions any differently from normal  
> transactions? Just treat all subtransactions as top-level transactions  
> until commit, and mark them all as committed when you see the commit  
> record for the top-level transaction.

This could lead to inconsistent results -- some of the subtransactions
could be marked as committed while others are still in progress.  Unless
we want to be able to atomically mark them all as committed, but I don't
think that's really an option because it could mean holding the clog
lock for a long time, possibly involving I/O of clog pages.

>> Right now we lock and unlock the clog for each committed subtransaction
>> at commit time, which is wasteful. A better scheme:
>>   pre-scan the list of xids to derive list of pages
>>   if we have just a single page to update
>>   {
>>         update all entries on page in one action
>>   }
>>   else
>>   {
>>         loop thru xids marking them all as subcommitted
>>     mark top level transaction committed
>>         loop thus xids again marking them all as committed
>>   }

> Hmm, I don't see anything immediately wrong with that.

Neither do I.

I wonder if the improved clog API required to mark multiple transactions
as committed at once would be also useful to TransactionIdCommitTree
which is used in regular transaction commit.

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: proposal - GROUPING SETS
Next
From: "Pavel Stehule"
Date:
Subject: Re: proposal - GROUPING SETS