-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Stream Transport implementation using Arrow Flight #18424
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
Stream Transport implementation using Arrow Flight #18424
Conversation
❌ Gradle check result for 9a8ac93: 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 6c0eb1f: 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 4927302: 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 8818f6e: 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? |
3ede3a2
to
fa7a38b
Compare
fa7a38b
to
4461c75
Compare
❌ Gradle check result for 4461c75: 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 4461c75: 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 2233764: 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? |
c256b09
to
f26c9f8
Compare
❌ Gradle check result for f26c9f8: 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 f0d0c75: 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 46afedd: 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 f09dc7f: 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? |
3254ed5
to
70af3e2
Compare
❌ Gradle check result for 70af3e2: 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? |
70af3e2
to
a247bbf
Compare
❌ Gradle check result for a247bbf: 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? |
a247bbf
to
237d39e
Compare
Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com>
❌ Gradle check result for 275ad4d: 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 275ad4d: 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 9b1414e: 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? |
server/src/main/java/org/opensearch/transport/nativeprotocol/NativeOutboundHandler.java
Outdated
Show resolved
Hide resolved
...ns/arrow-flight-rpc/src/main/java/org/opensearch/arrow/flight/stats/FlightStatsResponse.java
Show resolved
Hide resolved
Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com>
a841010
to
687ec2d
Compare
❌ Gradle check result for 687ec2d: 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? |
❌ Gradle check result for 687ec2d: 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? |
…t#18424) * vectorized version of StreamInput and StreamOutput Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Fix for the fetch phase optimization Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Fix issues at flight transport layer; Add middleware for header management Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Fix race condition with header in flight transport Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Refactor; gradle check fixes Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Add stats API Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Stats API refactor; Cancellation of stream through StreamTransportResponse Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Added base test class for stream transport and tests for FlightClientChannel Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Fix tests due to null stream transport passed to StubbableTransport Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Fix the failing tests due to connection profile missing STREAM type Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * cancellation and timeout fixes; fixes for resource cleanup; more tests; documentation update Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Increase latch await time for early cancellation test to fix flakiness Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * improve javadocs; code refactor Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * fix issues in flight client channel; added docs on usage; standardize the exceptions Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * pass along request Id from OutboundHandler to TcpChannel; refactor FlightTransportResponse for header management; more tests; update docs Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * code coverage Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * API changes for stream transport * extensibility for transport classes * StreamTransport and StreamTransportService implementation * streaming based search action Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * update docs Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Standardize error handling Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * stream transport metrics and integration Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * unit tests for metrics Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Fixes related to security and FGAC Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Chaos IT and fixes on resource leaks like reader context cleanup after search Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * register stream default timeout setting Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * test stability and latch timeout settings Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * pr comment: nitpick Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * aggregation ser/de changes not required anymore Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Add changelog Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Allow flight server to bind to multiple addresses Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * example plugin to demonstrate defining stream based transport action Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * support for slow logs, remove unnecessary thread switch to flight client Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Make FlightServerChannel threadsafe Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Allocator related tuning Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Attempt to fix flaky metric test Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Improve test coverage Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * fix documentation Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Add @experimentalapi annotation Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Share TaskManager and remoteClientService between stream and regular transport service Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * fix tests Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * address pr comment Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * fix test Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Update documentation Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Fix synchronization with multiple batches written concurrently at server Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> * Address PR comment Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com> --------- Signed-off-by: Rishabh Maurya <rishabhmaurya05@gmail.com>
Description
Stream transport (#18722 | RFC: #18425) implementation using Arrow Flight RPC. This is in continuation to #18722 and currently contains all its diff as well.
Key features -
Testing
The whole transport is behind a feature flag, so no impact when plugin is not installed or feature flag is disabled (default).
Tests pending -
I have found the whole transport layer in OpenSearch to be quite complicated and this is a giant change. Thus, I'm sharing my cheat sheet for the reviewers (or anyone interested in OpenSearch's transport) to understand the existing flow and how the flow is modified to support stream transport using Flight in this PR -
2. Inbound Server: Netty4 vs. Flight
3. Outbound Server: Netty4 vs. Flight
4. Inbound Client: Netty4 vs. Flight
Related Issues
Resolves #[Issue number to be closed when this PR is merged]
#18425
#17695
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.