-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
GH-36512: [C++][FlightRPC] Add async GetFlightInfo client call #36517
GH-36512: [C++][FlightRPC] Add async GetFlightInfo client call #36517
Conversation
Assuming the interface is roughly OK, I'd like to add basic Python bindings in the next PR (to make sure this interface adapts properly to asyncio/AnyIO) |
Ah, I always forget the windows export macros... |
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.
+1
d842802
to
b2c4774
Compare
TODOs:
|
Ah, it may be experimental before v1.40... grpc/grpc@3e19bab |
This has been ready for review for about 2 weeks. |
It looks like another commit introduced clang-format errors. |
Sorry. #37048 fixed the lint error. |
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.
Can we merge this because this is still an experimental API?
If we found a problem with this API later, we can fix it in follow-up tasks.
@@ -742,5 +740,7 @@ TEST(TransportErrorHandling, ReconstructStatus) { | |||
ASSERT_EQ(detail->extra_info(), "Binary error details"); | |||
} | |||
|
|||
// TODO: test TransportStatusDetail |
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.
Should we resolve this TODO in this PR or can we defer to a follow-up PR?
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.
I'd rather follow up in a separate PR since it appears the PR is already too large to get reviews
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.
Sorry for the delay, I was away. A couple of comments below but overall I agree it is good to go.
|
||
ASSERT_FINISHES_OK(future); | ||
} | ||
|
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.
It would be nice to add a test that 1) starts a long-running async operation 2) closes the client 3) checks the Future is well-behaved (perhaps it returns Status::Cancelled
?).
Perhaps in another PR?
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.
We cannot handle closing the client, as explained in the comment below - something has to own the resources at some point that isn't the Future itself.
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.
Fair enough, but I'll note that this sort of situation will come up easily in Python.
df885ea
to
e2738ac
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.
+1, let's go with this as this is already a nice addition.
@lidavidm Could you update |
After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit 9f183fc. There were no benchmark performance regressions. 🎉 The full Conbench report has more details. It also includes information about possible false positives for unstable benchmarks that are known to sometimes produce them. |
…pache#36517) ### Rationale for this change Async is a long-requested feature. ### What changes are included in this PR? Just the C++ implementation of async GetFlightInfo for the client. ### Are these changes tested? Yes. ### Are there any user-facing changes? Yes, new APIs. * Closes: apache#36512 Authored-by: David Li <[email protected]> Signed-off-by: David Li <[email protected]>
Rationale for this change
Async is a long-requested feature.
What changes are included in this PR?
Just the C++ implementation of async GetFlightInfo for the client.
Are these changes tested?
Yes.
Are there any user-facing changes?
Yes, new APIs.