From: Simon Riggs <simon@2ndQuadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Gregory Stark <stark@enterprisedb.com>
Cc: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Cc: ITAGAKI Takahiro <itagaki.takahiro@oss.ntt.co.jp>
Cc: pgsql-hackers@postgresql.org
Subject: Re: rmgr hooks and contrib/rmgr_hook
Date: Mon, 15 Sep 2008 16:00:04 +0100
Message-ID: <1221490804.3913.1406.camel@ebony.2ndQuadrant> (raw)
In-Reply-To: <25319.1221487473@sss.pgh.pa.us>
References: <20080901121833.4A18.52131E4D@oss.ntt.co.jp>
<1220345064.4371.275.camel@ebony.2ndQuadrant>
<20080902174613.76B2.52131E4D@oss.ntt.co.jp>
<1220348980.4371.316.camel@ebony.2ndQuadrant>
<14451.1220369969@sss.pgh.pa.us>
<1220372673.4371.465.camel@ebony.2ndQuadrant>
<48CB72C8.1070700@enterprisedb.com>
<1221470800.3913.1229.camel@ebony.2ndQuadrant>
<87sks1oi4o.fsf@oxford.xeocode.com>
<24006.1221483138@sss.pgh.pa.us>
<1221485063.3913.1350.camel@ebony.2ndQuadrant>
<25319.1221487473@sss.pgh.pa.us>
On Mon, 2008-09-15 at 10:04 -0400, Tom Lane wrote:
> Simon Riggs <simon@2ndQuadrant.com> writes:
> > The version mismatch idea presumes that a code author would structure
> > their code in two pieces: one to generate the WAL and one to read it.
>
> No, the version mismatch problem is that you might try to read the WAL
> with a different version of the plugin than you wrote it with. Or maybe
> with a completely unrelated plugin that was unfortunate enough to choose
> the same rmgr ID. We can't afford to insert complete versioning
> information into each WAL record, so it's going to be pretty difficult
> to avoid this risk.
I'm happy to include additional things into the patch, but I don't see
anything to force rejection of the patch entirely, from what has been
said.
Bottom line is that any backup of Postgres needs to include plugin
directories, otherwise parts of the application could stop working
following restore. This patch doesn't change that.
I proposed a registration scheme to avoid one of those problems.
If a plugin changed its file format, it would clearly need to include a
version test within it. It wouldn't be the fault of the plugin API if
the plugin author didn't handle that. But if they can work out how to
build an index AM and write WAL, I'm sure they can handle version
management between software components and informative error messages if
problems occur. And if they can't, they'll get a bad rep and nobody will
use the plugin.
Few ideas:
* add the rmgr bms to the long header of each WAL file
* change !RmgrIdIsValid() so that it causes FATAL by default. This then
allows people to correct a mistake and retry. We provide an option to
treat such errors as corrupt data and assume we have reached the end of
WAL.
--
Simon Riggs www.2ndQuadrant.com
PostgreSQL Training, Services and Support
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-patches@postgresql.org
Cc: simon@2ndQuadrant.com, tgl@sss.pgh.pa.us, stark@enterprisedb.com, heikki.linnakangas@enterprisedb.com, itagaki.takahiro@oss.ntt.co.jp, pgsql-hackers@postgresql.org
Subject: Re: rmgr hooks and contrib/rmgr_hook
In-Reply-To: <1221490804.3913.1406.camel@ebony.2ndQuadrant>
* 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