Problem
extract_aqes deduplicates AQEs across RQEs and collapses their repeat intervals into query_frequency_hz = Σ 1/T_r and t_repeat_gcd_ms. One AQE can then be served by only one config, and the gcd tightens freshness beyond what any single RQE needs (design doc open item 10).
Change
Make the optimizer's assignment unit the tuple (AQE, repeat interval T, accuracy_sla, latency_sla). RQEs that agree on all four merge into one item with frequency = count / T; items that differ stay separate so they can be served by different configs (or share one via the deployment variable).
- Candidate generation and eligibility use the item's own T instead of
t_repeat_gcd_ms.
- Greedy and the MILP both consume items.
Part of #753.
🤖 Generated with Claude Code
Problem
extract_aqesdeduplicates AQEs across RQEs and collapses their repeat intervals intoquery_frequency_hz = Σ 1/T_randt_repeat_gcd_ms. One AQE can then be served by only one config, and the gcd tightens freshness beyond what any single RQE needs (design doc open item 10).Change
Make the optimizer's assignment unit the tuple (AQE, repeat interval T, accuracy_sla, latency_sla). RQEs that agree on all four merge into one item with
frequency = count / T; items that differ stay separate so they can be served by different configs (or share one via the deployment variable).t_repeat_gcd_ms.Part of #753.
🤖 Generated with Claude Code