Skip to content
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

Streaming PromQL engine: binary arithmetic operations with one-to-one matching #8096

Merged
merged 45 commits into from
May 14, 2024
Merged
Changes from 1 commit
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
dfbd2c6
Add some test cases
charleskorn May 6, 2024
74f17a9
Enable upstream test cases for binary operators with one-to-one match…
charleskorn May 6, 2024
f909d55
Fix invalid test case
charleskorn May 8, 2024
3cba572
Make it clear that points are expected to be in timestamp order with …
charleskorn May 8, 2024
9ed7961
Enable relevant benchmarks
charleskorn May 8, 2024
3ef9607
Enable test cases for atan2
charleskorn May 8, 2024
67414c5
Initial (WIP) version of one-to-one matching
charleskorn May 8, 2024
81fd3e9
Update comment
charleskorn May 8, 2024
a24f632
Fix issue where `on` and `ignoring` are ignored
charleskorn May 8, 2024
a0c966e
Use correct terminology
charleskorn May 8, 2024
8183253
Fix issue where errors are lost if result is a matrix
charleskorn May 8, 2024
e2430bc
Add support for case where multiple different series contribute to on…
charleskorn May 8, 2024
c8438af
Add comment explaining when slices are returned to the pool
charleskorn May 8, 2024
1152fb7
Add further comment
charleskorn May 8, 2024
b9c6770
Remove redundant checks
charleskorn May 9, 2024
29698cd
Log output from benchmark binary if it fails
charleskorn May 9, 2024
dedf3e4
Don't limit the number of samples loaded in a query
charleskorn May 9, 2024
84b3a8e
Return point slices to the pool once we're done with them
charleskorn May 9, 2024
7465322
Split `SeriesMetadata` into smaller methods
charleskorn May 9, 2024
55fd653
Clarify comment
charleskorn May 9, 2024
c2d4946
Add extra benchmark
charleskorn May 9, 2024
ead5557
Add comment explaining tradeoff
charleskorn May 9, 2024
5162a1d
Rename `binaryOperationSeriesPair` to `binaryOperationOutputSeries`
charleskorn May 9, 2024
236f161
Add benchmark for the case where one side of a binary operation has m…
charleskorn May 9, 2024
7834b9e
Further simplify `SeriesMetadata` by moving more logic into `computeO…
charleskorn May 9, 2024
5555bb7
Sort output series to minimise the number of input series we need to …
charleskorn May 9, 2024
dc1457e
Add support for capturing CPU and memory profiles while running bench…
charleskorn May 9, 2024
9d4bc14
Reuse slices when computing result.
charleskorn May 9, 2024
825b4dc
Use bucketed pools with factor 2 rather than factor 10.
charleskorn May 10, 2024
957eb35
Merge branch 'main' into charleskorn/binary-operators
charleskorn May 10, 2024
e07463c
Add changelog entry
charleskorn May 10, 2024
bc557db
Fix flaky test.
charleskorn May 10, 2024
a23be64
Remove outdated comments
charleskorn May 10, 2024
7241678
Don't bother buffering series that won't be used.
charleskorn May 10, 2024
3c971f4
Clarify expected behaviour of Close
charleskorn May 10, 2024
053f3d3
Move `FallbackEngine` and `NotSupportedError` to their own package.
charleskorn May 10, 2024
3f1aa3a
Consolidate check for supported operator into one place
charleskorn May 10, 2024
20344f5
Use string of group labels as map key when constructing output series
charleskorn May 14, 2024
7751e87
Merge branch 'main' into charleskorn/binary-operators
charleskorn May 14, 2024
dac8815
Fix indentation
charleskorn May 14, 2024
a737a98
Add tests for sorting behaviour
charleskorn May 14, 2024
108ce4e
Reduce duplication in `favourRightSideSorter` and `favourRightSideSor…
charleskorn May 14, 2024
98c8f60
Fix linting
charleskorn May 14, 2024
5818cd1
Add tests for `binaryOperationSeriesBuffer`.
charleskorn May 14, 2024
61b59a1
Add test cases for `on` and `ignoring` with multiple labels
charleskorn May 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 4 additions & 2 deletions tools/benchmark-query-engine/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,15 @@ type app struct {
tempDir string
dataDir string
binaryPath string
cpuProfilePath string
memProfilePath string
ingesterAddress string
cleanup func()

count uint
testFilter string
listTests bool
justRunIngester bool
cpuProfilePath string
charleskorn marked this conversation as resolved.
Show resolved Hide resolved
memProfilePath string
}

func (a *app) run() error {
Expand Down Expand Up @@ -144,6 +144,8 @@ func (a *app) parseArgs() error {
flag.UintVar(&a.count, "count", 1, "run each benchmark n times")
flag.StringVar(&a.testFilter, "bench", ".", "only run benchmarks matching regexp")
flag.BoolVar(&a.listTests, "list", false, "list known benchmarks and exit")
flag.BoolVar(&a.justRunIngester, "start-ingester", false, "start ingester and wait, run no benchmarks")
flag.StringVar(&a.ingesterAddress, "use-existing-ingester", "", "use existing ingester rather than creating a new one")
flag.StringVar(&a.cpuProfilePath, "cpuprofile", "", "write CPU profile to file, only supported when running a single iteration of one benchmark")
flag.StringVar(&a.memProfilePath, "memprofile", "", "write memory profile to file, only supported when running a single iteration of one benchmark")

Expand Down
You are viewing a condensed version of this merge commit. You can view the full changes here.