From: | Gregory Stark <stark(at)enterprisedb(dot)com> |
---|---|
To: | "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at> |
Cc: | "Kevin Grittner *EXTERN*" <Kevin(dot)Grittner(at)wicourts(dot)gov>, <pgsql-hackers(at)postgresql(dot)org>, <mjc(at)it(dot)usyd(dot)edu(dot)au> |
Subject: | Re: Serializable Isolation without blocking |
Date: | 2009-05-07 10:34:16 |
Message-ID: | 87ocu5urpz.fsf@oxford.xeocode.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
"Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at> writes:
> So I think one would have to add intention locks for rows considered
> in the WHERE clause to guarantee true serializability.
Does the paper explain how to deal with rows "considered" in the WHERE clause
which don't yet exist? Ie, "SELECT count(*) WHERE foo" needs to take out a
lock which would cause any transaction which inserts a new record where foo is
true to be abort.
In MSSQL this requires locking the page of the index where such records would
be inserted (or the entire table if there's no index). In Predicate locking
schemes this requires a separate storage structure for storing such predicates
which can be arbitrarily complex expressions to check any new tuple being
inserted against.
Are these intention locks predicate locks, in that they're not associated with
actual pages or records but with potential records which might be inserted in
the future?
--
Gregory Stark
EnterpriseDB http://www.enterprisedb.com
Ask me about EnterpriseDB's PostGIS support!
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2009-05-07 10:57:56 | Re: conditional dropping of columns/constraints |
Previous Message | Michael Meskes | 2009-05-07 09:54:08 | Re: ECPG, two varchars with same name on same line |