Re: [RFC] GSoC Work on readonly queries done so far
От | Florian G. Pflug |
---|---|
Тема | Re: [RFC] GSoC Work on readonly queries done so far |
Дата | |
Msg-id | 466874F8.3030107@phlo.org обсуждение исходный текст |
Ответ на | Re: [RFC] GSoC Work on readonly queries done so far (Jeff Davis <pgsql@j-davis.com>) |
Список | 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 по дате отправления: