Re: Suppressing useless wakeups in walreceiver

From: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
To: Nathan Bossart <nathandbossart(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>, alvherre(at)alvh(dot)no-ip(dot)org, bharath(dot)rupireddyforpostgres(at)gmail(dot)com, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Suppressing useless wakeups in walreceiver
Date: 2022-11-13 23:11:19
Message-ID: CA+hUKGJsRgiwR_K6Dda9cObfUtpxtjVVvB-YLOgedhVvnWGu_A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Nov 14, 2022 at 11:26 AM Nathan Bossart
<nathandbossart(at)gmail(dot)com> wrote:
> On Sun, Nov 13, 2022 at 05:08:04PM -0500, Tom Lane wrote:
> > There is something very seriously wrong with this patch.
> >
> > On my machine, running "make -j10 check-world" (with compilation
> > already done) has been taking right about 2 minutes for some time.
> > Since this patch, it's taking around 2:45 --- I did a bisect run
> > to confirm that this patch is where it changed.
>
> I've been looking into this. I wrote a similar patch for logical/worker.c
> before noticing that check-world was taking much longer. The problem in
> that case seems to be that process_syncing_tables() isn't called as often.
> It wouldn't surprise me if there's also something in walreceiver.c that
> depends upon the frequent wakeups. I suspect this will require a revert.

In the case of "meson test pg_basebackup/020_pg_receivewal" it looks
like wait_for_catchup hangs around for 10 seconds waiting for HS
feedback. I'm wondering if we need to go back to high frequency
wakeups until it's caught up, or (probably better) arrange for a
proper event for progress. Digging...

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Thomas Munro 2022-11-13 23:35:28 Re: Suppressing useless wakeups in walreceiver
Previous Message Simon Riggs 2022-11-13 23:07:34 Re: Reducing power consumption on idle servers