CAVS v1.1.0 — Practical Patch Policy Benchmark
The practical patch policy benchmark release.
CAVS now benchmarks against practical pairwise patch policies — adjacent-only updates, skip-heavy and warm-cache scenarios, base-version hubs and storage-budgeted hot pairs — instead of relying on the theoretical all-pairs O(N²) argument. The all-pairs graph stays only as the labeled theoretical one-hop baseline; every pairwise number is a real diff, applied and byte-verified.
Added
cavs bench patch-policy: policy-level comparison with real per-engine measurements (cavsplanbuilt in;bsdiff,xdelta3,butler-offlinewhen installed — missing tools skip with a recorded reason, never fatal).- Policies: adjacent, sparse dyadic ladder (
--ladder-mode aligned|dense), base hub (--base-policy first|middle|latest-major|fixed:<id>|auto), hot pairs with storage budgets (--hot-pairs latest:K|traffic-top:K,--patch-storage-budget 1GiB|2x-latest-build), all-pairs one-hop baseline, and the CAVS content-addressed route. - Traffic models (
adjacent-heavy,skip-heavy,live-service-weekly,major-release,random,custom:file.toml) with deterministic weighted expansion; client states cold-cache-with-previous-install and warm-cache. cavs patch-policy graph|simulate|explain(replay another traffic model with no re-diffing) andcavs bench gen-stream.- Reports:
summary.md/json(avg/P95/P99, steps, coverage), per-edge and per-query CSVs, storage/traffic/apply-chain reports, replayablepatch_graph.json, plus a resultsREADME.md. - Route planner patch-chain risk penalty so multi-step chains are never chosen over a one-step route for a few KiB.
- New docs: PATCH_POLICY_BENCHMARK, PRACTICAL_PAIRWISE_DIFFS, PATCH_GRAPH_POLICIES, TRAFFIC_MODELS, STORAGE_BUDGET_POLICIES.
Changed
- README, BENCHMARKS and comparison docs no longer imply that all pairwise diff systems require O(N²) patches:
O(N²)now refers specifically to the all-pairs one-hop baseline, and practical pairwise policies are first-class benchmark baselines.
Measured 10-version results (adjacent-heavy, skip-heavy, warm-cache) are in docs/results/v1.1.0/patch-policy/ and docs/BENCHMARKS.md.