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
explain
andexec
. 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 ???)