From:
Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To:
Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc:
Simon Riggs <simon(at)2ndquadrant(dot)com>,
Robert Haas <robertmhaas(at)gmail(dot)com>,
Noah Misch <noah(at)leadboat(dot)com>, Andres Freund <andres(at)anarazel(dot)de>,
Kevin Grittner <kevin(dot)grittner(at)wicourts(dot)gov>,
david <david(at)fetter(dot)org>, aidan <aidan(at)highrise(dot)ca>,
stark <stark(at)mit(dot)edu>,
Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject:
Re: 16-bit page checksums for 9.2
Date:
2012-02-29 19:29:26
Message-ID:
4F4E7C96.3070707@enterprisedb.com (view raw or flat )
Thread:
2012-01-04 13:35:19 from "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov>
2012-01-05 15:46:22 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-01-06 18:26:14 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-01-06 19:35:01 from Andres Freund <andres(at)anarazel(dot)de>
2012-01-06 19:49:52 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-01-06 20:49:37 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-01-06 19:45:45 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2012-01-06 19:48:07 from Andres Freund <andres(at)anarazel(dot)de>
2012-01-06 19:53:38 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-01-06 20:03:49 from Andres Freund <andres(at)anarazel(dot)de>
2012-01-06 22:17:09 from Merlin Moncure <mmoncure(at)gmail(dot)com>
2012-01-06 23:48:32 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2012-01-06 23:49:04 from Aidan Van Dyk <aidan(at)highrise(dot)ca>
2012-01-06 23:48:45 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-01-06 20:47:12 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-01-06 21:44:02 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-01-07 10:14:30 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-01-07 10:26:42 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2012-01-07 10:55:19 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-01-07 11:09:53 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-01-08 14:03:46 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-01-11 22:12:31 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-01-26 20:20:39 from Noah Misch <noah(at)leadboat(dot)com>
2012-01-27 00:01:21 from Dan Scales <scales(at)vmware(dot)com>
2012-01-27 13:19:32 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-01-27 21:07:00 from Dan Scales <scales(at)vmware(dot)com>
2012-01-28 13:49:02 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-01-28 20:44:32 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2012-01-30 15:26:05 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-02-07 20:58:59 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-08 03:24:05 from Noah Misch <noah(at)leadboat(dot)com>
2012-02-08 11:40:34 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-08 14:05:02 from Noah Misch <noah(at)leadboat(dot)com>
2012-02-09 15:16:04 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-16 11:16:31 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-16 11:48:13 from Albert Cervera i Areny <albert(at)nan-tic(dot)com>
2012-02-16 13:53:48 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-02-17 22:13:20 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-18 11:39:13 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-19 16:35:48 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-19 19:17:13 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-19 22:04:06 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-02-19 23:33:19 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-20 00:20:07 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-02-19 23:57:20 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-20 00:42:01 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-02-20 09:18:44 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-20 13:57:08 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-02-20 17:53:55 from Josh Berkus <josh(at)agliodbs(dot)com>
2012-02-20 18:22:10 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-02-20 22:49:25 from Josh Berkus <josh(at)agliodbs(dot)com>
2012-02-20 23:02:37 from Simon Riggs <simon(at)2ndquadrant(dot)com>
2012-02-21 10:07:40 from Noah Misch <noah(at)leadboat(dot)com>
2012-02-21 14:48:42 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-22 13:32:04 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-02-22 23:17:53 from Peter Geoghegan <peter(at)2ndquadrant(dot)com>
2012-02-22 23:51:00 from David Fetter <david(at)fetter(dot)org>
2012-02-23 01:39:54 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-03-02 16:58:01 from Peter Geoghegan <peter(at)2ndquadrant(dot)com>
2012-02-20 23:09:01 from Bruce Momjian <bruce(at)momjian(dot)us>
2012-02-20 23:23:42 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-21 04:21:10 from Bruce Momjian <bruce(at)momjian(dot)us>
2012-02-22 07:06:49 from Noah Misch <noah(at)leadboat(dot)com>
2012-02-22 12:30:46 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-29 14:40:11 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2012-02-29 15:01:37 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-29 15:30:12 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2012-02-29 15:42:17 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-29 15:46:01 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2012-02-29 16:24:21 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-29 16:41:09 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-02-29 17:26:42 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-29 17:44:21 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-02-29 17:54:38 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-02-29 19:09:02 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2012-02-29 19:18:44 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2012-02-29 19:29:26 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2012-02-29 20:14:14 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2012-02-29 19:30:56 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-02-29 19:33:28 from Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
2012-02-29 21:24:27 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-02-29 21:34:27 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2012-02-29 21:53:18 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2012-02-29 23:38:24 from Jim Nasby <jim(at)nasby(dot)net>
2012-03-01 00:48:47 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2012-02-29 21:55:18 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-02-29 22:52:34 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2012-03-01 12:41:04 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-03-01 17:42:43 from Josh Berkus <josh(at)agliodbs(dot)com>
2012-03-01 18:28:52 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-03-01 18:40:44 from Josh Berkus <josh(at)agliodbs(dot)com>
2012-03-01 21:08:26 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2012-03-02 00:23:06 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-03-02 00:45:36 from Alvaro Herrera <alvherre(at)commandprompt(dot)com>
2012-03-02 01:32:23 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2012-03-02 01:46:18 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-03-02 02:11:31 from Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
2012-03-02 03:52:22 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-03-02 19:32:48 from Simon Riggs <simon(at)2ndquadrant(dot)com>
2012-02-29 19:28:20 from Robert Haas <robertmhaas(at)gmail(dot)com>
2012-02-19 21:49:48 from Simon Riggs <simon(at)2ndQuadrant(dot)com>
2012-03-02 19:45:09 from Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
2012-06-13 02:30:04 from Jeff Davis <pgsql(at)j-davis(dot)com>
2012-08-10 23:16:43 from Jeff Davis <pgsql(at)j-davis(dot)com>
2012-01-10 04:27:28 from Greg Smith <greg(at)2ndQuadrant(dot)com>
Lists:
pgsql-hackers
On 29.02.2012 21:18, Alvaro Herrera wrote:
> Excerpts from Heikki Linnakangas's message of miƩ feb 29 16:09:02 -0300 2012:
>> I thought my view on how this should be done was already clear, but just
>> in case it isn't, let me restate: Enlarge the page header to make room
>> for the checksum. To handle upgrades, put code in the backend to change
>> the page format from old version to new one on-the-fly, as pages are
>> read in. Because we're making the header larger, we need to ensure that
>> there's room on every page. To do that, write a utility that you run on
>> the cluster before running pg_upgrade, which moves tuples to ensure
>> that. To ensure that the space doesn't get used again before upgrading,
>> change the old version so that it reserves those N bytes in all new
>> insertions and updates (I believe that approach has been discussed
>> before and everyone is comfortable with backpatching such a change). All
>> of this in 9.3.
>
> Note that if we want such an utility to walk and transform pages, we
> probably need a marker in the catalogs somewhere so that pg_upgrade can
> make sure that it was done in all candidate tables -- which is something
> that we should get in 9.2 so that it can be used in 9.3.
In the simplest form, the utility could just create a magic file in the
data directory to indicate that it has run. All we need is a boolean
flag, unless you want to be fancy and make the utility restartable.
Implemented that way, there's no need to have anything in the catalogs.
> Such a marker would also allow us get rid of HEAP_MOVED_IN and
> HEAP_MOVED_OUT.
True.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
In response to
Responses
pgsql-hackers by date
Next :From: Robert HaasDate: 2012-02-29 19:30:56
Subject : Re: 16-bit page checksums for 9.2
Previous :From : Robert HaasDate : 2012-02-29 19:28:20
Subject : Re: 16-bit page checksums for 9.2