Hey David, I think this proposal makes a lot of sense. I like it and the possibility of remote compute via arrow buffers. One thing that would help me would be a concrete example of the API in a real life use case. Also, what would the client experience be in terms of sync vs asyc? Would the client block till the bidirectional call return ie c = flight.vector_mult(a, b) or would the client wait to be signaled that computation was done. If the later how is that different from a DoPut then DoGet? I suppose that this could be implemented without extending the RPC interface but rather by a function/util?
Best, Ryan On Sun, Oct 13, 2019 at 9:24 PM David Li <li.david...@gmail.com> wrote: > Hi all, > > We've been using Flight quite successfully so far, but we have > identified a new use case on the horizon: being able to both send and > retrieve Arrow data within a single RPC call. To that end, I've > written up a proposal for a new RPC method: > > https://docs.google.com/document/d/1Hh-3Z0hK5PxyEYFxwVxp77jens3yAgC_cpp0TGW-dcw/edit?usp=sharing > > Please let me know if you can't view or comment on the document. I'd > appreciate any feedback; I think this is a relatively straightforward > addition - it is essentially "DoPutThenGet". > > This is a format change and would require a vote. I've decided to > table the other format change I had proposed (on DoPut), as it doesn't > functionally change Flight, just the interpretation of the semantics. > > Thanks, > David > -- Ryan Murray | Principal Consulting Engineer +447540852009 | rym...@dremio.com <https://www.dremio.com/> Check out our GitHub <https://www.github.com/dremio>, join our community site <https://community.dremio.com/> & Download Dremio <https://www.dremio.com/download>