Re: collect_corrupt_items_vacuum.patch - Mailing list pgsql-hackers

From Tom Lane
Subject Re: collect_corrupt_items_vacuum.patch
Date
Msg-id 3107109.1658958956@sss.pgh.pa.us
Whole thread Raw
In response to Re: collect_corrupt_items_vacuum.patch  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: collect_corrupt_items_vacuum.patch
List pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> In reality, the oldest all-visible XID cannot move backward, but
> ComputeXidHorizons() lets it move backward, because it's intended for
> use by a caller who wants to mark pages all-visible, and it's only
> concerned with making sure that the value is old enough to be safe.

Right.

> And that's a problem for the way that pg_visibility is (mis-)using it.

> To say that another way, ComputeXidHorizons() is perfectly fine with
> returning a value that is older than the true answer, as long as it
> never returns a value that is newer than the new answer. pg_visibility
> wants the opposite. Here, a value that is newer than the true value
> can't do worse than hide corruption, which is sort of OK, but a value
> that's older than the true value can report corruption where none
> exists, which is very bad.

Maybe we need a different function for pg_visibility to call?
If we want ComputeXidHorizons to serve both these purposes, then it
has to always deliver exactly the right answer, which seems like
a definition that will be hard and expensive to achieve.

            regards, tom lane



pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: collect_corrupt_items_vacuum.patch
Next
From: Jacob Champion
Date:
Subject: Re: [Patch] ALTER SYSTEM READ ONLY