This refactors the write buffer a bit for:
- **Testing:** Add generic tests for the Kafka and the mocking
implementation. The same interface can be used easily add new
implementations (e.g. via Redis, filesystem, ...).
- **Partition on Write:** The caller of the writer operation must now
specify the partition/sequencer ID. The implicit partitioning of the
Kafka writer would have lead to broken data since we must never spill
entries w/ the same primary key over multiple partitions. At the
moment we will only use partition 0 but we can easily implement
better logic in the future.
- **Improved Mocking:** The mocked implementation now simulates a system
that feels more real. Especially the handling around multiple streams
and "write while read" has been improved. This will be helpful for
testing and for new features like seeking (during replay). A solid
realistic mock also helps us to ensure that the tests using the mock
do not rely on unrealistic behavior too much.
* ci: verify gpg signatures of dependencies in CI
Verify signatures of bazel and influxdb2.
* fix: harden curl in Dockerfile.ci
Co-authored-by: pierwill <pierwill@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
If the layer is cached, docker build won't print the output of the RUN command.
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This will let us stop installing it in the CI job and will let us run
the influxdb2_client integration tests in a Docker container based on
this image locally as well.
That only installs bazel for the `root` user, but we'd like bazel
installed for the `rust` user as well.
Also clean up the installer and run this all as one Docker RUN command.
This adds a simple Dockerfile for anyone to just `docker build .` and
get a Docker image. This Dockerfile is optimized for human consumption,
not for build performance.
Stops adding the IOx source code and performing a cargo build/test/clippy each
night. Previously this build would compile the IOx source & dependencies,
populating the incremental build cache and allowing builds that used the same
dependencies to complete quicker. This build caching was moved to
per-dependency-set caching in #496, and this pre-build is no longer used.
This should reduce the build image size substantially, making the whole CI
process a bit faster.