Commit f550ed89 authored by Michael Crouse's avatar Michael Crouse Committed by Commit Bot

Add finch support for setting the delay before fetching prediction models.

This change allows the random delay before a fetch to the remote
Optimization Guide Service is made for prediction models and
host model features.

Bug: 1001194
Change-Id: I71a5670bb103ee67805fdc1981db9c2997e121c8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1935497Reviewed-by: default avatarSophie Chang <sophiechang@chromium.org>
Reviewed-by: default avatarTarun Bansal <tbansal@chromium.org>
Commit-Queue: Michael Crouse <mcrouse@chromium.org>
Cr-Commit-Position: refs/heads/master@{#719306}
parent d0083967
...@@ -66,14 +66,12 @@ constexpr base::TimeDelta kFetchRetryDelay = base::TimeDelta::FromMinutes(16); ...@@ -66,14 +66,12 @@ constexpr base::TimeDelta kFetchRetryDelay = base::TimeDelta::FromMinutes(16);
constexpr base::TimeDelta kUpdateModelsAndFeaturesDelay = constexpr base::TimeDelta kUpdateModelsAndFeaturesDelay =
base::TimeDelta::FromHours(24); base::TimeDelta::FromHours(24);
// Provide a random time delta in seconds between |kFetchRandomMinDelay| and // Provide a random time delta in seconds before fetching models and host model
// |kFetchRandomMaxDelay|. // features.
base::TimeDelta RandomFetchDelay() { base::TimeDelta RandomFetchDelay() {
// TODO(crbug/1027526): Add finch support for the random delay ranges. return base::TimeDelta::FromSeconds(base::RandInt(
constexpr int kFetchRandomMinDelaySecs = 30; optimization_guide::features::PredictionModelFetchRandomMinDelaySecs(),
constexpr int kFetchRandomMaxDelaySecs = 180; optimization_guide::features::PredictionModelFetchRandomMaxDelaySecs()));
return base::TimeDelta::FromSeconds(
base::RandInt(kFetchRandomMinDelaySecs, kFetchRandomMaxDelaySecs));
} }
} // namespace } // namespace
......
...@@ -206,5 +206,15 @@ bool ShouldOverrideOptimizationTargetDecisionForMetricsPurposes( ...@@ -206,5 +206,15 @@ bool ShouldOverrideOptimizationTargetDecisionForMetricsPurposes(
kOptimizationTargetPrediction, "painful_page_load_metrics_only", false); kOptimizationTargetPrediction, "painful_page_load_metrics_only", false);
} }
int PredictionModelFetchRandomMinDelaySecs() {
return GetFieldTrialParamByFeatureAsInt(kOptimizationTargetPrediction,
"fetch_random_min_delay_secs", 30);
}
int PredictionModelFetchRandomMaxDelaySecs() {
return GetFieldTrialParamByFeatureAsInt(kOptimizationTargetPrediction,
"fetch_random_max_delay_secs", 180);
}
} // namespace features } // namespace features
} // namespace optimization_guide } // namespace optimization_guide
...@@ -105,6 +105,14 @@ base::TimeDelta StoredHostModelFeaturesFreshnessDuration(); ...@@ -105,6 +105,14 @@ base::TimeDelta StoredHostModelFeaturesFreshnessDuration();
bool ShouldOverrideOptimizationTargetDecisionForMetricsPurposes( bool ShouldOverrideOptimizationTargetDecisionForMetricsPurposes(
proto::OptimizationTarget optimization_target); proto::OptimizationTarget optimization_target);
// Returns the minimum number of seconds to randomly delay before starting to
// fetch for prediction models and host model features.
int PredictionModelFetchRandomMinDelaySecs();
// Returns the maximum number of seconds to randomly delay before starting to
// fetch for prediction models and host model features.
int PredictionModelFetchRandomMaxDelaySecs();
} // namespace features } // namespace features
} // namespace optimization_guide } // namespace optimization_guide
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment