Production 1-query timing estimator (R&D phase)
Goal
As a user of DLE and/or Joe bot, I want to see a timing estimate for production.
Why: Depending on configuration, resources, and state of caches, DLE can execute queries significantly longer than production Postgres.
TODO / How to implement
- we need to provide 2 numbers always, for cold and hot cache state. (Display as a range:
Production timing estimate: XX-YY ms) -
exec(DDL): count buffers read and written (either using/proc/...orpg_stat_database), and based on those numbers and knowledge about prod, provide ... -
explain: ... - how do we "learn" how production behaves? (calibration)
- should we provide "error" in addition to estimate?
Acceptance criteria
- Joe users see production timing estimate for both
explainandexec. Questions to finalize:
-
UI: wording, put it into the summary -
Are we going to show wait_even_type histogram right now? For every Joe's response? -
(implementation) which event types do we need to involve in the formula? -
DOCUMENTATION docs#42 (closed) -
link to "how it works" (users should be able to find it easily: look at Summary -> think "how" -> go read the doc)
- DLE users – ??? (option: CI observer also provides estimates for ???)
Edited by Artyom Kartasov