From: | Jeff Janes <jeff(dot)janes(at)gmail(dot)com> |
---|---|
To: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: pg_basebackup throttling doesn't throttle as promised |
Date: | 2017-09-01 21:42:12 |
Message-ID: | CAMkU=1wtMbDSGHcheo_xSHpFi=M2dLsFX6deqJNNoP33N=gvug@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, Sep 1, 2017 at 1:32 PM, Jeff Janes <jeff(dot)janes(at)gmail(dot)com> wrote:
> The "-r" option to pg_basebackup is supposed to throttle the rate of the
> backup. But it only works properly if the server is mostly idle.
>
> Every non-trivial call to XLogFlush or XLogBackgroundFlush will wake up
> the wal sender (the one which is not really sending wal, but base files),
> and the throttling routine doesn't go back to sleep after being awoke
> early. Rather, it releases another 32kb of data.
>
>
> Should the basebackup.c throttle sleep in a loop until its time has
> expired?
>
> Or should walsender.c WalSndWakeup not wake a wal sender whose status
> is WALSNDSTATE_BACKUP?
>
> Or both?
>
I'm attaching a patch for each option. Each one independently solves the
problem. But I think we should do both. There is no point in issuing
unnecessary kill system calls, and there may also be more spurious wake-ups
than just these ones.
Cheers,
Jeff
Attachment | Content-Type | Size |
---|---|---|
pg_basebackup_throttle_1_v1.patch | application/octet-stream | 1.4 KB |
pg_basebackup_throttle_2_v1.patch | application/octet-stream | 899 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas Munro | 2017-09-01 22:32:16 | Re: Parallel Hash take II |
Previous Message | Bruce Momjian | 2017-09-01 21:40:18 | Re: tupconvert.c API change in v10 release notes |