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

[Core] Add gRPC streaming support. #15219

Open
clarkzinzow opened this issue Apr 9, 2021 · 0 comments
Open

[Core] Add gRPC streaming support. #15219

clarkzinzow opened this issue Apr 9, 2021 · 0 comments
Assignees
Labels
enhancement Request for new feature and/or capability P2 Important issue, but not time-critical

Comments

@clarkzinzow
Copy link
Contributor

clarkzinzow commented Apr 9, 2021

Our current gRPC layer only supports unary RPCs, while some of our current communication patterns, such as object location subscriptions, actor method calls, and within-lease task submissions, and future communication patterns, such as a non-Redis GCS-based pub/sub, are best suited to streaming RPCs. Streaming RPCs take full advantage of HTTP/2, streaming requests and/or responses within an existing HTTP/2 request/response, ridding ourselves of the overhead of e.g. creating a new HTTP/2 request for each unary call. Moreover, we have ordering guarantees within a single RPC, which saves us from RPC reordering issues that we may encounter when using unary RPCs that would normally have to be handled in the application-level protocol.

The current gRPC layer is completion queue based; we can either extend the completion queue state machines and client/server calls to support streaming RPCs, or we can try out the experimental (and soon to be stable) callback API. I'm leaning towards trying the latter first.

@clarkzinzow clarkzinzow self-assigned this Apr 9, 2021
@clarkzinzow clarkzinzow added P2 Important issue, but not time-critical enhancement Request for new feature and/or capability labels Apr 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Request for new feature and/or capability P2 Important issue, but not time-critical
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant