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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to