1

According to the Arrow Flight protocol definition, a client(consumer) can let the server generate a flight stream through a specified descriptor in GetFlightInfo. And the flight stream will be available for the duration defined by the server(a flight service).

But it seems that there is no rpc message that 'releases' the flight stream that GetFlightInfo generated.

Since the client has no standard way to know or control the duration of the flight stream availability, it is impossible to implement a reliable client application.

And since the server has no standard way to know when the client is done with the flight stream, it is impossible to implement efficient flight stream management.

Of course, the duration can be published and the method can be implemented in a non-standard way by the client and server that know each other, but a general client (like a BI application) that uses a standard wrapper - for example, Apache Arrow Flight SQL, let alone a wrapper of wrapper: Apache Arrow Flight SQL JDBC driver - is out of luck.

Is there any standard way for a client(consumer) to release the flight stream that GetFlightInfo generated? If not, why did the designers choose not to support that feature?

zeodtr
  • 10,645
  • 14
  • 43
  • 60
  • We didn't aim to cover every single use case in one go. Keep an eye on the mailing list; I am working on a proposal to add explicit expiration times to Flight, and explicit refresh/release operations to Flight SQL, to cover this use case. https://arrow.apache.org/community/ – li.davidm Jan 24 '23 at 23:50
  • That said: since you've asked a few questions now, I do appreciate feedback like this, and I hope to see you around the mailing list once the proposal is up and ready (hopefully soon; it's written up, but needs a bit of refinement before I post it) – li.davidm Jan 24 '23 at 23:51
  • @li.davidm Thank you. Actually, I registered the mailing lists and asked the same question on user@arrow.apache.org. – zeodtr Jan 24 '23 at 23:59

0 Answers0