pg_basebackup throttling doesn't throttle as promised
Jeff Janes <jeff.janes@gmail.com>
From: Jeff Janes <jeff.janes@gmail.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2017-09-01T20:32:29Z
Lists: pgsql-hackers
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? Cheers, Jeff
Commits
-
Correct base backup throttling
- 1861b20cd63b 10.0 landed
- ebd346caf41b 11.0 landed