On Mon, Apr 04, 2005 at 11:32:47PM -0400, Greg Stark wrote:
>
> Alvaro Herrera <alvherre@dcc.uchile.cl> writes:
>
> > Using Phantom Xids
> > ==================
> > The idea here is to use an approach similar to what we use now: mark the
> > tuples with an Xid when it is locked. A phantom Xid is a sort-of Xid,
> > with multiple real Xids associated to it. So we mark the tuple with the
> > regular Xid the first time the share lock is acquired; if a second
> > transaction wants to lock the tuple, it creates a new phantom Xid which
> > "contains" the original Xid in the tuple and its own Xid, insert it into
> > the phantom Xid table, and mark the tuple with that as Xmax.
>
> That sounds like a fancy way to describe "make a linked list of lockers".
Yeah, that's the idea :-) However I was trying to describe how it would
be stored. We have room for only one Xid in the tuple, so in order to
store multiple lockers, we invent the concept of an Xid that's tied to
multiple transactions.
--
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
Maybe there's lots of data loss but the records of data loss are also lost.
(Lincoln Yeoh)