influxdb/influxdb_iox/tests/end_to_end_cases
Marco Neumann 3bd24b67ba
feat: extend flight client to accept multiple (changing) schemas (#4853)
* feat: extend flight client to accept multiple (changing) schemas

See #4849.

Originally I intended not to use Flight at all for the new
ingester<>querier protocol. However since flight also deals with
dictionary batches and multiple batches and the gRPC protocol that I
would write would look very similar, I will use Flight with a bit more
flexible message types.

The rough idea for the protocol is the following stream:

- for each partition:
  1. "none" message with partition metadata
  2. for each chunk (can have different schemas under certain
     circumstances):
     1. "schema" message (resets dictionary state)
     2. (optional) dictionary batch messages
     3. one or more "record batch" message

The nice thing about it is that the same arrow client works also for the
existing client<>querier protocol since there we just send:

1. "schema" message (no app metadata)
2. (optional) dictionary batch messages
3. zero, one or more "record batch" message (no app metadata)

* refactor: separate high- and low-level flight client

It is very unlikely that a user will use the high-level batch-producing
functionality and the low-level stuff within the same session. So let's
split this into to clients (high-level uses the low-level one
internally) to avoid confusion.

Also add documentation on our protocol handling.

* refactor: enumerate all variants in match statement to better catch errors in the future
2022-06-15 11:38:08 +00:00
..
querier fix: fix at least one intermittent failure (#4711) 2022-05-26 21:24:37 +00:00
all_in_one.rs fix: Rename end-to-end NG tests to not contain NG 2022-05-12 16:09:07 -04:00
cli.rs test(e2e): do not mangle prod database 2022-06-01 17:12:12 +01:00
debug.rs fix: Rename end-to-end NG tests to not contain NG 2022-05-12 16:09:07 -04:00
error.rs fix: Return panic message in internal error (#4693) 2022-05-25 15:11:17 +00:00
ingester.rs feat: extend flight client to accept multiple (changing) schemas (#4853) 2022-06-15 11:38:08 +00:00
logging.rs fix: Rename end-to-end NG tests to not contain NG 2022-05-12 16:09:07 -04:00
metrics.rs refactor: Use DurationHistogram in more places 2022-06-09 14:20:51 -04:00
mod.rs test: panic handling, add compactor to end to end test harness (#4677) 2022-05-24 14:55:26 +00:00
namespace.rs fix: Rename end-to-end NG tests to not contain NG 2022-05-12 16:09:07 -04:00
querier.rs refactor: consolidate duplicate testing logic (#4708) 2022-06-01 20:02:13 +00:00
router.rs fix: Rename end-to-end NG tests to not contain NG 2022-05-12 16:09:07 -04:00
schema.rs fix: Rename end-to-end NG tests to not contain NG 2022-05-12 16:09:07 -04:00
tracing.rs fix: Rename end-to-end NG tests to not contain NG 2022-05-12 16:09:07 -04:00