Re: [RFC] GSoC Work on readonly queries done so far - Mailing list pgsql-hackers

From Florian G. Pflug
Subject Re: [RFC] GSoC Work on readonly queries done so far
Date
Msg-id 466874F8.3030107@phlo.org
Whole thread Raw
In response to Re: [RFC] GSoC Work on readonly queries done so far  (Jeff Davis <pgsql@j-davis.com>)
List pgsql-hackers
Jeff Davis wrote:
> On Wed, 2007-06-06 at 22:36 +0100, Simon Riggs wrote:
>>>   .) Transactions are assigned a dummy xid ReadOnlyTransactionId, that
>>>      is considered to be "later" than any other xid.
>> So you are bumping FirstNormalTransactionId up by one for this?
>>
>> You're assuming then that we will "freeze" replay while we run a query?
>> Otherwise doing this will mean the snapshot changes as a query executes.
> 
> Is it possible to put a normal xmax for the snapshot?
> 
> It wouldn't be a real transaction on the slave, and also the master will
> use that ID for a real transaction itself. However, I don't see a real
> problem on the slave because it would only be used for the purpose of
> the snapshot we need at that moment.

My plan is the following:
.) Initially, queries and recovery will run interleaved, but not concurrently.   For that, an "empty" snapshot is
sufficient,with   xmin=xid=xmax=ReadOnlyTransactionId.
 
.) Then, I'll work on running them concurrently. The replay process will publish   a "current" snapshot in shared
memory,using "real" xmin and xmax values   it generates by maintaining a list of currently active (as in: running when
the wal was written on the master) transactions. In that case, only xid   is set to ReadOnlyTransactionId.
 

greetings, Florian Pflug



pgsql-hackers by date:

Previous
From: Gregory Stark
Date:
Subject: Re: [COMMITTERS] pgsql: Avoid losing track of data for shared tables in pgstats.
Next
From: "Simon Riggs"
Date:
Subject: Re: [ADMIN] Attempt to re-archive existing WAL logsafterrestoringfrom backup