-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Add experimental SIMD implementation of B-tree to round down dates #11194
Conversation
Compatibility status:Checks if related components are compatible with change 88b45a3 Incompatible componentsIncompatible components: [https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/custom-codecs.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/performance-analyzer-rca.git] Skipped componentsCompatible componentsCompatible components: [https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/geospatial.git] |
923022b
to
d03fc44
Compare
❌ Gradle check result for 923022b: 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 d03fc44: UNSTABLE
Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #11194 +/- ##
============================================
- Coverage 71.44% 71.38% -0.07%
+ Complexity 59397 59345 -52
============================================
Files 4923 4923
Lines 279178 279178
Branches 40581 40581
============================================
- Hits 199470 199283 -187
- Misses 63064 63274 +210
+ Partials 16644 16621 -23 ☔ View full report in Codecov by Sentry. |
d03fc44
to
a67c3d9
Compare
❕ Gradle check result for a67c3d9: UNSTABLE
Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure. |
bc42b6b
to
ee1e2a2
Compare
ee1e2a2
to
4432ec6
Compare
Signed-off-by: Ketan Verma <ketan9495@gmail.com>
4432ec6
to
550422c
Compare
❕ Gradle check result for 0edb311: UNSTABLE
Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure. |
libs/common/src/test/java/org/opensearch/common/round/RoundableTests.java
Outdated
Show resolved
Hide resolved
libs/common/src/main/java20/org/opensearch/common/round/RoundableFactory.java
Show resolved
Hide resolved
This reverts commit 2e82d0a. Signed-off-by: Ketan Verma <ketan9495@gmail.com>
…on of unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com>
5336b6d
to
42eac9a
Compare
❕ Gradle check result for 5336b6d: UNSTABLE
Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure. |
❕ Gradle check result for 42eac9a: UNSTABLE
Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure. |
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.
Thanks @ketanv3 for making this changes!
libs/common/src/main/java20/org/opensearch/common/round/RoundableFactory.java
Show resolved
Hide resolved
libs/common/src/main/java20/org/opensearch/common/round/BtreeSearcher.java
Show resolved
Hide resolved
@andrross Are you still looking at this PR? |
@reta Looks like I missed this one :( Are you still good with this? I've rebased against main so it should be good to merge once the check is green. |
❕ Gradle check result for 88b45a3: UNSTABLE
Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure. |
…11194) * Add experimental SIMD implementation of B-tree to round down dates Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Use system properties in favor of feature flags to remove dependency on the server module Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Removed Java 20 test sources to simplify builds Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Remove the use of forbidden APIs in unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Migrate to the recommended usage for custom test task classpath Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Switch benchmarks module to multi-release one Signed-off-by: Andriy Redko <andriy.redko@aiven.io> * Add JMH annotation processing for JDK-20+ sources Signed-off-by: Andriy Redko <andriy.redko@aiven.io> * Make JMH annotations consistent across sources Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Improve execution of Roundable unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Revert "Improve execution of Roundable unit-tests" This reverts commit 2e82d0a. Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Add 'forced' as a possible feature flag value to simplify the execution of unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> --------- Signed-off-by: Ketan Verma <ketan9495@gmail.com> Signed-off-by: Andriy Redko <andriy.redko@aiven.io> Co-authored-by: Andriy Redko <andriy.redko@aiven.io> Co-authored-by: Andrew Ross <andrross@amazon.com> (cherry picked from commit b424aaf) Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…11194) * Add experimental SIMD implementation of B-tree to round down dates Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Use system properties in favor of feature flags to remove dependency on the server module Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Removed Java 20 test sources to simplify builds Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Remove the use of forbidden APIs in unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Migrate to the recommended usage for custom test task classpath Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Switch benchmarks module to multi-release one Signed-off-by: Andriy Redko <andriy.redko@aiven.io> * Add JMH annotation processing for JDK-20+ sources Signed-off-by: Andriy Redko <andriy.redko@aiven.io> * Make JMH annotations consistent across sources Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Improve execution of Roundable unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Revert "Improve execution of Roundable unit-tests" This reverts commit 2e82d0a. Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Add 'forced' as a possible feature flag value to simplify the execution of unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> --------- Signed-off-by: Ketan Verma <ketan9495@gmail.com> Signed-off-by: Andriy Redko <andriy.redko@aiven.io> Co-authored-by: Andriy Redko <andriy.redko@aiven.io> Co-authored-by: Andrew Ross <andrross@amazon.com> (cherry picked from commit b424aaf) Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…11194) (#11924) * Add experimental SIMD implementation of B-tree to round down dates * Use system properties in favor of feature flags to remove dependency on the server module * Removed Java 20 test sources to simplify builds * Remove the use of forbidden APIs in unit-tests * Migrate to the recommended usage for custom test task classpath * Switch benchmarks module to multi-release one * Add JMH annotation processing for JDK-20+ sources * Make JMH annotations consistent across sources * Improve execution of Roundable unit-tests * Revert "Improve execution of Roundable unit-tests" This reverts commit 2e82d0a. * Add 'forced' as a possible feature flag value to simplify the execution of unit-tests --------- (cherry picked from commit b424aaf) Signed-off-by: Ketan Verma <ketan9495@gmail.com> Signed-off-by: Andriy Redko <andriy.redko@aiven.io> 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: Andriy Redko <andriy.redko@aiven.io> Co-authored-by: Andrew Ross <andrross@amazon.com>
…pensearch-project#11194) * Add experimental SIMD implementation of B-tree to round down dates Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Use system properties in favor of feature flags to remove dependency on the server module Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Removed Java 20 test sources to simplify builds Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Remove the use of forbidden APIs in unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Migrate to the recommended usage for custom test task classpath Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Switch benchmarks module to multi-release one Signed-off-by: Andriy Redko <andriy.redko@aiven.io> * Add JMH annotation processing for JDK-20+ sources Signed-off-by: Andriy Redko <andriy.redko@aiven.io> * Make JMH annotations consistent across sources Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Improve execution of Roundable unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Revert "Improve execution of Roundable unit-tests" This reverts commit 2e82d0a. Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Add 'forced' as a possible feature flag value to simplify the execution of unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> --------- Signed-off-by: Ketan Verma <ketan9495@gmail.com> Signed-off-by: Andriy Redko <andriy.redko@aiven.io> Co-authored-by: Andriy Redko <andriy.redko@aiven.io> Co-authored-by: Andrew Ross <andrross@amazon.com>
…pensearch-project#11194) * Add experimental SIMD implementation of B-tree to round down dates Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Use system properties in favor of feature flags to remove dependency on the server module Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Removed Java 20 test sources to simplify builds Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Remove the use of forbidden APIs in unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Migrate to the recommended usage for custom test task classpath Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Switch benchmarks module to multi-release one Signed-off-by: Andriy Redko <andriy.redko@aiven.io> * Add JMH annotation processing for JDK-20+ sources Signed-off-by: Andriy Redko <andriy.redko@aiven.io> * Make JMH annotations consistent across sources Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Improve execution of Roundable unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Revert "Improve execution of Roundable unit-tests" This reverts commit 2e82d0a. Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Add 'forced' as a possible feature flag value to simplify the execution of unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> --------- Signed-off-by: Ketan Verma <ketan9495@gmail.com> Signed-off-by: Andriy Redko <andriy.redko@aiven.io> Co-authored-by: Andriy Redko <andriy.redko@aiven.io> Co-authored-by: Andrew Ross <andrross@amazon.com>
…pensearch-project#11194) * Add experimental SIMD implementation of B-tree to round down dates Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Use system properties in favor of feature flags to remove dependency on the server module Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Removed Java 20 test sources to simplify builds Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Remove the use of forbidden APIs in unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Migrate to the recommended usage for custom test task classpath Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Switch benchmarks module to multi-release one Signed-off-by: Andriy Redko <andriy.redko@aiven.io> * Add JMH annotation processing for JDK-20+ sources Signed-off-by: Andriy Redko <andriy.redko@aiven.io> * Make JMH annotations consistent across sources Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Improve execution of Roundable unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Revert "Improve execution of Roundable unit-tests" This reverts commit 2e82d0a. Signed-off-by: Ketan Verma <ketan9495@gmail.com> * Add 'forced' as a possible feature flag value to simplify the execution of unit-tests Signed-off-by: Ketan Verma <ketan9495@gmail.com> --------- Signed-off-by: Ketan Verma <ketan9495@gmail.com> Signed-off-by: Andriy Redko <andriy.redko@aiven.io> Co-authored-by: Andriy Redko <andriy.redko@aiven.io> Co-authored-by: Andrew Ross <andrross@amazon.com> Signed-off-by: Shivansh Arora <hishiv@amazon.com>
Description
In the date histogram aggregation, the timestamp value from each hit must be rounded down to the nearest interval (year, quarter, month, week, day, etc.) as defined in the search request. This rounded-down timestamp serves as the bucket key to aggregate results.
This PR aims to improve the performance of rounding-down dates using SIMD.
More details can be found here: #10392
Related Issues
Resolves #10392
Check List
Public documentation issue/PR createdBy 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.