Kind: optimization | Status: decided | Correction: benjamini_hochberg
Question: AMD uProf (tbp) shows transducer::transition::transition_state_pooled_ref dominates query CPU at ~80% (100.9s). Does a dictionary-version-tied query-result cache that skips the entire transition loop on repeated queries reduce mean per-query latency on a repeated-query workload, without regressing unique-query workloads unacceptably?
Phase 6 novel option #4 (cross-query cache with eviction tied to dictionary versioning). Profiled with AMD uProf tbp; transition_state_pooled_ref is the sole hot function. A cache hit skips it entirely.
H1. A VersionedQueryCache memoizing (query, max_distance) -> results and invalidating on a dictionary version bump reduces mean per-query latency on a repeated-query workload by a large margin versus the uncached transducer, while returning identical results. — ✅ accepted
mean_query_latency_ns (ns) · predicted: decrease · planned n/arm: 30{"type": "welch_t", "params": {"tail": "less", "alpha": 0.05, "min_effect": {"kind": "cohens_d", "threshold": 0.5}}}| Metric | Test | Statistic | p | Effect | 95% CI | Verdict |
|---|---|---|---|---|---|---|
mean_query_latency_ns | welch_t | -619.411566 | 0.000000 | -80.866202 | [-285238.0267, -283414.9544] | accepted |
Decision on mean_query_latency_ns:
ACCEPTED (criterion: welch_t, correction: BenjaminiHochberg) [0] WelchT: statistic=-619.4116, p=0.000000, effect=-80.8662, 95% CI=[-285238.0267, -283414.9544]
Operator note: Version-tied cross-query cache vs uncached transducer on a repeated-query workload (50 queries × replicates, dict 1000 terms, max_distance 2), CPU-pinned core 2. Cache hits skip the AMD-uProf-dominant transition_state_pooled_ref (~80% CPU). Correctness gate passed (cached results identical to uncached for all 50 queries).
Nothing rejected (or no decisions yet).
82cce83experiment_samples.Rendered from the pgmcp experiment record (the structured source of truth). Edit the experiment, not this file.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |