-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Switch percentiles implementation to MergingDigest #18124
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
Switch percentiles implementation to MergingDigest #18124
Conversation
0f72ce4 to
852c178
Compare
|
❌ Gradle check result for 852c178: 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: Peter Alfonsi <petealft@amazon.com>
852c178 to
4599cff
Compare
|
On further thought I will add some tests around serialization + serialization inter-version compatibility. Both classes provide their own serialization methods. Probably the most logical thing to do would be to add a version check, and for < 3.1 use the preexisting logic assuming |
|
❌ Gradle check result for 4599cff: 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: Peter Alfonsi <peter.alfonsi@gmail.com>
…t#18124) --------- Signed-off-by: Peter Alfonsi <petealft@amazon.com> Signed-off-by: Peter Alfonsi <peter.alfonsi@gmail.com> Co-authored-by: Peter Alfonsi <petealft@amazon.com>
…t#18124) --------- Signed-off-by: Peter Alfonsi <petealft@amazon.com> Signed-off-by: Peter Alfonsi <peter.alfonsi@gmail.com> Co-authored-by: Peter Alfonsi <petealft@amazon.com>
…h-project#18124)" This reverts commit 22a6194.
…h-project#18124)" This reverts commit 22a6194. Signed-off-by: Peter Alfonsi <petealft@amazon.com>
…h-project#18124)" (opensearch-project#18497) --------- Signed-off-by: Peter Alfonsi <petealft@amazon.com> Co-authored-by: Peter Alfonsi <petealft@amazon.com>
…h-project#18124)" (opensearch-project#18497) --------- Signed-off-by: Peter Alfonsi <petealft@amazon.com> Co-authored-by: Peter Alfonsi <petealft@amazon.com>
…18497) (#18517) --------- (cherry picked from commit afb08a0) Signed-off-by: Peter Alfonsi <petealft@amazon.com> Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Peter Alfonsi <petealft@amazon.com>
…t#18124) --------- Signed-off-by: Peter Alfonsi <petealft@amazon.com> Signed-off-by: Peter Alfonsi <peter.alfonsi@gmail.com> Co-authored-by: Peter Alfonsi <petealft@amazon.com>Signed-off-by: TJ Neuenfeldt <tjneu@amazon.com>
…h-project#18124)" (opensearch-project#18497) --------- Signed-off-by: Peter Alfonsi <petealft@amazon.com> Co-authored-by: Peter Alfonsi <petealft@amazon.com>Signed-off-by: TJ Neuenfeldt <tjneu@amazon.com>
…t#18124) --------- Signed-off-by: Peter Alfonsi <petealft@amazon.com> Signed-off-by: Peter Alfonsi <peter.alfonsi@gmail.com> Co-authored-by: Peter Alfonsi <petealft@amazon.com>
…h-project#18124)" (opensearch-project#18497) --------- Signed-off-by: Peter Alfonsi <petealft@amazon.com> Co-authored-by: Peter Alfonsi <petealft@amazon.com>
…t#18124) --------- Signed-off-by: Peter Alfonsi <petealft@amazon.com> Signed-off-by: Peter Alfonsi <peter.alfonsi@gmail.com> Co-authored-by: Peter Alfonsi <petealft@amazon.com>
…h-project#18124)" (opensearch-project#18497) --------- Signed-off-by: Peter Alfonsi <petealft@amazon.com> Co-authored-by: Peter Alfonsi <petealft@amazon.com>
…ch-project#18124)" (opensearch-project#18497) This reverts commit afb08a0. Signed-off-by: Peter Alfonsi <petealft@amazon.com>
…ch-project#18124)" (opensearch-project#19648) Signed-off-by: Peter Alfonsi <petealft@amazon.com> Co-authored-by: Peter Alfonsi <petealft@amazon.com>
…ch-project#18124)" (opensearch-project#19648) Signed-off-by: Peter Alfonsi <petealft@amazon.com> Co-authored-by: Peter Alfonsi <petealft@amazon.com>
Description
Switches the percentiles agg implementation from AVLTreeDigest to MergingDigest. MergingDigest is now the recommended implementation from the t-digest library, and we see significant speedups by switching to it. (See more details in the original issue). Some latencies from percentiles aggregations on http_logs:
Since the implementations extend the same abstract class
AbstractTDigest, this is a drag-and-drop change. Our extending classTDigestStatejust adds some StreamInput/StreamOutput methods, which use the result of thecentroids()andcentroidCount()methods which are overridden from the abstract class. I don't think we need additional tests. The existing tests in TDigestPercentilesAggregatorTests.java still pass after the change. However I will still mark this PR as a draft, please let me know if I'm missing something here...I also don't think we need any tuning of the sole parameter
compression, since in the library's methodcreateDigestthat creates a digest of the default implementation, it doesn't modify the inputcompressionbased on which implementation it's actually using.Related Issues
Resolves #18122
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.