diff options
author | Jonathan Davies <jpds@protonmail.com> | 2023-03-09 16:32:22 +0000 |
---|---|---|
committer | Jonathan Davies <jpds@protonmail.com> | 2023-03-09 16:38:41 +0000 |
commit | 7b65dd24e2bacc20afa747dc2b1f3fb81249f688 (patch) | |
tree | 2f620591333cff6c7098c994c757cb679d9177c5 | |
parent | b70cc0a94087bfd70931ff6741299823b48ad291 (diff) | |
download | garage-7b65dd24e2bacc20afa747dc2b1f3fb81249f688.tar.gz garage-7b65dd24e2bacc20afa747dc2b1f3fb81249f688.zip |
block/repair.rs: Added a timestamp argument to
randomize_next_scrub_run_time().
-rw-r--r-- | src/block/repair.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/block/repair.rs b/src/block/repair.rs index 006cc866..5476bf8a 100644 --- a/src/block/repair.rs +++ b/src/block/repair.rs @@ -196,7 +196,7 @@ mod v082 { ScrubWorkerPersisted { tranquility: old.tranquility, time_last_complete_scrub: old.time_last_complete_scrub, - time_next_run_scrub: randomize_next_scrub_run_time(), + time_next_run_scrub: randomize_next_scrub_run_time(old.time_last_complete_scrub), corruptions_detected: old.corruptions_detected, } } @@ -215,11 +215,11 @@ pub struct ScrubWorker { persister: PersisterShared<ScrubWorkerPersisted>, } -fn randomize_next_scrub_run_time() -> u64 { +fn randomize_next_scrub_run_time(timestamp: u64) -> u64 { // Take SCRUB_INTERVAL and mix in a random interval of 10 days to attempt to // balance scrub load across different cluster nodes. - let next_run_timestamp = now_msec() + let next_run_timestamp = timestamp + SCRUB_INTERVAL .saturating_add(Duration::from_secs( rand::thread_rng().gen_range(0..3600 * 24 * 10), @@ -233,7 +233,7 @@ impl Default for ScrubWorkerPersisted { fn default() -> Self { ScrubWorkerPersisted { time_last_complete_scrub: 0, - time_next_run_scrub: randomize_next_scrub_run_time(), + time_next_run_scrub: randomize_next_scrub_run_time(now_msec()), tranquility: INITIAL_SCRUB_TRANQUILITY, corruptions_detected: 0, } @@ -395,7 +395,7 @@ impl Worker for ScrubWorker { } else { self.persister.set_with(|p| { p.time_last_complete_scrub = now_msec(); - p.time_next_run_scrub = randomize_next_scrub_run_time(); + p.time_next_run_scrub = randomize_next_scrub_run_time(now_msec()); })?; self.work = ScrubWorkerState::Finished; self.tranquilizer.clear(); |