-
Notifications
You must be signed in to change notification settings - Fork 2.3k
[GRPC][Geographic queries] Implement GRPC GeoBoundingBox, GeoDistance queries #19451
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
Conversation
Signed-off-by: Karen X <[email protected]>
d025f49 to
7c676dc
Compare
Signed-off-by: Karen X <[email protected]>
|
❕ Gradle check result for 7c676dc: 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 Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #19451 +/- ##
============================================
+ Coverage 72.96% 73.00% +0.03%
- Complexity 70178 70281 +103
============================================
Files 5695 5700 +5
Lines 321939 322140 +201
Branches 46580 46614 +34
============================================
+ Hits 234917 235173 +256
+ Misses 68096 68045 -51
+ Partials 18926 18922 -4 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
7c676dc to
78fe0eb
Compare
… queries Signed-off-by: Karen X <[email protected]>
78fe0eb to
6c241a8
Compare
Signed-off-by: Karen X <[email protected]>
fb1e107 to
33fa9b0
Compare
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.
The changes in this PR LGTM.
In general, I would really like to aim for a common place to do all ser/de. i.e. if an ActionRequest (or any serializable) object is modified then I want to write the serialization/deserialization once as is done in the Writeable.writeTo(StreamOutput out) or a constructor that accepts StreamInput.
It seems like we will now need to update many places when serializable objects are modified which increases the surface area for errors.
Serialization errors can be more difficult to catch because they arise in mixed clusters when nodes of different versions are trying to communicate with one another. If 2 nodes are not speaking the same language (i.e. serializing/deserializing what the other expects), then they throw exceptions.
To catch these issues as early as possible, OpenSearch does extensive backward compatibility (BWC) testing to run with different scenarios. In general it starts with 3 nodes of the old version and does a rolling upgrade by killing and restarting nodes one at a time. The nodes that are added are of the new version so it goes 1/3 upgraded, 2/3 upgraded and then fully upgraded and runs tests at each step along the way.
If there are not existing bwc tests utilizing the gPRC transport then I strongly urge that there is a strategy put together to add them.
|
Thanks @cwperks for the reviews.
One thing to clarify - grpc transport is only applicable to client-server communication not node-to-node, so we shuold not be seeing failures in node to node comms. Though depending on which node the client hits, it could have different serialization results which is not ideal. I think it is easy to catch gRPC breaking changes though - as a breaking protobuf change is quite evident (e.g. fields are renamed or renumbered or removed). I think what is the callenging is actually not to ensure grpc version x+1 does not introduce breaking changes from grpc version x; but rather, how to keep rest and grpc in sync. For this, for now we could consider something like this to handle it:
|
Signed-off-by: Karen X <[email protected]>
|
❌ Gradle check result for 7aaf591: null 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: Karen X <[email protected]>
|
❌ Gradle check result for 8f030a6: 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: Karen X <[email protected]>
|
❌ Gradle check result for 826dd69: 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: Karen X <[email protected]>
Signed-off-by: Karen X <[email protected]>
Signed-off-by: Karen X <[email protected]>
|
❌ Gradle check result for 5832bc1: 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: Karen X <[email protected]>
Signed-off-by: Karen X <[email protected]>
Signed-off-by: Karen X <[email protected]>
Signed-off-by: Karen X <[email protected]>
4bd7ff5 to
b7e6d83
Compare
|
❕ Gradle check result for b7e6d83: 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. |
… queries (opensearch-project#19451) * upgrade to protobufs 0.18.0 Signed-off-by: Karen X <[email protected]> * add tests Signed-off-by: Karen X <[email protected]> * [GRPC][Geographic queries] Implement GRPC GeoBoundingBox, GeoDistance queries Signed-off-by: Karen X <[email protected]> * package private Signed-off-by: Karen X <[email protected]> * remove duplicate from merge conflict Signed-off-by: Karen X <[email protected]> * add back changelog Signed-off-by: Karen X <[email protected]> * Update CHANGELOG.md Signed-off-by: Karen X <[email protected]> * spotless and fix merge conflict Signed-off-by: Karen X <[email protected]> --------- Signed-off-by: Karen X <[email protected]>
… queries (opensearch-project#19451) * upgrade to protobufs 0.18.0 Signed-off-by: Karen X <[email protected]> * add tests Signed-off-by: Karen X <[email protected]> * [GRPC][Geographic queries] Implement GRPC GeoBoundingBox, GeoDistance queries Signed-off-by: Karen X <[email protected]> * package private Signed-off-by: Karen X <[email protected]> * remove duplicate from merge conflict Signed-off-by: Karen X <[email protected]> * add back changelog Signed-off-by: Karen X <[email protected]> * Update CHANGELOG.md Signed-off-by: Karen X <[email protected]> * spotless and fix merge conflict Signed-off-by: Karen X <[email protected]> --------- Signed-off-by: Karen X <[email protected]>
Description
Stacked on top of #19447
Implement GRPC GeoBoundingBox, GeoDistance queries
Related Issues
Resolves #19450
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.