From 877353033f1c95bbcc2cbfa81815a764d1af8bc1 Mon Sep 17 00:00:00 2001 From: Milind Srivastava Date: Mon, 29 Jun 2026 14:24:16 -0400 Subject: [PATCH 1/5] docs: added simplified optimization problem formulation doc --- .design_docs/mental-model-diagram.png | Bin 0 -> 76833 bytes .../optimizer-simplified-formulation.md | 63 ++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 .design_docs/mental-model-diagram.png create mode 100644 .design_docs/optimizer-simplified-formulation.md diff --git a/.design_docs/mental-model-diagram.png b/.design_docs/mental-model-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..063afb7342975162dd4313c56f7d6a9b78e783d3 GIT binary patch literal 76833 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 z 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 y?(60qlmGSDuP2Y;&{*9Qk;MOb Date: Mon, 29 Jun 2026 14:26:53 -0400 Subject: [PATCH 2/5] bug fix --- .design_docs/optimizer-simplified-formulation.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.design_docs/optimizer-simplified-formulation.md b/.design_docs/optimizer-simplified-formulation.md index eb8c316..fad0712 100644 --- a/.design_docs/optimizer-simplified-formulation.md +++ b/.design_docs/optimizer-simplified-formulation.md @@ -24,8 +24,8 @@ Each summarization strategy takes an input stream of metrics and computes summar | $\varepsilon_r$ | User-specified | Accuracy tolerance for RQE $r$ | | $\text{SLA}_r$ | User-specified | Latency requirement for RQE $r$ | | $S = \{s_1, \ldots s_n\}$ | Expert-defined | Set of summarization strategies | -| $ingest\_cost(s)$ | Expert-defined | Cost of ingesting data into a summary $s$ | -| $query\_cost(s, r)$ | Expert-defined | Cost of answering RQE $r$ from summary $s$ | +| `ingest_cost(s)` | Expert-defined | Cost of ingesting data into a summary $s$ | +| `query_cost(s, r)` | Expert-defined | Cost of answering RQE $r$ from summary $s$ | ## Internal Variables @@ -42,9 +42,9 @@ Each summarization strategy takes an input stream of metrics and computes summar ## Objective -$$\min \sum_{s \in S} y_s \cdot ingest\_cost(s) \ + \ \sum_{r \in R,\ s \in S} x_{r,s} \cdot f_r \cdot query\_cost(s, r)$$ +$$\min \sum_{s \in S} y_s \cdot \operatorname{ingest\_cost}(s) \ + \ \sum_{r \in R,\ s \in S} x_{r,s} \cdot f_r \cdot \operatorname{query\_cost}(s, r)$$ -Both terms are cost rates (cost/sec). $f_r$ converts the per-query $query\_cost$ into a rate commensurate with the continuously-accruing $ingest\_cost$. +Both terms are cost rates (cost/sec). $f_r$ converts the per-query `query_cost` into a rate commensurate with the continuously-accruing `ingest_cost`. ## Constraints @@ -60,4 +60,4 @@ $$x_{r,s},\ y_s \in \{0,1\} \tag{3}$$ 1. How to define the set of available summarization strategies $S$? 2. How to infer if a particular RQE $r$ can be feasibly answered using a summarization strategy $s$? -3. How to efficiently infer $ingest\_cost$ and $query\_cost$, for different summarization strategies, queries, and data shapes/distributions? +3. How to efficiently infer `ingest_cost` and `query_cost`, for different summarization strategies, queries, and data shapes/distributions? From f1e7a2612fbc46fc3f74defc11fd7b5c728a1769 Mon Sep 17 00:00:00 2001 From: Milind Srivastava Date: Mon, 29 Jun 2026 14:28:15 -0400 Subject: [PATCH 3/5] bug fix --- .design_docs/optimizer-simplified-formulation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.design_docs/optimizer-simplified-formulation.md b/.design_docs/optimizer-simplified-formulation.md index fad0712..01b8e30 100644 --- a/.design_docs/optimizer-simplified-formulation.md +++ b/.design_docs/optimizer-simplified-formulation.md @@ -42,7 +42,7 @@ Each summarization strategy takes an input stream of metrics and computes summar ## Objective -$$\min \sum_{s \in S} y_s \cdot \operatorname{ingest\_cost}(s) \ + \ \sum_{r \in R,\ s \in S} x_{r,s} \cdot f_r \cdot \operatorname{query\_cost}(s, r)$$ +$$\min \sum_{s \in S} y_s \cdot \text{ingest\_cost}(s) \ + \ \sum_{r \in R,\ s \in S} x_{r,s} \cdot f_r \cdot \text{query\_cost}(s, r)$$ Both terms are cost rates (cost/sec). $f_r$ converts the per-query `query_cost` into a rate commensurate with the continuously-accruing `ingest_cost`. From 135b293c4d2d7daa4d5a4e6f2e86bdb17ea7946d Mon Sep 17 00:00:00 2001 From: Milind Srivastava Date: Mon, 29 Jun 2026 14:29:12 -0400 Subject: [PATCH 4/5] bug fix --- .design_docs/optimizer-simplified-formulation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.design_docs/optimizer-simplified-formulation.md b/.design_docs/optimizer-simplified-formulation.md index 01b8e30..ccf9b51 100644 --- a/.design_docs/optimizer-simplified-formulation.md +++ b/.design_docs/optimizer-simplified-formulation.md @@ -42,7 +42,7 @@ Each summarization strategy takes an input stream of metrics and computes summar ## Objective -$$\min \sum_{s \in S} y_s \cdot \text{ingest\_cost}(s) \ + \ \sum_{r \in R,\ s \in S} x_{r,s} \cdot f_r \cdot \text{query\_cost}(s, r)$$ +$$\min \sum_{s \in S} y_s \cdot \mathrm{ingest\_cost}(s) \ + \ \sum_{r \in R,\ s \in S} x_{r,s} \cdot f_r \cdot \mathrm{query\_cost}(s, r)$$ Both terms are cost rates (cost/sec). $f_r$ converts the per-query `query_cost` into a rate commensurate with the continuously-accruing `ingest_cost`. From f992062b889ccfd09a49bc4722a42a051f7262d9 Mon Sep 17 00:00:00 2001 From: Milind Srivastava Date: Mon, 29 Jun 2026 14:40:24 -0400 Subject: [PATCH 5/5] clarified assumption --- .design_docs/optimizer-mip-formulation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.design_docs/optimizer-mip-formulation.md b/.design_docs/optimizer-mip-formulation.md index 68d2579..4a648b3 100644 --- a/.design_docs/optimizer-mip-formulation.md +++ b/.design_docs/optimizer-mip-formulation.md @@ -9,7 +9,7 @@ For example - `avg_over_time(data[5m]) / quantile_over_time(0.5, data[5m])` is a ## Assumptions -**No cross-RQE result reuse.** $f_a = \sum_{r \in R_a} 1/T_r$ counts every RQE invocation of AQE $a$ as independent query work. In practice, if two RQEs referencing the same AQE co-fire (execute at the same moment), the system could compute $a$ once and share the result. This is not modeled. To do so would require: phase/offset information per RQE (to determine co-firing frequency), and a sharing decision variable (since co-firing RQEs may still query different time windows and cannot always share). The current model overestimates query cost, which is conservative. +**Cross-RQE reuse is not modeled in query cost.** $f_a = \sum_{r \in R_a} 1/T_r$ counts every RQE invocation of AQE $a$ as independent query work. In practice, if two RQEs referencing the same AQE co-fire (execute at the same moment), the system could compute $a$ once and share the result. This is not modeled. To do so would require: phase/offset information per RQE (to determine co-firing frequency), and a sharing decision variable (since co-firing RQEs may still query different time windows and cannot always share). The current model overestimates query cost, which is conservative. ## Inputs