Re: Think I see a btree vacuuming bug - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Think I see a btree vacuuming bug
Date
Msg-id 6984.1030397813@sss.pgh.pa.us
Whole thread Raw
In response to Re: Think I see a btree vacuuming bug  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: Think I see a btree vacuuming bug  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-hackers
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> Could we just block splits of
> pages containing pins?

That's not an improvement IMHO.  The objection to the fix I suggested is
that it makes it harder for VACUUM to make progress in the presence of
contention.  Replacing that with an approach that blocks foreground
processes from making progress is not better.

> If the page splits, how does the index scan
> find the new page to start again?

It moves right until it finds the tuple it was on.  That will either be
in the pinned page, or some page to its right.

> Could the index scan be made to
> handle cases where the index tuple it was stopped on is gone?

Don't see how.  With no equal keys, you could test each tuple you scan
over to see if it's > the expected key; but that would slow things down
tremendously I fear.  In any case it fails completely when there are
equal keys, since you could not tell where in a run of equal keys to
resume scanning.  You really have to find the exact index tuple you
stopped on, AFAICS.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [SQL] Efficient DELETE Strategies
Next
From: Bruce Momjian
Date:
Subject: Re: Think I see a btree vacuuming bug