Re: Proposal: Progressive explain

From: Rafael Thofehrn Castro <rafaelthca(at)gmail(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Cc: torikoshia(at)oss(dot)nttdata(dot)com
Subject: Re: Proposal: Progressive explain
Date: 2025-03-07 20:34:32
Message-ID: CAG0ozMo4eaJJqqiHP7dHXm=u8vK-qqxo5Q1DVu=amHisZiX5_g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> Implementation of the new GUC progressive_explain_min_duration was done
> with
> timeouts. The timeout callback function is used to initialize the
> progressive
> explain.
>
> There is a catch to this implementation. In thread
> https://www.postgresql.org/message-id/flat/d68c3ae31672664876b22d2dcbb526d2%40postgrespro.ru
> where torikoshia proposes logging of query plans it was raised concerns
> about
> logging plans in the CFI, a sensible part of the code. So torikoshia
> implemented
> a smart workaround consisting in adjusting the execProcNode wrapper of all
> nodes
> so that the plan printing can be done there.
>
> I'm not sure if this same concern applies to timeout callbacks so I also
> implemented
> a second version of the latest patch that uses that execProcNode wrapper
> strategy.
>
> The wrapper code was implemented by torikoshia (torikoshia(at)oss(dot)nttdata(dot)com),
> so
> adding the credits here.
>

Did additional benchmarks and found issues with the patch that doesn't do
execProcNode
wrapping. There are sporadic crashes with *double free or corruption (top)*

So making the patch that uses the wrapper the current one. Again, giving
the credits to
torikoshia as being the owner of that section of the code.

Rafael.

>

Attachment Content-Type Size
v8-0001-Proposal-for-progressive-explains.patch application/octet-stream 80.0 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2025-03-07 20:38:47 Re: strange valgrind reports about wrapper_handler on 64-bit arm
Previous Message Melanie Plageman 2025-03-07 20:29:14 Re: Log connection establishment timings