Commit Graph

49187 Commits (3c9e6ed836fcd607af90589e438cb35ca83efeb6)

Author SHA1 Message Date
Dom Dwyer 932532c3e3
fix(bench): schema validator bench panic
The benchmark code was completely broken - running the benches would
immediately panic.
2023-08-29 12:41:47 +02:00
Dom Dwyer 10396e6986
refactor(service_grpc_catalog): use conversion fns
Use well-tested From impls for converting partition IDs & ParquetFile
instances to their proto representation.
2023-08-29 12:35:46 +02:00
Dom Dwyer 4c2945719a
feat: proto serialisation of ParquetFile
Adds conversion functions to serialise a ParquetFile into a protobuf
representation, and back again.

Adds randomised testing to assert round-trip equality.
2023-08-29 12:35:45 +02:00
Dom Dwyer ae3f73f65e
refactor(proto): optional ParquetFile::to_delete
This field is nullable, so lets model it as nullable.
2023-08-29 12:35:44 +02:00
Dom Dwyer 124b3d2b42
test: MerkleTree cache decorator
Adds an integration test asserting the derived MST content hashes
accurately track updates to an underlying cache entry merge
implementation.

This ensures the merge implementation, and content hashes do not become
out-of-sync.
2023-08-29 12:26:42 +02:00
Dom Dwyer b694b9f494
feat(router): Merkle tree content hash for cache
Adds a (currently unused) NamespaceCache decorator that observes the
post-merge content of the cache to maintain a content hash.

This makes use of a Merkle Search Tree
(https://inria.hal.science/hal-02303490) to track the CRDT content of
the cache in a deterministic structure that allows for synchronisation
between peers (itself a CRDT).

The hash of two routers' NamespaceCache will be equal iff their cache
contents are equal - this can be used to (very cheaply) identify
out-of-sync routers, and trigger convergence. The MST structure used
here provides functionality to compare two compact MST representations,
and identify subsets of the cache that are out-of-sync, allowing for
cheap convergence.

Note this content hash only covers the tables, their set of columns, and
those column schemas - this reflects the fact that only these values may
currently be converged by gossip. Future work will enable full
convergence of all fields.
2023-08-29 12:19:43 +02:00
Dom Dwyer bd4a3fbbb8
refactor: impl Hash for NamespaceSchema
Allow the NamespaceSchema to be hashed (including the underlying proto
types it contains).
2023-08-29 12:19:41 +02:00
Dom Dwyer fc694effda
refactor: AsRef bytes for NamespaceName
The NamespaceName is a wrapper over a str (conceptually), which allows
for cheap use of the underlying bytes.
2023-08-29 12:18:33 +02:00
kodiakhq[bot] 74212e90e7
Merge pull request #8499 from influxdata/savage/disk-full-protection
feat(ingester): Disk full protection
2023-08-29 10:17:44 +00:00
Fraser Savage 2319f6bdf1
fix(ingester): Do not await empty file notification disk protection
It's possible that this could never happen (or be very slow), while
the evaluation and enforcement of disk protection happens in another
thread. Blocking further clean-up on this condition might wedge the
ingest state!
2023-08-29 11:08:32 +01:00
Fraser Savage 3d88c9047c
Merge branch 'main' into savage/disk-full-protection 2023-08-29 10:56:02 +01:00
Fraser Savage 338483a232
chore: Make disk log statement less terriblé!
Co-authored-by: Dom <dom@itsallbroken.com>
2023-08-29 10:54:59 +01:00
dependabot[bot] 281c20cd1a
chore(deps): Bump memchr from 2.5.0 to 2.6.0 (#8592)
Bumps [memchr](https://github.com/BurntSushi/memchr) from 2.5.0 to 2.6.0.
- [Commits](https://github.com/BurntSushi/memchr/compare/2.5.0...2.6.0)

---
updated-dependencies:
- dependency-name: memchr
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dom <dom@itsallbroken.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-08-29 09:45:43 +00:00
dependabot[bot] e9bc7215a1
chore(deps): Bump sysinfo from 0.29.8 to 0.29.9 (#8591)
Bumps [sysinfo](https://github.com/GuillaumeGomez/sysinfo) from 0.29.8 to 0.29.9.
- [Changelog](https://github.com/GuillaumeGomez/sysinfo/blob/master/CHANGELOG.md)
- [Commits](https://github.com/GuillaumeGomez/sysinfo/commits)

---
updated-dependencies:
- dependency-name: sysinfo
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dom <dom@itsallbroken.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-08-29 09:39:58 +00:00
dependabot[bot] 83abd6404d
chore(deps): Bump nix from 0.27.0 to 0.27.1 (#8593)
Bumps [nix](https://github.com/nix-rust/nix) from 0.27.0 to 0.27.1.
- [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nix-rust/nix/compare/v0.27.0...v0.27.1)

---
updated-dependencies:
- dependency-name: nix
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dom <dom@itsallbroken.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-08-29 09:33:42 +00:00
dependabot[bot] 673b6493fa
chore(deps): Bump rustls from 0.21.6 to 0.21.7 (#8594)
Bumps [rustls](https://github.com/rustls/rustls) from 0.21.6 to 0.21.7.
- [Release notes](https://github.com/rustls/rustls/releases)
- [Commits](https://github.com/rustls/rustls/compare/v/0.21.6...v/0.21.7)

---
updated-dependencies:
- dependency-name: rustls
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dom <dom@itsallbroken.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-08-29 09:27:53 +00:00
dependabot[bot] 191aaf3208
chore(deps): Bump url from 2.4.0 to 2.4.1 (#8595)
Bumps [url](https://github.com/servo/rust-url) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/servo/rust-url/releases)
- [Commits](https://github.com/servo/rust-url/compare/v2.4.0...v2.4.1)

---
updated-dependencies:
- dependency-name: url
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dom <dom@itsallbroken.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-08-29 09:22:21 +00:00
dependabot[bot] eaabac74d0
chore(deps): Bump clap from 4.4.0 to 4.4.1 (#8596)
Bumps [clap](https://github.com/clap-rs/clap) from 4.4.0 to 4.4.1.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.4.0...v4.4.1)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dom <dom@itsallbroken.com>
2023-08-29 09:16:46 +00:00
Carol (Nichols || Goulding) 12b8095c46
feat: Upgrade to Rust 1.72.0 (#8589)
* feat: Upgrade to Rust 1.72.0

* fix: Allow a warning about an error we're intentionally creating

This is a test for an error. This lint warns that this code will cause
an error. Thanks lint, that's what we wanted!

* chore: rustfmt 1.72

* fix: Remove unnecessary hashes in raw string literals

Thanks Clippy!
https://rust-lang.github.io/rust-clippy/master/index.html#/needless_raw_string_hashes

Note that there are a number of false negatives with this lint; see
https://github.com/rust-lang/rust-clippy/issues/11420

* fix: Remove unnecessary explicit iteration

Looks like clippy::explicit_iter_loop was improved.
https://rust-lang.github.io/rust-clippy/master/index.html#/explicit_iter_loop

* fix: Allow clippy::manual_try_fold in a few places

Some of these might not be possible to rewrite with try_fold, or at
least not trivially. I don't feel confident enough to change these, in
any case. I think the lint is good to have on for future code though, so
that new code can be written with try_fold.

* fix: Remove useless creation of vectors when an array will do

Mostly in tests. Also fix some long lines.

Thanks Clippy!
https://rust-lang.github.io/rust-clippy/master/index.html#/useless_vec

* fix: Allow a single range in a vec init, which is actually what we want

Looks like Clippy's trying to catch a common mistake here, but for realz
we actually want `Vec<Range<usize>>` not `Vec<usize>`

https://rust-lang.github.io/rust-clippy/master/index.html#/single_range_in_vec_init

* fix: Remove a useless conversion

This looks like removing explicit iteration, but it's actually caught by
useless_conversion.

https://rust-lang.github.io/rust-clippy/master/index.html#/useless_conversion

* fix: Remove redundant pattern matching

Thanks Clippy!
https://rust-lang.github.io/rust-clippy/master/index.html#/redundant_pat

* fix: Allow an unwrap on a literal None in a test

This matches with the other tests better, and also when I tried to
remove the `unwrap_or_default` it changed the JSON sent from something
with an empty value to `null`, so I think the `or_default` part is
actually changing from one `None` to another `None`.

https://rust-lang.github.io/rust-clippy/master/index.html#/unnecessary_literal_unwrap
2023-08-29 05:57:38 +00:00
Carol (Nichols || Goulding) 468b3ac7f7
fix: Update to a non-yanked version of nix (#8590)
This looks like why it was yanked:
https://github.com/nix-rust/nix/issues/2112
2023-08-28 21:36:09 +00:00
Joe-Blount 02c338ba70
fix: don't add empty compact branches (#8587) 2023-08-28 19:02:19 +00:00
dependabot[bot] 2572bea8d7
chore(deps): Bump nix from 0.26.2 to 0.27.0 (#8582)
* chore(deps): Bump nix from 0.26.2 to 0.27.0

Bumps [nix](https://github.com/nix-rust/nix) from 0.26.2 to 0.27.0.
- [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nix-rust/nix/compare/v0.26.2...v0.27.0)

---
updated-dependencies:
- dependency-name: nix
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: Run cargo hakari tasks

* chore: fix `nix` features

---------

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: Marco Neumann <marco@crepererum.net>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-08-28 13:48:56 +00:00
Joe-Blount 1df5948c97
feat: Add Compaction Regions (#8559)
* feat: add CompactRanges RoundInfo type

* chore: insta test updates for adding CompactRange

* feat: simplify/improve ManySmallFiles logic, now that its problem set is simpler

* chore: insta test updates for ManySmallFiles improvement

* chore: upgrade files more aggressively

* chore: insta updates from more aggressive file upgrades

* chore: addressing review comments
2023-08-28 12:59:12 +00:00
dependabot[bot] 8739f30451
chore(deps): Bump serde from 1.0.186 to 1.0.188 (#8583)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.186 to 1.0.188.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.186...v1.0.188)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dom <dom@itsallbroken.com>
2023-08-28 09:25:33 +00:00
Dom 0f32b1d235
Merge pull request #8584 from influxdata/dependabot/cargo/base64-0.21.3
chore(deps): Bump base64 from 0.21.2 to 0.21.3
2023-08-28 10:19:41 +01:00
dependabot[bot] aae478d0f5
chore(deps): Bump base64 from 0.21.2 to 0.21.3
Bumps [base64](https://github.com/marshallpierce/rust-base64) from 0.21.2 to 0.21.3.
- [Changelog](https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/marshallpierce/rust-base64/compare/v0.21.2...v0.21.3)

---
updated-dependencies:
- dependency-name: base64
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 09:05:14 +00:00
dependabot[bot] 9ae072d3f8
chore(deps): Bump regex from 1.9.3 to 1.9.4 (#8581)
Bumps [regex](https://github.com/rust-lang/regex) from 1.9.3 to 1.9.4.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.9.3...1.9.4)

---
updated-dependencies:
- dependency-name: regex
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-28 09:00:52 +00:00
dependabot[bot] 57be618413
chore(deps): Bump regex-automata from 0.3.6 to 0.3.7 (#8580)
Bumps [regex-automata](https://github.com/rust-lang/regex) from 0.3.6 to 0.3.7.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/regex-automata-0.3.6...regex-syntax-0.3.7)

---
updated-dependencies:
- dependency-name: regex-automata
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-28 08:49:21 +00:00
Joe-Blount 323af3d679
Merge pull request #8578 from influxdata/jrb_88_cap_region_count
chore: limit compactor region count computations
2023-08-25 15:56:28 -05:00
Joe-Blount 46179bf164 chore: limit compactor region count computations 2023-08-25 14:41:24 -05:00
Nga Tran 2eb74ddb87
chore: revert teaching compactor to use sort_key_ids (#8574) 2023-08-25 13:21:12 +00:00
Dom d029265696
Merge pull request #8565 from influxdata/dom/gossip-parquet-crate
feat(gossip): new parquet file gossip crate
2023-08-25 13:19:19 +01:00
Dom fa738cfec3
Merge branch 'main' into dom/gossip-parquet-crate 2023-08-25 13:07:07 +01:00
Dom ed94b56c6e
docs: copy/paste fix
Co-authored-by: Fraser Savage <fsavage@influxdata.com>
2023-08-25 13:06:58 +01:00
Marco Neumann 196c589ef6
refactor: `is_terminal` no longer requires an external crate (#8572)
* refactor: `is_terminal` no longer requires an external crate

This is now part of the stdlib.

* chore: Run cargo hakari tasks

---------

Co-authored-by: CircleCI[bot] <circleci@influxdata.com>
2023-08-25 09:01:36 +00:00
dependabot[bot] af8f98e35f
chore(deps): Bump clap from 4.3.24 to 4.4.0 (#8571)
Bumps [clap](https://github.com/clap-rs/clap) from 4.3.24 to 4.4.0.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v4.3.24...clap_complete-v4.4.0)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-25 07:54:14 +00:00
Andrew Lamb e4505912a1
chore: Update DataFusion pin (#8544)
* chore: Update DataFusion pin

* refactor: Use upstream check

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-08-24 18:31:33 +00:00
Nga Tran 246918feb6
feat: teach compactor to use sort_key_ids instead of sort_key (#8560)
* feat: teach compactor to use sort_key_ids instead of sort_key

* test: update the test output after chatting with Joe and know the reason of the chnanges
2023-08-24 16:16:12 +00:00
Joe-Blount 36e66158a2
chore: add log message before compacting partition (#8569) 2023-08-24 14:13:23 +00:00
Dom c3f402a0f8
Merge branch 'main' into dom/gossip-parquet-crate 2023-08-24 14:11:09 +01:00
Dom 544ff8c3ef
Merge pull request #8567 from influxdata/dom/gossip-docs
docs(gossip): move crate docs to README
2023-08-24 13:27:17 +01:00
Dom Dwyer 43bb149ddc
docs(gossip): move crate docs to README
Move the docs to a README to be linked to.
2023-08-24 14:15:56 +02:00
Dom Dwyer 180d4affc7
docs: fix diagram padding
Super important!
2023-08-24 12:59:55 +02:00
Dom Dwyer b2e93c97f1
docs: clarify tx input type
The ParquetFileTx type accepts any type that converts into a
ParquetFile, not just a ParquetFile.

This allows applications to use whatever application-level type they
have at hand so long as it's convertible.
2023-08-24 12:29:01 +02:00
Dom Dwyer 6a0c54758b
feat(gossip): new parquet file gossip crate
Adds a reusable "gossip_parquet_file" crate that provides a use-case
specific wrapper over the underlying gossip transport.

This crate deals with the encoding and decoding of parquet gossip
messages, handling them off to the application, and decoupling latency
of handlers from the gossip reactor.
2023-08-24 11:23:17 +02:00
Dom Dwyer 04051aea4c
refactor(gossip): define NewParquetFiles topic
Separate the parquet file gossiping onto a new topic to allow specific
interest subscriptions and minimise cluster traffic.
2023-08-24 11:23:17 +02:00
Dom cdd20a2337
Merge pull request #8553 from influxdata/dom/partition-id-proto
feat: proto serialisation of TransitionPartitionId
2023-08-24 10:21:49 +01:00
Dom c350873bf6
Merge branch 'main' into dom/partition-id-proto 2023-08-24 10:14:41 +01:00
dependabot[bot] 7b37479cd1
chore(deps): Bump siphasher from 0.3.10 to 1.0.0 (#8561)
Bumps [siphasher](https://github.com/jedisct1/rust-siphash) from 0.3.10 to 1.0.0.
- [Commits](https://github.com/jedisct1/rust-siphash/compare/0.3.10...1.0.0)

---
updated-dependencies:
- dependency-name: siphasher
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dom <dom@itsallbroken.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-08-24 09:13:14 +00:00
dependabot[bot] aed214afa8
chore(deps): Bump reqwest from 0.11.19 to 0.11.20 (#8562)
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.19 to 0.11.20.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.11.19...v0.11.20)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dom <dom@itsallbroken.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-08-24 09:07:49 +00:00