HOT breaks CLUSTER, a bit - Mailing list pgsql-hackers

From Tom Lane
Subject HOT breaks CLUSTER, a bit
Date
Msg-id 27093.1189552622@sss.pgh.pa.us
Whole thread Raw
Responses Re: HOT breaks CLUSTER, a bit
List pgsql-hackers
While editing Bruce's README.HOT documentation I ran into a problem.
I had idly added the following text after thinking about the different
sorts of snapshots we use:

---
Another unpleasant consequence is that it is no longer very meaningful to
use SnapshotAny in an index scan: if the index was created more recently
than the last vacuum, it's possible that some of the visited tuples do not
match the index entry they are linked to.  This does not seem to be a
fatal objection in practice, since there are few users of SnapshotAny and
they all use seqscans.
---

However, a quick grep to confirm that turned up a problem: CLUSTER uses
SnapshotAny with an indexscan.  This essentially means that CLUSTER
might fetch recently-dead tuples out of order, because it finds them
attached to an index HOT chain that's for a different index key value.

I think that this is not a fatal objection; the out-of-order-ness is
limited and won't be seen at all by transactions with snapshots
postdating the CLUSTER, and CLUSTER can't guarantee the ordering will
stay pristine for long anyway.  But it's a bit worrisome.  Does anyone
see a bigger problem here than I do?

BTW, the proposed HOT code in indexam.c that special-cases SnapshotAny
is a crock ...
        regards, tom lane


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Preparation for PostgreSQL releases 8.2.5, 8.1.10, 8.0.14, 7.4.18, 7.3.20
Next
From: Tom Lane
Date:
Subject: Re: Preparation for PostgreSQL releases 8.2.5, 8.1.10, 8.0.14, 7.4.18, 7.3.20