Re: SSI patch version 14

From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: Kevin Grittner <Kevin(dot)Grittner(at)wicourts(dot)gov>
Cc: simon(at)2ndQuadrant(dot)com, markus(at)bluegap(dot)ch, pgsql-hackers(at)postgresql(dot)org
Subject: Re: SSI patch version 14
Date: 2011-02-04 11:35:32
Message-ID: 4D4BE484.3020207@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 02.02.2011 19:36, Kevin Grittner wrote:
> I really appreciate you putting this testing framework together.
> This is clearly the right way to do it, although we also clearly
> don't want this test in the check target at the root directory,
> because of the run time.

It would be nice to get some buildfarm members to run them though.

I'm reading through the patch again now, hoping to commit this weekend.
There's still this one TODO item that you commented on earlier:

> Then there's one still lurking outside the new predicate* files, in
> heapam.c. It's about 475 lines into the heap_update function (25
> lines from the bottom). In reviewing where we needed to acquire
> predicate locks, this struck me as a place where we might need to
> duplicate the predicate lock from one tuple to another, but I wasn't
> entirely sure. I tried for a few hours one day to construct a
> scenario which would show a serialization anomaly if I didn't do
> this, and failed create one. If someone who understands both the
> patch and heapam.c wants to look at this and offer an opinion, I'd
> be most grateful. I'll take another look and see if I can get my
> head around it better, but failing that, I'm disinclined to either
> add locking I'm not sure we need or to remove the comment that says
> we *might* need it there.

Have you convinced yourself that there's nothing to do? If so, we should
replace the todo comment with a comment explaining why.

PageIsPredicateLocked() is currently only called by one assertion in
RecordFreeIndexPage(). The comment in PageIsPredicateLocked() says
something about gist vacuuming; I presume this is something that will be
needed to implement more fine-grained predicate locking in GiST. But we
don't have that at the moment. The assertion in RecordFreeIndexPage() is
a reasonable sanity check, but I'm inclined to move it to the caller
instead: I don't think the FSM should need to access predicate lock
manager, even for an assertion.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2011-02-04 11:39:23 Re: Compilation failed
Previous Message Itagaki Takahiro 2011-02-04 10:49:27 Re: exposing COPY API