On Fri, Sep 1, 2017 at 1:32 PM, Jeff Janes <jeff.ja...@gmail.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
pg_basebackup_throttle_1_v1.patch
Description: Binary data
pg_basebackup_throttle_2_v1.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers