Stephen Frost <sfr...@snowman.net> writes: > I've long felt that the appropriate approach to addressing that is to > improve on VACUUM and find a way to do better than just having the > conditional of 'xmax < global min' drive if we can mark a given tuple as > no longer visible to anyone.
Yeah, I think this scenario of a few transactions with old snapshots and the rest with very new ones could be improved greatly if we exposed more info about backends' snapshot state than just "oldest xmin". But that might be expensive to do. I remember that Heikki was fooling with a patch that reduced snapshots to LSNs. If we got that done, it'd be practical to expose complete info about backends' snapshot state in a lot of cases (i.e., anytime you had less than N live snapshots). Of course, there's still the question of how VACUUM could cheaply apply such info to decide what could be purged. regards, tom lane