On Wed, Dec 16, 2009 at 1:25 PM, Robert Haas <robertmh...@gmail.com> wrote:
> On Wed, Dec 16, 2009 at 1:14 PM, Alvaro Herrera
> <alvhe...@commandprompt.com> wrote:
>> Robert Haas escribió:
>>> On Wed, Dec 16, 2009 at 10:29 AM, Andres Freund <and...@anarazel.de> wrote:
>>> > On Wednesday 16 December 2009 16:24:42 Robert Haas wrote:
>>> >> >   Inserts and deletes follow the same protocol, obtaining an exclusive
>>> >> >   lock on the row after the one being inserted or deleted. The result
>>> >> >   of this locking protocol is that a range scan prevents concurrent
>>> >> >   inserts or delete within the range of the scan, and vice versa.
>>> >> >
>>> >> > That sounds like it should actually work.
>>> >>
>>> >> Only if you can guarantee that the database will access the rows using
>>> >> some particular index.  If it gets to the data some other way it might
>>> >> accidentally circumvent the lock.  That's kind of a killer in terms of
>>> >> making this work for PostgreSQL.
>>> > Isnt the whole topic only relevant for writing access? There you have to
>>> > access the index anyway.
>>>
>>> Yeah, I guess you have to insert the new tuple.  I guess while you
>>> were at it you might check whether the next tuple is locked...
>>
>> So you'd have to disable HOT updates when true serializability was
>> active?
>
> I thought about that, but I don't think so.   HOT only applies to
> updates, and predicate locking only applies to inserts.  Unless I have
> my head in the sand?

Err, no, wait.  Predicate locking can apply to updates, but since HOT
updates never update an indexed column, I think we might still be OK?

...Robert

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to