pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Zdenek Kotala <Zdenek.Kotala@Sun.COM>
To: PostgreSQL-development <pgsql-hackers@postgresql.org>
Subject: Prototype: In-place upgrade
Date: Sun, 31 Aug 2008 23:44:02 +0200
Message-ID: <48BB10A2.60503@sun.com> (raw)

Attached patch is prototype of in-place upgrade as was presented on PGCon this year.

Main idea is to learn postgres to handle different version of page and tuple 
structures.

1) page - Patch contains new page API and all code access page through this API. 
Functions check page version and return correct data to caller. It is mostly 
complete now. Only ItemId flags need finish.

2) tuple - HeapTuple structure has been extended with t_ver attribute which 
contains page layout version and direct access to HeapTupleHeader is forbidden. 
It is possible now only through HeapTuple* functions (see htup.c). 
(HeapTupleHeader access still stays in a several functions like heap_form_tuple).

This patch version still does not allow to read old database, but it shows how 
it should work. Main disadvantage of this approach is performance penalty.

Please, let me know your opinion about this approach.

Future work:
1) learn WAL to process different tuple structure version
2) tuple conversion to new version and put it into executor (ExecStoreTuple)
3) multiversion MaxItemSize constant

		thanks for your comments Zdenek


-- 
Zdenek Kotala              Sun Microsystems
Prague, Czech Republic     http://sun.com/postgresql

Attachments:

  upgrade.patch.gz (application/x-gzip, 58.5K) download

view thread (3+ messages)  latest in thread

Message-ID: <48BB10A2.60503@sun.com>
Permalink:  ../48BB10A2.60503@sun.com/
Also on:    postgresql.org/message-id/48BB10A2.60503@sun.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: Zdenek.Kotala@Sun.COM
  Subject: Re: Prototype: In-place upgrade
  In-Reply-To: <48BB10A2.60503@sun.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox