Uh oh!
There was an error while loading. Please reload this page.
ARROW-15282: [C++][FlightRPC] Split data methods from the underlying transport - #12465
ARROW-15282: [C++][FlightRPC] Split data methods from the underlying transport#12465lidavidm wants to merge 30 commits into
Conversation
TODOs
|
0cfb0dd to
4b20d53Comparefe5f27b to
d5ea2f8Comparelidavidm
commented
Feb 23, 2022
CC @cyb70289 if you have a chance to take a look (no pressure - this is a pretty large PR) |
cyb70289
left a comment
There was a problem hiding this comment.
Looks great ! Some nits in comments.
Will test the PR at my side. Thanks.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
cyb70289
left a comment
There was a problem hiding this comment.
LGTM.
On my test machine, DoPutLargeBatch often costs 10s to finish. It's not related to this PR. I've filed a jira issue: https://issues.apache.org/jira/browse/ARROW-15793
lidavidm
commented
Feb 28, 2022
Thanks for tracking that down to the original PR. Removing the reset() fixes things. I also noticed FlightClient::Close() wasn't bound to ClientTransportImpl::Close() so that has also been fixed. |
Uh oh!
There was an error while loading. Please reload this page.
pitrou
commented
Mar 1, 2022
The responsibilities on the server side are difficult to understand. It looks like they are shared between 3 or 4 different classes ( |
pitrou
commented
Mar 1, 2022
Also, from a file organization standpoint, I would expect the gRPC-specific parts to be in their own files and named perhaps |
lidavidm
commented
Mar 1, 2022
I can try to document it better but effectively the layers are:
Ideally transports wouldn't deal with FlightServerBase but I don't want to go through and wrap all the non-data methods quite yet. But effectively, a transport only implements ServerTransportImpl. It's just that the gRPC code is still with the rest of the Flight code; would it be easier if I went ahead and split them out? FlightService::Serivce/FlightGrpcServiceImpl are gRPC specific |
lidavidm
commented
Mar 1, 2022
Ok, that should be doable |
lidavidm
commented
Mar 1, 2022
I should also add a doc page for transports (and the Flight documentation is generally lacking; I should take the time to clean things up) |
… into transport subdir
…sting when necessary
cyb70289
commented
Mar 11, 2022
I promise this is my last comment :) |
lidavidm
commented
Mar 11, 2022
Thanks, I thought I checked but apparently not! |
Benchmark runs are scheduled for baseline = dfca6a7 and contender = bb65225. bb65225 is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
lidavidm
commented
Mar 11, 2022
Thank you both for the reviews! |
Defines interfaces to add new network transports to Arrow Flight, and rewrite the gRPC implementation in terms of these interfaces. The bulk of the new APIs are in
transport.h. Where possible, code has been factored out so that transports have to implement as little as possible.