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

Aggregation filter rewrite optimization follow up #15078

Conversation

finnegancarroll
Copy link
Contributor

@finnegancarroll finnegancarroll commented Aug 2, 2024

Description

Follow up on filter rewrite optimization work. See: #13317, #13865, #14464.
The filter rewrite optimization path for aggregations is currently disabled when a sub aggregation is present. In this case we default back to the iterative doc values approach of collecting docs into our aggregation buckets.

This change adds support for sub aggregations by collecting doc ids into our sub aggregation while traversing the PointValue.Tree. While we are still considering each doc id, we expect a modest performance boost using the PointValue.Tree.

Related Issues

Resolves #[Issue number to be closed when this PR is merged]
#12602

Check List

  • Functionality includes testing.
  • API changes companion pull request created, if applicable.
  • Public documentation issue/PR created, if applicable.

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.

bowenlan-amzn and others added 30 commits June 19, 2024 15:50
Split the single Helper classes and move the classes into a new package for any optimization we introduced for search path.
Rename the class name to make it more straightforward and general

Signed-off-by: bowenlan-amzn <[email protected]>
refactor the canOptimize logic
sort out the basic rule about how to provide data from aggregator, and where to put common logic

Signed-off-by: bowenlan-amzn <[email protected]>
refactor the data provider and try optimize logic

Signed-off-by: bowenlan-amzn <[email protected]>
Signed-off-by: bowenlan-amzn <[email protected]>
extract segment match all logic

Signed-off-by: bowenlan-amzn <[email protected]>
Signed-off-by: bowenlan-amzn <[email protected]>
inline class

Signed-off-by: bowenlan-amzn <[email protected]>
Signed-off-by: bowenlan-amzn <[email protected]>
Signed-off-by: bowenlan-amzn <[email protected]>
Signed-off-by: bowenlan-amzn <[email protected]>
Signed-off-by: bowenlan-amzn <[email protected]>
package name -> filterrewrite
move tree traversal logic to new class
add documentation for important abstract methods
add sub class for composite aggregation bridge

Signed-off-by: bowenlan-amzn <[email protected]>
…oAgg + AutoDateHistoAgg + CompositAgg

Signed-off-by: Finn Carroll <[email protected]>
Signed-off-by: Finn Carroll <[email protected]>
Copy link
Contributor

github-actions bot commented Aug 2, 2024

❌ Gradle check result for 5c713c6: 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?

@finnegancarroll finnegancarroll changed the title Updated sub agg supp Aggregation filter rewrite optimization follow up Aug 2, 2024
@finnegancarroll
Copy link
Contributor Author

Accidentally made a duplicate pr - Closing.
Changes at #15253

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants