Re: advancing snapshot's xmin
Heikki Linnakangas <heikki@enterprisedb.com>
From: "Heikki Linnakangas" <heikki@enterprisedb.com>
To: "Neil Conway" <neilc@samurai.com>
Cc: "Alvaro Herrera" <alvherre@commandprompt.com>, "Pg Hackers" <pgsql-hackers@postgresql.org>
Date: 2008-03-26T00:32:25Z
Lists: pgsql-hackers
Neil Conway wrote: > On Tue, 2008-03-25 at 17:26 -0300, Alvaro Herrera wrote: >> There is one hole here: contention on ProcArrayLock. Basically, for >> simple transactions we will need to update MyProc after every command. > > If we're just updating MyProc->xmin, we only need to acquire > ProcArrayLock in shared mode, right? In fact, do you need a lock at all? We already assume that reading/writing a TransactionId is atomic in many places. We acquire ProcArrayLock at the end of transaction when we clear MyProc->xid, to ensure that we don't exit the set of running transactions while someone else is taking a snapshot, but AFAICS that's not necessary when we just advance MyProc->xmin. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com