@@ -281,13 +281,17 @@ func TestHistogramIsNotEmptyAfterSavingAndLoadingCheckpointsWithBoundaryValues(t
281
281
// Upon loading from the VPACheckpoint, the histogram reconstructs its weights using a calculated ratio,
282
282
// aimed at reverting integer weights back to float values. This ratio is derived from:
283
283
// (`w1` + `w2`) / (`wi1` + `wi2`)
284
- // Reference: https://github.com/plkokanov /autoscaler/blob/2aba67154cd4f117da4702b60a10c38c0651e659 /vertical-pod-autoscaler/pkg/recommender/util/histogram.go#L256-L269
284
+ // Reference: https://github.com/kubernetes /autoscaler/blob/aa1d413ea3bf319b56c7b2e65ade1a028e149439 /vertical-pod-autoscaler/ /pkg/recommender/util/histogram.go#L256-L269
285
285
286
286
// Given the maximum potential values for `w1`, `w2`, `wi1` and `wi2` we arrive at:
287
287
// (`epsilon` + `MaxCheckpointWeight` * `epsilon` - `epsilon`) / (1 + MaxCheckpointWeight) = epsilon * `MaxCheckpointWeight` / (1 + MaxCheckpointWeight)
288
288
289
289
// Consequently, the maximum value for this ratio is less than `epsilon`, implying that when `w1`,
290
290
// initially scaled to `1`, is adjusted by this ratio, its recalculated weight falls short of `epsilon`.
291
+ // When the `minBucket`'s weight is less than `epsilon`, the `histogram.IsEmpty()` returns true.
292
+ // Reference: https://github.com/kubernetes/autoscaler/blob/aa1d413ea3bf319b56c7b2e65ade1a028e149439/vertical-pod-autoscaler/pkg/recommender/util/histogram.go#L181-L183
293
+ // Consequently, the `histogram.Percentile(...)` function will always return 0.
294
+ // Reference: https://github.com/kubernetes/autoscaler/blob/aa1d413ea3bf319b56c7b2e65ade1a028e149439/vertical-pod-autoscaler/pkg/recommender/util/histogram.go#L159-L162
291
295
// The same behavior can be observed when there are more than two weights.
292
296
293
297
// This test ensures that in such cases the histogram does not become empty.
0 commit comments