Decouple flight logic from server backends
This merge request modifies the two ServerBackend
base classes to decouple the Flight logic from the server backends. As a result, backends only need to worry about providing the relevant information and all the tedious Arrow/Flight-specific handling is handled by the base classes.
For a backend that doesn't provide publishing capabilities, they need to provide the following:
-
stream
: Serves timeseries as SeriesBlocks. -
describe
: Returns channel metadata for each channel as Channels. -
find
: Matches channels and returns as Channels. -
count
is provided byfind
automatically, but the backend can optionally redefine this as needed. For example, the NDS2 backend redefines this and callscount_channels
internally via an NDS2 request.
For a backend that also provides publishing capabilities:
-
publish
: Returns connection info as a dictionary of string key-value pairs. -
partition
: Takes Channels, returns Channels with their partition IDs set.
Also changes the hybrid backend to use the new Muxer provided in the Arrakis client.
Closes #14 (closed).
Edited by Patrick Godwin