From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Kevin Grittner <Kevin.Grittner@wicourts.gov>
Cc: drkp@csail.mit.edu
Cc: yamt@mwd.biglobe.ne.jp
Cc: pgsql-hackers@postgresql.org
Subject: Re: SSI bug?
Date: Thu, 24 Feb 2011 19:10:58 +0200
Message-ID: <4D669122.80904@enterprisedb.com> (raw)
In-Reply-To: <4D6444B9020000250003AE98@gw.wicourts.gov>
References: <4D6444B9020000250003AE98@gw.wicourts.gov>
On 23.02.2011 07:20, Kevin Grittner wrote:
> Dan Ports wrote:
>
>> The obvious solution to me is to just keep the lock on both the old
>> and new page.
>
> That's the creative thinking I was failing to do. Keeping the old
> lock will generate some false positives, but it will be rare and
> those don't compromise correctness -- they just carry the cost of
> starting the transaction over.
Sounds reasonable, but let me throw in another idea while we're at it:
if there's a lock on the index page we're about to delete, we could just
choose to not delete it. The next vacuum will pick it up. Presumably it
will happen rarely, so index bloat won't be an issue.
>> I was going to bemoan the extra complexity this would add -- but
>> actually, couldn't we just replace PredicateLockPageCombine with a
>> call to PredicateLockPageSplit since they'd now do the same thing?
>
> I'd be inclined to leave the external interface alone, in case we
> conceive of an even better implementation.
Agreed.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
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: heikki.linnakangas@enterprisedb.com, Kevin.Grittner@wicourts.gov, drkp@csail.mit.edu, yamt@mwd.biglobe.ne.jp
Subject: Re: SSI bug?
In-Reply-To: <4D669122.80904@enterprisedb.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