Adds basic structure for #8349. This will be filled in using separate
PRs for easier review.
The layer structure was chosen to simplify testing and allow composition
of features (like retries, circuit breaking, metrics, etc.). In contrast
to the V1 client (`querier::ingester`) a client here addresses exactly 1
ingester, not multiple (via an `addr` parameter). The tracking around
mutiple states in the V1 version is not really nice and overly
complicated.
This was removed in #8336 because the tracking was broken. However
having an "almost right" metric is still helpful because it helps with
dashboarding (see code comment).
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* refactor: make projection masks unsigned
* fix: buffer alignment
* feat: more precise serialization error
* refactor: make `client_util` tower helper public
This can be used for #8349 to set tracing headers.
* fix: impl `Eq` for `TimestampMinMax`
---------
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit hooks the influxdb_iox_client and CLI up to the new
`GetTables` gRPC endpoint on the `TableService`, allowing users to
query a list of tables within a database and consequently see any
custom partitioning schemes.
We don't think that there are any dirty clusters left, but better be
safe than sorry.
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
I think by default we don't check all tests, but this one annoyed me
because my IDE complained about it.
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* chore(deps): Bump chrono from 0.4.26 to 0.4.27
Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.26 to 0.4.27.
- [Release notes](https://github.com/chronotope/chrono/releases)
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md)
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.26...v0.4.27)
---
updated-dependencies:
- dependency-name: chrono
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* chore: Run cargo hakari tasks
* fix: Update deprecated chrono methods to their now-recommended versions
`chrono::DateTime::<Tz>::from_utc` has been deprecated and it's now
recommended to use `chrono::DateTime::from_naive_utc_and_offset`
instead.
<https://github.com/chronotope/chrono/pull/1175>
Note that the `Timestamp` type in `influxdb_influxql_parser` is an alias
for `chrono::DateTime<FixedOffset>`.
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: CircleCI[bot] <circleci@influxdata.com>
Co-authored-by: Carol (Nichols || Goulding) <carol.nichols@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
If tables can be created with a custom partition template (or the namespace
has a custom partition template) then this should be exposed to the user
interacting with it through the CLI too!
Adds a "mst" (merkle search tree) submodule in anti_entropy, and moves
all the MST code into it.
This makes space for a gossip-based sync primitive to live here too.
Configures the ingesters to gossip parquet file persistence
notifications to listening peers.
Because there's no current listeners, this will be a no-op - the gossip
subsystem will not send the messages as no peer will be registered as
interested in them, so the frame rate metrics, etc, will not change
until something registers as interested in the new topic.
This allows a caller to obtain the socket address of a peer identity,
and therefore the address from which a message came from.
I think the use cases of this are pretty slim (which is why I purposely
kept the concept of peers out of the handle) but it definitely is useful
as a primitive service discovery directory.