Re: Why does execReplication.c lock tuples? - Mailing list pgsql-hackers

From Petr Jelinek
Subject Re: Why does execReplication.c lock tuples?
Date
Msg-id 3392745d-706f-3311-27b7-21ced146e690@2ndquadrant.com
Whole thread Raw
In response to Why does execReplication.c lock tuples?  (Andres Freund <andres@anarazel.de>)
Responses Re: Why does execReplication.c lock tuples?  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
Hi,

On 20/01/2019 21:03, Andres Freund wrote:
> Hi,
> 
> Currently RelationFindReplTupleByIndex(), RelationFindReplTupleSeq()
> lock the found tuple. I don't quite get what that achieves - why isn't
> dealing with concurrency in the table_update/delete calls at the
> callsites sufficient? As far as I can tell there's no meaningful
> concurrency handling in the heap_lock_tuple() paths, so it's not like we
> follow update chains or anything. 
> 

Yeah that's leftover from the conflict detection/handling code that I
stripped away to keep the patched manageable size-wise. As things stand
now we could remove that and use normal heap_update instead of simple
variant. It'll be likely be needed again if we add conflict handling in
the future, but perhaps we could be smarter about it then (i.e. I can
imagine that it will be per table anyway, not necessarily default behavior).

-- 
  Petr Jelinek                  http://www.2ndQuadrant.com/
  PostgreSQL Development, 24x7 Support, Training & Services


pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: WIP: Avoid creation of the free space map for small tables
Next
From: Kyotaro HORIGUCHI
Date:
Subject: Re: pg_stat_ssl additions