Re: POC: Lock updated tuples in tuple_update() and tuple_delete()

From: Andres Freund <andres(at)anarazel(dot)de>
To: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
Cc: Chris Travers <chris(dot)travers(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: POC: Lock updated tuples in tuple_update() and tuple_delete()
Date: 2023-04-02 00:47:18
Message-ID: 20230402004718.uclwhqjvxnr52emt@awork3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2023-04-02 03:37:19 +0300, Alexander Korotkov wrote:
> On Sat, Apr 1, 2023 at 8:21 AM Andres Freund <andres(at)anarazel(dot)de> wrote:
> > Given that the in-tree state has been broken for a week, I think it probably
> > is time to revert the commits that already went in.
>
> The revised patch is attached. The most notable change is getting rid
> of LazyTupleTableSlot. Also get rid of complex computations to detect
> how to initialize LazyTupleTableSlot. Instead just pass the oldSlot
> as an argument of ExecUpdate() and ExecDelete(). The price for this
> is just preallocation of ri_oldTupleSlot before calling ExecDelete().
> The slot allocation is quite cheap. After all wrappers it's
> table_slot_callbacks(), which is very cheap, single palloc() and few
> fields initialization. It doesn't seem reasonable to introduce an
> infrastructure to evade this.
>
> I think patch resolves all the major issues you've highlighted. Even
> if there are some minor things missed, I'd prefer to push this rather
> than reverting the whole work.

Shrug. You're designing new APIs, days before the feature freeze. This just
doesn't seem ready in time for 16. I certainly won't have time to look at it
sufficiently in the next 5 days.

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2023-04-02 03:42:44 Re: Minimal logical decoding on standbys
Previous Message Alexander Korotkov 2023-04-02 00:37:19 Re: POC: Lock updated tuples in tuple_update() and tuple_delete()