Tom Lane wrote: > Bruce Momjian <[EMAIL PROTECTED]> writes: > > I don't understand why a single counter is needed for phantom xids. We > > keep the cmin/cmax on the tuple already, and our own backend can look up > > the xmin/xmax that goes with the phantom. > > Oh, so you're thinking of an internal table that provides a mapping back > to the replaced xmin? Ugh. Perhaps it could be made to work, but it's > a lot of mechanism, and it will slow down visibility checks (since > AFAICS you'd have to check every subxid against the phantoms table).
My idea was to have a tuple bit indicating the xid is a phantom. > If we go with a global CID counter then we don't have to add that step. Seems Alvaro is already using a global counter. > A global CID counter would also simplify other visibility tests. Alvaro > hasn't said anything about how he's doing visibility checks across > different subxacts of the same main xact, but without global CID there > would need to be some pretty ugly checks to determine whether a subxact > happened before or after the CID cutoff your outer xact is interested > in. If a global counter will reduce the number of phantom checks, then good. However, I assume Alvaro has to access the creation/expire xid to determine if the subtransaction committed, so I didn't think a global counter would help reduce the number of lookups. -- Bruce Momjian | http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend