-
Notifications
You must be signed in to change notification settings - Fork 257
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
Formalize behaviour of our many time histograms in a test suite #4215
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7113e35
to
331fcac
Compare
331fcac
to
45685e5
Compare
4 tasks
Wumpf
approved these changes
Nov 14, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
very clean, nice!
teh-cmc
added a commit
that referenced
this pull request
Nov 15, 2023
…4202) The upcoming `StoreView` works in global scope: by registering a view you subscribe to changes to _all_ `DataStore`s, including those that are yet to be created. This is very powerful as it allows views & triggers implementers to build cross-recording indices as well as be notified as soon as new recordings come in and go out. But it means that `StoreEvent`s must indicate which `DataStore` they originate from, which isn't possible today since the stores themselves don't know who they are to begin with. This trivial PR plumbs the `StoreId` all the way through so `DataStore`s know about their own ID. Also made `StoreGeneration` account for the GC counter while I was at it. --- Requires: - #4215 `DataStore` changelog PR series: - #4202 - #4203 - #4205 - #4206 - #4208 - #4209
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
exclude from changelog
PRs with this won't show up in CHANGELOG.md
⛃ re_datastore
affects the datastore itself
📺 re_viewer
affects re_viewer itself
🔨 testing
testing and benchmarks
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We maintain three different kinds of time histograms as part of our
EntityDb
:times_per_timeline
: instantiated once perEntityDb
, this keeps track of the number of distinct times per timeline that have been logged to, across all entities and components.prefix_times
: instantiated once perEntityTree
(and thus once per entity path), this keeps track of the number of raw components that have been logged per timestamp, across this entity and its recursive children.components
: instantiated once perEntityTree
perComponentName
, this keeps track of the number of raw components that have been logged per timestamp per component, just for this entity.For each of those we have to ask ourselves:
Clear
events?Answers to these questions are now formalized in a test suite, A) allowing us to easily iterate on them in the future and B) allowing me to match the current behavior in new event-driven
EntityTree
that's about to ship.This also highlighted a bug in the current implementation, which is fixed in the upcoming one.
Checklist