populate_run_pooled_schbench_distribution

Function populate_run_pooled_schbench_distribution 

Source
pub fn populate_run_pooled_schbench_distribution(stats: &mut ScenarioStats)
Expand description

Inject the schbench whole-run DISTRIBUTIONAL metrics (the wakeup / request latency percentiles + min/max and the achieved-rps percentiles) into stats.ext_metrics as the *_whole keys, re-pooled run-level by UNIONING the per-phase per-cgroup PlatStats histograms (stats.phases[].per_cgroup[].schbench.{wakeup,request,rps}) across EVERY phase and EVERY cgroup, then re-deriving each percentile / min / max over the merged histogram. PlatStats::combine is an associative bucket-count add, so the merged histogram is the FAITHFUL union and the re-derived percentile is the percentile OF the pooled sample set — NOT a mean of per-phase / per-cgroup percentiles (the percentile operator is non-linear). This is the schbench histogram analog of populate_run_distribution_metrics’s raw-sample union.

Runs in populate_run_ext_all (post-merge, after populate_run_pooled_schbench); reads the per-phase carriers (disjoint from the iterations / taobench / schbench loop/run-delay pools) and writes distinct *_whole keys, so it is order-independent. Each stream’s keys are written only when its merged histogram has samples (sample_count() > 0) — a stream with no samples (e.g. a sub-1s run with no rps samples) reads ABSENT, never a false 0 (mirrors the per-phase write_schbench_scalars gating and the carrier-less graceful degradation of populate_run_distribution_metrics).

The *_whole keys are crate::stats::MetricKind::PerRunDistribution: noise-compared per-run by crate::stats::noise_findings (each run’s own p99), NEVER cross-RUN folded (a percentile of a union is not a mean of per-run percentiles, and the per-phase histograms are dropped at the cross-run boundary), so they are gated out of the cross-RUN ext fold and the within-run reducers (is_derived). Distinct names from the per-phase percentile keys (one registry name = one kind), produced solely here.