mirror of
https://github.com/postgres/postgres.git
synced 2026-06-10 09:10:33 -04:00
Apply data-checksum worker throttling parameters
The DataChecksumsWorker accepts cost_delay and cost_limit parameters from pg_enable_data_checksums() so users can throttle the I/O caused by enabling checksums. Due to the API for setting the cost parameters changing between when the code was written, and when it was committed the new cost update function call was omitted and thus the parameters were silently ignored. Fix by calling VacuumUpdateCosts() after assigning the parameters (both during worker startup and on the runtime cost-update path), and by leaving the page-cost weights at their GUC-controlled defaults. Author: Satyanarayana Narlapuram <satyanarlapuram@gmail.com> Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Reviewed-by: Ayush Tiwari <ayushtiwari.slg01@gmail.com> Discussion: https://postgr.es/m/CAHg+QDeevH6aTyWdXYBJW0wOmfoZy66gDi5TfinK_dXeCrHQLg@mail.gmail.com
This commit is contained in:
parent
2018bd6167
commit
9a39056c41
1 changed files with 5 additions and 5 deletions
|
|
@ -1549,14 +1549,14 @@ DataChecksumsWorkerMain(Datum arg)
|
|||
* provides rather than inventing something bespoke. This is an internal
|
||||
* implementation detail and care should be taken to avoid it bleeding
|
||||
* through to the user to avoid confusion.
|
||||
*
|
||||
* VacuumUpdateCosts() propagates the values to the variables actually
|
||||
* read by vacuum_delay_point().
|
||||
*/
|
||||
VacuumCostDelay = DataChecksumState->cost_delay;
|
||||
VacuumCostLimit = DataChecksumState->cost_limit;
|
||||
VacuumCostActive = (VacuumCostDelay > 0);
|
||||
VacuumUpdateCosts();
|
||||
VacuumCostBalance = 0;
|
||||
VacuumCostPageHit = 0;
|
||||
VacuumCostPageMiss = 0;
|
||||
VacuumCostPageDirty = 0;
|
||||
|
||||
/*
|
||||
* Create and set the vacuum strategy as our buffer strategy.
|
||||
|
|
@ -1613,7 +1613,7 @@ DataChecksumsWorkerMain(Datum arg)
|
|||
costs_updated = true;
|
||||
VacuumCostDelay = DataChecksumState->launch_cost_delay;
|
||||
VacuumCostLimit = DataChecksumState->launch_cost_limit;
|
||||
VacuumCostActive = (VacuumCostDelay > 0);
|
||||
VacuumUpdateCosts();
|
||||
|
||||
DataChecksumState->cost_delay = DataChecksumState->launch_cost_delay;
|
||||
DataChecksumState->cost_limit = DataChecksumState->launch_cost_limit;
|
||||
|
|
|
|||
Loading…
Reference in a new issue