Re: [WIP] In-place upgrade - Mailing list pgsql-hackers

From Robert Haas
Subject Re: [WIP] In-place upgrade
Date
Msg-id 603c8f070811060639n15bbdb79p8ffdc6b84aacf32e@mail.gmail.com
Whole thread Raw
In response to Re: [WIP] In-place upgrade  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [WIP] In-place upgrade  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
> That's all fine and dandy, except that it presumes that you can perform
> SELECT/UPDATE/DELETE on V3 tuple versions; you can't just pretend that
> A-E aren't there until they get converted.  Which is exactly the
> overhead we were looking to avoid.

I don't understand this comment at all.  Unless you have some sort of
magical wand in your back pocket that will instantaneously transform
the entire database, there is going to be a period of time when you
have to cope with both V3 and V4 pages.  ISTM that what we should be
talking about here is:

(1) How are we going to do that in a way that imposes near-zero
overhead once the entire database has been converted?
(2) How are we going to do that in a way that is minimally invasive to the code?
(3) Can we accomplish (1) and (2) while still retaining somewhat
reasonable performance for V3 pages?

Zdenek's initial proposal did this by replacing all of the tuple
header macros with functions that were conditionalized on page
version.  I think we agree that's not going to work.  That doesn't
mean that there is no approach that can work, and we were discussing
possible ways to make it work upthread until the thread got hijacked
to discuss the right way of handling page expansion.  Now that it
seems we agree that a transaction can be used to move tuples onto new
pages, I think we'd be well served to stop talking about page
expansion and get back to the original topic: where and how to insert
the hooks for V3 tuple handling.

> (Another small issue is exactly when you convert the index entries,
> should you be faced with an upgrade that requires that.)

Zdenek set out his thoughts on this point upthread, no need to rehash here.

...Robert


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: The suppress_redundant_updates_trigger() works incorrectly
Next
From: "Jonah H. Harris"
Date:
Subject: Re: [PATCH] EnableDisableTrigger Cleanup & Questions