-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Combining filter rewrite and skip list to optimize sub aggregation #19573
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
base: main
Are you sure you want to change the base?
Conversation
…ing sub aggregation Signed-off-by: Ankit Jain <[email protected]>
Signed-off-by: Ankit Jain <[email protected]>
Signed-off-by: Ankit Jain <[email protected]>
|
❌ Gradle check result for 82bc95d: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
Signed-off-by: Ankit Jain <[email protected]>
|
❌ Gradle check result for aff3dc6: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
Signed-off-by: Ankit Jain <[email protected]>
Signed-off-by: Ankit Jain <[email protected]>
|
❌ Gradle check result for eaf7e52: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
Signed-off-by: Ankit Jain <[email protected]>
|
{"run-benchmark-test": "id_3"} |
|
{"run-benchmark-test": "id_12"} |
| LeafBucketCollector sub = null; | ||
| if (collectableSubAggregators instanceof BFSCollector bfsCollector) { | ||
| sub = bfsCollector.getBFSLeafCollector(leafCtx); | ||
| } else { | ||
| sub = collectableSubAggregators.getLeafCollector(leafCtx); | ||
| } |
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.
imo, this should be the other way around. The sub collector should be able to check if the parent is implementation of BFSCollector. Maybe somehow know that the invocation is from SubAggRangeCollector ?
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.
As per current API there's the called collector doesn't know who is calling, i.e. there is a parent but that will be RangeCollector and not SubAggRangeCollector. I could add some logic on RangeCollector to ask if its precompute path.
Another option is inspecting the stack trace, but feel even more hacky, especially since its all OS code.
|
❌ Gradle check result for 7c05efe: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
...c/main/java/org/opensearch/search/aggregations/bucket/histogram/DateHistogramAggregator.java
Show resolved
Hide resolved
...c/main/java/org/opensearch/search/aggregations/bucket/histogram/DateHistogramAggregator.java
Show resolved
Hide resolved
|
{"run-benchmark-test": "id_12"} |
|
The Jenkins job url is https://build.ci.opensearch.org/job/benchmark-pull-request/5064/ . Final results will be published once the job is completed. |
Benchmark ResultsBenchmark Results for Job: https://build.ci.opensearch.org/job/benchmark-pull-request/5064/
|
Benchmark Baseline Comparison ResultsBenchmark Results for Job: https://build.ci.opensearch.org/job/benchmark-compare/196/
|
|
❌ Gradle check result for 1d97bee: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
|
❌ Gradle check result for d8448f5: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
Description
This change aims at optimizing the sub aggregation by leveraging multi range traversal for top level aggregation, and skip list for the sub aggregation.
I have copied over the
BitSetDocIdStreamclass in OpenSearch from Lucene for now as it is not public, but should look at eventually getting rid of it.Related Issues
Related to #17447, #19384
Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.