-
Notifications
You must be signed in to change notification settings - Fork 9.1k
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
Support out of order ingestion for native histograms #11220
Comments
Overall task list from discussion: Write path: start from headAppender.Append function @jesusvazquez notes:
head_append.go
|
Also assigning to @zenador and @krajorama to mark all the collaborators on this issue. |
Testing to see if this grants permission to assign |
From IRL discussion: we've decided that we do not need to support the of mixing different sample types (float/integer histogram/float histogram) in the OOO headchunk. This should make testing a bit simpler. |
From IRL discussion: Immediate goals in priority order for the code:
|
Counter reset between chunks test case discussion: It is theoretically possible to write such sequence of histogram samples:
When we query the samples back, something should detect that now the samples have a counter reset - I'm not sure if this should happen on chunk / chunk iterator level or simply somewhere in the PromQL engine (cc @beorn7 ) |
The PromQL engine simply looks at the |
Generally, it would be cool if we never end up with (counter) histogram chunks that have counter resets in the middle. (We have ruled that out so far, assuming that a histogram will change its bucket layout a lot after a reset so that handling that all in the same chunk is more expensive than cutting a new chunk. I'm not completely sure if it is even technically possible to encode a chunk with a counter reset in the middle. We definitely have created a lot of code around the invariant that there is never a counter reset within the same chunk. So keeping it that way would definitely be much much preferred.) But if all of the above is just about returning histogram samples from a state where things haven't been consolidated into one chunk, and they come from overlapping chunks or buffers, you could indeed simply return a |
Closing this as the code is merged, but note that this is a huge undertaking and it is quite likely that we will find bugs in the implementation. But those should be tracked in specific issues. Thanks everyone for all the work here. |
This feature will be released soon for normal float samples, and it would be really weird if we did not support it for histogram samples.
Update 14th June 2023: @krajorama and @jesusvazquez are starting to work on this issue.
The text was updated successfully, but these errors were encountered: