-
Notifications
You must be signed in to change notification settings - Fork 377
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make Visible History explicit about the choice between "latest at" and "range" queries #4244
Comments
Either I'm misreading this or that's incorrect: range queries over a range A->B always return a snapshot of the compacted state at A-minus-1 and then iterate between A and B, irrelevant of how much data there is between A and B.
E.g. rr.set_time_sequence("frame", 42)
rr.log("mylogs", rr.Text("hello"))
rr.log("mylogs", rr.Text("world"))
I very much want to clarify all of this and actually meant to open an issue about this, but not by separating them... on the contrary, by merging all query kinds into just one single configurable query type. 😅 |
Thanks for the clarifications, it would actually be shocking if I had the details right :)
This is fine. What's important is that:
No constraints on the query-ies API, so long as it works to implement the behaviour modelled by (1). Worth remembering that our language around queries (latest at vs. range vs. strides, etc.) might/should be slightly different in a user-facing context (i.e. blueprint props data structure and UI, where we might have various "types of queries") vs. in a data-store context (single "configurable" query into the store). |
Example of phenomenon inherent to our current query model: range_vs_latest_at_queries.mp4 |
Range queries don't have this weird behavior anymore (they are now multi-tenant proof). |
Given time bounds A and B, our current querying model consist of "everything logged between A and B, if empty then whatever logged just before A", aka "latest at" and "range" semantics are fused. A "latest at" query are currently used when "A = B" instead of "range" query (actually only if "A = B = current time" IIRC), but that can be seen as an optimisation, as a "range" query with the same bounds would lead to the same result.
We must clarify the querying model and separate these semantics from each other. The query should either be "latest at A" or "range between A and B", the latter without leaking latest at semantics.
This involves changes in multiple areas:
{ latest_at, range }
enumThis change can be seen as a starting point towards an even richer query ecosystem, e.g.:
The text was updated successfully, but these errors were encountered: