You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by "lidavidm (via GitHub)" <gi...@apache.org> on 2023/06/21 16:36:46 UTC

[GitHub] [arrow] lidavidm commented on pull request #36205: GH-16604: [C++][FlightRPC] Add async Flight client

lidavidm commented on PR #36205:
URL: https://github.com/apache/arrow/pull/36205#issuecomment-1601169751

   CC @pitrou @zeroshade @wjones127 if you were interested in async APIs.
   
   I had to add a small hook to ipc::StreamDecoder. I think it would be preferable to extract a formal "IPC state machine" from ipc/reader.cc and make sure that it's consistent with/used by both StreamDecoder and RecordBatchStreamReader.
   
   TODOs:
   
   - [ ] Figure out how to handle writes (DoPut, DoExchange)
   - [ ] Switch to using TransportStatus to report errors (and maybe provide an arrow::Status on the side, or convert it to an error detail; see below)
   - [ ] Add RPC error details to TransportStatus (this is part of Flight RPC already, but adding it to TransportStatus will help formalize it)
   - [ ] Add tests
   
   Things not handled here:
   
   - [ ] Server APIs
   - [ ] Python bindings (though I do want to sketch out how this works with asyncio or AnyIO; it seems community may prefer AnyIO: https://github.com/apache/arrow-adbc/issues/224)
   - [ ] Enabling this to work with StopToken (we need StopToken to be able to call a callback, I think)
   - [ ] Per-read timeouts (i.e. allow a long/unlimited timeout for a streaming RPC, but stop the RPC if the server does not send a message for a long time)
   - [ ] Making the sync API wrap the async API


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org