feat: new router and benchmark setup

This commit is contained in:
2026-04-16 14:23:53 +08:00
parent c86d931d8f
commit 996511f300
35 changed files with 1480 additions and 76 deletions

View File

@@ -221,3 +221,54 @@ fn ablate_rejects_belady_until_exact_algorithm_exists() {
"unexpected error: {err:#}"
);
}
#[test]
fn ablation_parallel_matches_serial() {
let tmp = std::env::temp_dir().join("kvcache_sim_ablate_parallel");
let _ = std::fs::remove_dir_all(&tmp);
std::fs::create_dir_all(&tmp).unwrap();
let trace_path = tmp.join("trace.jsonl");
write_synthetic_trace(&trace_path);
let cfg = base_config(
trace_path.to_str().unwrap(),
tmp.to_str().unwrap(),
RouterMode::Random,
);
let routers = [
RouterMode::Random,
RouterMode::LeastLoaded,
RouterMode::TtlAware,
RouterMode::Precise,
];
let serial = driver::ablate_fixed_placement_with_parallelism(
&cfg,
&routers,
&[ReplayEvictPolicy::Lru],
1,
)
.expect("serial ablate");
let parallel = driver::ablate_fixed_placement_with_parallelism(
&cfg,
&routers,
&[ReplayEvictPolicy::Lru],
2,
)
.expect("parallel ablate");
assert_eq!(parallel.len(), serial.len());
for (lhs, rhs) in parallel.iter().zip(serial.iter()) {
assert_eq!(lhs.router, rhs.router);
assert_eq!(lhs.evict_policy, rhs.evict_policy);
assert_eq!(lhs.placement_source, rhs.placement_source);
assert!((lhs.ttft_mean - rhs.ttft_mean).abs() < 1e-9);
assert!((lhs.ttft_p50 - rhs.ttft_p50).abs() < 1e-9);
assert!((lhs.ttft_p95 - rhs.ttft_p95).abs() < 1e-9);
assert!((lhs.ttft_p99 - rhs.ttft_p99).abs() < 1e-9);
assert!((lhs.hit_rate_l0 - rhs.hit_rate_l0).abs() < 1e-12);
assert!((lhs.hit_rate_l1 - rhs.hit_rate_l1).abs() < 1e-12);
assert!((lhs.hit_rate_remote - rhs.hit_rate_remote).abs() < 1e-12);
assert!((lhs.miss_rate - rhs.miss_rate).abs() < 1e-12);
}
}