-
Notifications
You must be signed in to change notification settings - Fork 684
wip: splitting and caching instant queries for functions over range operators #13472
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
Draft
fionaliao
wants to merge
55
commits into
main
Choose a base branch
from
intermediate-cache-new
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from 18 commits
Commits
Show all changes
55 commits
Select commit
Hold shift + click to select a range
5bace8b
Add cache and sum over time splitting
fionaliao 970467b
Start integrating cache
fionaliao 2e0b840
Rough implementation of nextseries
fionaliao b99ca91
Start testing
fionaliao da87495
Tests pass
fionaliao e2b3b90
Wire up cache via engine
fionaliao 8daac53
Add range query tests
fionaliao 54b8c6d
Add optimisation pass and separate split operator
fionaliao 3852775
Stop creating new ring buffers
fionaliao 0112ea2
Refactor by looking at ir blocks requested rather than recalculating …
fionaliao 3192bb9
Simplify to instant queries only
fionaliao c7e74d0
Improving tests
fionaliao 57eb4f1
Make cache work in local demo
fionaliao 57de49e
Use filesystem in dev to test with generated blocks
fionaliao c52be0d
Cleanup
fionaliao e5ecd19
Fix build
fionaliao 82f5024
Ensure seriesmetadata memory is tracked
fionaliao 3ea29b9
Improve comments
fionaliao ab743f0
Add method to expand metadata slice returned from the pool
fionaliao d2b1214
Move cache init into streamingpromql package
fionaliao 0902517
Minor cleanup
fionaliao 3f5e0eb
Fix test post cache init move
fionaliao b6a77ff
Introduce query splitting materializer
fionaliao 1b1911d
Update pkg/streamingpromql/optimize/plan/querysplitting/optimization_…
fionaliao 5b2cbc7
Merge branch 'main' into intermediate-cache-new
fionaliao 59b00c1
Use google.protobuf.Duration for splitDurationMs
fionaliao f100964
make format-protobuf
fionaliao dae7ed0
Refactor cache to have potentially streamable interfaces
fionaliao 38c1bdf
Call Prepare() on uncached operators
fionaliao 3026f30
Run query splitting optimisation pass before CSE
fionaliao 3e73e77
Implement count_over_time (to test CSE interaction)
fionaliao f7b2961
Add CSE tests (not all passing yet)
fionaliao 1730442
Rough working implementation with cse
fionaliao 0aa6d45
Add tests in prep for storage time alignment
fionaliao d09f20e
Add QuerySplittingCacheKey() method
fionaliao 14cb530
Implement offset and @ adjustments
fionaliao d20ae99
Introduce generics for polymorphism
fionaliao 8564d7a
Add a few more function implementations and refactor
fionaliao c3f4923
Implement rate/increase
fionaliao b359f1f
Remove unused method
fionaliao c0610ab
Simplify time range params
fionaliao f14cbbd
Build fixes
fionaliao 2d6593a
Use new slice from pool when appending and need more capacity
fionaliao 86ffbe1
Clean up
fionaliao fe7c664
Remove version field (is part of cache key anyway)
fionaliao a61a9bd
Add more metrics and logging
fionaliao cc61c18
Merge branch 'main' into intermediate-cache-new
fionaliao d09cf2b
Don't allow smoothed and anchored modifiers to be split for now
fionaliao 368b791
Use reg param
fionaliao eafeb13
Add more stats
fionaliao fab2df0
Fix result getter infinite loop
fionaliao 267ca09
Improve logging
fionaliao dc73094
Fix rate combine when a middle split has no samples
fionaliao da99f81
Only run finalize if all actions succeeded
fionaliao c6da4b2
Add supported query plan version properly
fionaliao File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.