Re: Track the amount of time waiting due to cost_delay

Nathan Bossart <nathandbossart@gmail.com>

From: Nathan Bossart <nathandbossart@gmail.com>
To: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Cc: Dilip Kumar <dilipbalaut@gmail.com>, Masahiro Ikeda <ikedamsh@oss.nttdata.com>, "Imseih (AWS), Sami" <simseih@amazon.com>, Masahiko Sawada <sawada.mshk@gmail.com>, pgsql-hackers@lists.postgresql.org, Robert Haas <robertmhaas@gmail.com>
Date: 2025-02-10T20:52:46Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add delay time to VACUUM/ANALYZE (VERBOSE) and autovacuum logs.

  2. Add cost-based vacuum delay time to progress views.

  3. Add is_analyze parameter to vacuum_delay_point().

  4. Refresh cost-based delay params more frequently in autovacuum

Attachments

On Tue, Feb 04, 2025 at 10:14:48AM +0000, Bertrand Drouvot wrote:
> On Mon, Feb 03, 2025 at 02:05:51PM -0600, Nathan Bossart wrote:
>> Barring objections, I am planning to commit this one soon.  I might move
>> the addition of analyze_delay_point() to its own patch, but otherwise I
>> think it looks good to go.
> 
> Yeah, I think that having analyze_delay_point() in its own patch makes sense.
> It's done that way in the attached and allows 0002 to be focus on the main
> feature.

Here is what I have prepared for commit.  Other expanding the commit
messages, I've modified 0001 to just add a parameter to
vacuum_delay_point() to indicate whether this is a vacuum or analyze.  I
was worried that adding an analyze_delay_point() could cause third-party
code to miss this change.  We want such code to correctly indicate the type
of operation so that the progress views work for them, too.

Off-list, I've asked Bertrand to gauge the feasibility of adding this
information to the autovacuum logs and to VACUUM/ANALYZE (VERBOSE).  IMHO
those are natural places to surface this information, and I want to ensure
that we're not painting ourselves into a corner with the approach we're
using for the progress views.

-- 
nathan