Re: VACUUM can finish an interrupted nbtree page split -- is that okay?

Peter Geoghegan <pg@bowt.ie>

From: Peter Geoghegan <pg@bowt.ie>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2019-05-16T20:11:41Z
Lists: pgsql-hackers
On Thu, May 16, 2019 at 1:05 PM Peter Geoghegan <pg@bowt.ie> wrote:
> Actually, now that I look back at how page deletion worked 5+ years
> ago, I realize that I have this slightly wrong: the leaf level check
> is not sufficient to figure out if the parent's right sibling is
> pending deletion (which is represented explicitly as a half-dead
> internal page prior to 9.4). All the same, I'm going to push ahead
> with this patch. Bugfix commit efada2b8e92 was always about a bug in
> 9.4 -- it had nothing to do with 9.3.

I meant bugfix commit 8da31837803 (commit efada2b8e92 was the commit
that had the bug in question).


-- 
Peter Geoghegan



Commits

  1. Remove extra nbtree half-dead internal page check.

  2. Note case where nbtree VACUUM finishes splits.

  3. Fix error when trying to delete page with half-dead left sibling.

  4. Fix race condition in B-tree page deletion.