What constrains the range of SERIALIZABLEXACT xmin values? - Mailing list pgsql-hackers

From Thomas Munro
Subject What constrains the range of SERIALIZABLEXACT xmin values?
Date
Msg-id CA+hUKGKgvDq57AqpX-2HjauBSExtTKqkdiOzqWDkN6KR4o96ZA@mail.gmail.com
Whole thread Raw
Responses Re: What constrains the range of SERIALIZABLEXACT xmin values?  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
Hi,

Every SERIALIZABLEXACT holds an xmin that comes from a Snapshot, and
SxactGlobalXmin holds the oldest of them.  But a SERIALIZABLEXACT can
live longer than a transaction and snapshot, so now I'm wondering if
it's possible to reach a state where there exist SERIALIZABLEXACT
objects with a range of xmin values that break the modular
TransactionIdPrecedes()-based logic in SetNewSxactGlobalXmin(), which
relies on the set of values not spanning more than half of the 2^32
clock.  If that state is reachable, then I think the effect would be
to call ClearOldPredicateLocks() at the wrong times (too much and
we'll waste CPU in that function, not enough and we'll "leak"
predicate locks by not cleaning them up as eagerly as we intended).



pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: MSYS2 support
Next
From: Mark Dilger
Date:
Subject: Re: Make autovacuum sort tables in descending order of xid_age