From 2a57287d89a696e93703fd62dc8ce4d370cc0c53 Mon Sep 17 00:00:00 2001 From: Shane Myrick Date: Wed, 29 May 2024 12:16:36 -0700 Subject: [PATCH 1/2] Add query plan multiplier --- .../TechNotes/RouterResourceEstimator.js | 29 ++++++++++++++++++- ...x => TN0045-router-resource-estimator.mdx} | 0 2 files changed, 28 insertions(+), 1 deletion(-) rename src/content/technotes/{TN0045-router_resource_estimator.mdx => TN0045-router-resource-estimator.mdx} (100%) diff --git a/src/components/TechNotes/RouterResourceEstimator.js b/src/components/TechNotes/RouterResourceEstimator.js index 683cd9b04..d6c9104ba 100644 --- a/src/components/TechNotes/RouterResourceEstimator.js +++ b/src/components/TechNotes/RouterResourceEstimator.js @@ -31,6 +31,7 @@ const RouterResourceEstimator = () => { const [peakRequestRatePerSecond, setPeakRequestRatePerSecond] = useState(''); const [baselineSubgraphLatency, setBaselineSubgraphLatency] = useState('100'); const [clientRequestSize, setClientRequestSize] = useState('0.1'); + const [averageQueryPlanFetchNodes, setAverageQueryPlanFetchNodes] = useState('1'); const [clientResponseSize, setClientResponseSize] = useState('0.1'); const [numberOfInstances, setNumberOfInstances] = useState('3'); const [baseMemory, setBaseMemory] = useState('100'); @@ -42,6 +43,8 @@ const RouterResourceEstimator = () => { const Ls = parseFloat(baselineSubgraphLatency) / 1000; const Sreq = parseFloat(clientRequestSize); const Sres = parseFloat(clientResponseSize); + // If you average more than 2 subgraphs fetches add a multiplier + const Sqp = parseFloat(averageQueryPlanFetchNodes) / 2 + 1; const I = parseFloat(numberOfInstances); const Mb = parseFloat(baseMemory); const Mq = parseFloat(queryPlannerMemory); @@ -60,7 +63,7 @@ const RouterResourceEstimator = () => { // Rate per vcpu, assuming 80% utilization const Rc = 0.8 / (L - Ls); // Memory usage per vcpu - const Mc = (Sreq + Sres) * Rc * L; + const Mc = (Sreq * Sqp + Sres) * Rc * L; // Number of vCPUs needed const vBaseline = Math.max(Math.round(R / Rc), 1); // Number of vCPUs needed for peak traffic @@ -174,6 +177,30 @@ const RouterResourceEstimator = () => { + // Client Request Query Plan Size + + + Average Request Query Plan Size + + + setAverageQueryPlanFetchNodes(value)} + > + + + + + + The average number of fetch nodes (subgraph calls) in your query plans + + + + // Client Response Size diff --git a/src/content/technotes/TN0045-router_resource_estimator.mdx b/src/content/technotes/TN0045-router-resource-estimator.mdx similarity index 100% rename from src/content/technotes/TN0045-router_resource_estimator.mdx rename to src/content/technotes/TN0045-router-resource-estimator.mdx From 4fc31a63dfdc0390902b88b8132b870ef152aad9 Mon Sep 17 00:00:00 2001 From: Shane Myrick Date: Wed, 29 May 2024 12:17:38 -0700 Subject: [PATCH 2/2] Allow floats --- src/components/TechNotes/RouterResourceEstimator.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/TechNotes/RouterResourceEstimator.js b/src/components/TechNotes/RouterResourceEstimator.js index d6c9104ba..0444e4a85 100644 --- a/src/components/TechNotes/RouterResourceEstimator.js +++ b/src/components/TechNotes/RouterResourceEstimator.js @@ -184,7 +184,7 @@ const RouterResourceEstimator = () => {