Commit Graph

10085 Commits (6f7cb5ccf05544fb3efe40b0f7148046d12f34d3)

Author SHA1 Message Date
kodiakhq[bot] 6f7cb5ccf0
Merge branch 'main' into cn/ingester2-querier 2022-12-08 14:00:49 +00:00
Marco Neumann d4e321a2bd
refactor: add additional span around chunk spans (#6353)
* refactor: add additional span around chunk spans

* docs: improve

Co-authored-by: Andrew Lamb <alamb@influxdata.com>

Co-authored-by: Andrew Lamb <alamb@influxdata.com>
2022-12-08 13:57:32 +00:00
Andrew Lamb 9175f4a0b5
chore: Upgrade datafusion to get correct support for multi-part identifiers (#6349)
* test: add tests for periods in measurement names

* chore: Update Datafusion

* chore: Update for changed APIs

* chore: Update expected plan output

* chore: Run cargo hakari tasks

Co-authored-by: CircleCI[bot] <circleci@influxdata.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-12-08 11:27:13 +00:00
Marco Neumann c25afda6cc
fix: `GroupGenerator`/`Converter` panic (#6351)
Do not poll a ready future.
2022-12-08 11:08:21 +00:00
Marco Neumann 080aff8f71
fix: account for memory allocations in InfluxRPC group outputs (#6345)
* fix: account for memory allocations in InfluxRPC group outputs

This should prevent the querier from OOMing.

See https://github.com/influxdata/idpe/issues/16614 .

* docs: improve

Co-authored-by: Andrew Lamb <alamb@influxdata.com>

* refactor: pull out constant

Co-authored-by: Andrew Lamb <alamb@influxdata.com>
2022-12-08 09:55:31 +00:00
dependabot[bot] 8c5c6aee0b
chore(deps): Bump filetime from 0.2.18 to 0.2.19 (#6350)
Bumps [filetime](https://github.com/alexcrichton/filetime) from 0.2.18 to 0.2.19.
- [Release notes](https://github.com/alexcrichton/filetime/releases)
- [Commits](https://github.com/alexcrichton/filetime/compare/0.2.18...0.2.19)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-08 09:26:52 +00:00
Carol (Nichols || Goulding) e13e668d26
refactor: Share more code in the querier in the RPC write path mode 2022-12-07 13:54:08 -05:00
Luke Bond 551bb0ef6a
feat: allow enabling/disabling ns autocreation in router (#6346)
* feat: allow enabling/disabling ns autocreation in router

* fix: missed an import for something behind router2 compile flag
2022-12-07 16:12:00 +00:00
Carol (Nichols || Goulding) b1c5ec4dee
fix: Correct compiler errors in places I missed while running crate tests 2022-12-07 10:25:36 -05:00
Carol (Nichols || Goulding) 9166ace796
feat: Make a mode for the querier to use ingester2 instead, behind the rpc_write feature flag 2022-12-07 09:56:50 -05:00
dependabot[bot] c97b025751
chore(deps): Bump zstd from 0.12.0+zstd.1.5.2 to 0.12.1+zstd.1.5.2 (#6344)
Bumps [zstd](https://github.com/gyscos/zstd-rs) from 0.12.0+zstd.1.5.2 to 0.12.1+zstd.1.5.2.
- [Release notes](https://github.com/gyscos/zstd-rs/releases)
- [Commits](https://github.com/gyscos/zstd-rs/compare/v0.12.0...v0.12.1)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-07 09:19:35 +00:00
Marco Neumann 7e43fe57fa
fix: support InfluxRPC OR-chains w/ arbitrary child nodes (#6343)
* fix: support InfluxRPC OR-chains w/ arbitrary child nodes

Also convert another assertion regarding child nodes of Eq-nodes into a
proper error.

See https://github.com/influxdata/idpe/issues/16582 .

* test: more tests
2022-12-06 18:04:27 +00:00
dependabot[bot] abe60ee0dc
chore(deps): Bump serde from 1.0.148 to 1.0.149 (#6341)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.148 to 1.0.149.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.148...v1.0.149)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-06 17:10:26 +00:00
dependabot[bot] 687493e8e6
chore(deps): Bump sqlparser from 0.27.0 to 0.28.0 (#6342)
Bumps [sqlparser](https://github.com/sqlparser-rs/sqlparser-rs) from 0.27.0 to 0.28.0.
- [Release notes](https://github.com/sqlparser-rs/sqlparser-rs/releases)
- [Changelog](https://github.com/sqlparser-rs/sqlparser-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sqlparser-rs/sqlparser-rs/compare/v0.27.0...v0.28.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-06 12:02:01 +00:00
dependabot[bot] 04e9253ade
chore(deps): Bump rustix from 0.36.4 to 0.36.5 (#6340)
Bumps [rustix](https://github.com/bytecodealliance/rustix) from 0.36.4 to 0.36.5.
- [Release notes](https://github.com/bytecodealliance/rustix/releases)
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.36.4...v0.36.5)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-06 09:47:00 +00:00
dependabot[bot] 1d38d400f0
chore(deps): Bump object_store from 0.5.1 to 0.5.2 (#6339)
* chore(deps): Bump object_store from 0.5.1 to 0.5.2

Bumps [object_store](https://github.com/apache/arrow-rs) from 0.5.1 to 0.5.2.
- [Release notes](https://github.com/apache/arrow-rs/releases)
- [Changelog](https://github.com/apache/arrow-rs/blob/master/CHANGELOG-old.md)
- [Commits](https://github.com/apache/arrow-rs/compare/object_store_0.5.1...object_store_0.5.2)

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

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

* chore: Run cargo hakari tasks

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: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-12-06 07:53:54 +00:00
dependabot[bot] 2c771ea9f2
chore(deps): Bump mockito from 0.31.0 to 0.31.1 (#6338)
Bumps [mockito](https://github.com/lipanski/mockito) from 0.31.0 to 0.31.1.
- [Release notes](https://github.com/lipanski/mockito/releases)
- [Commits](https://github.com/lipanski/mockito/compare/0.31.0...0.31.1)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-12-06 07:44:07 +00:00
Marco Neumann f62b270852
fix: gRPC errors regarding group cols (#6314)
* fix: gRPC errors regarding group cols

- missing group col prev. produced an "internal error" but should be
  "invalid argument"
- duplicate group cols produced a panic but should also be "invalid
  argument"

* docs: clarify
2022-12-06 07:36:32 +00:00
kodiakhq[bot] cc9d4d302f
Merge pull request #6328 from influxdata/dom/fix-wal-panic
fix: do not panic when writer disconnects
2022-12-05 14:56:52 +00:00
kodiakhq[bot] 609e23988b
Merge branch 'main' into dom/fix-wal-panic 2022-12-05 14:50:07 +00:00
Marco Neumann cd6a8a1a82
refactor: DF-driven on-demand mem limit instead of ahead-of-time heuristics (#6313)
* refactor: DF-driven on-demand mem limit instead of ahead-of-time heuristics

Closes #6310.

* refactor: rename and tune default exec mem limits

* fix: ingester2 bits after rebase
2022-12-05 12:38:28 +00:00
dependabot[bot] c3a2ac99aa
chore(deps): Bump insta from 1.21.2 to 1.22.0 (#6332)
Bumps [insta](https://github.com/mitsuhiko/insta) from 1.21.2 to 1.22.0.
- [Release notes](https://github.com/mitsuhiko/insta/releases)
- [Changelog](https://github.com/mitsuhiko/insta/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mitsuhiko/insta/compare/1.21.2...1.22.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-05 10:18:59 +00:00
dependabot[bot] 05cc735849
chore(deps): Bump tower-http from 0.3.4 to 0.3.5 (#6331)
Bumps [tower-http](https://github.com/tower-rs/tower-http) from 0.3.4 to 0.3.5.
- [Release notes](https://github.com/tower-rs/tower-http/releases)
- [Commits](https://github.com/tower-rs/tower-http/compare/tower-http-0.3.4...tower-http-0.3.5)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-05 09:18:12 +00:00
dependabot[bot] fc9431f6ae
chore(deps): Bump assert_cmd from 2.0.6 to 2.0.7 (#6330)
Bumps [assert_cmd](https://github.com/assert-rs/assert_cmd) from 2.0.6 to 2.0.7.
- [Release notes](https://github.com/assert-rs/assert_cmd/releases)
- [Changelog](https://github.com/assert-rs/assert_cmd/blob/master/CHANGELOG.md)
- [Commits](https://github.com/assert-rs/assert_cmd/compare/v2.0.6...v2.0.7)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-05 09:05:56 +00:00
dependabot[bot] 3740110cb5
chore(deps): Bump libc from 0.2.137 to 0.2.138 (#6329)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.137 to 0.2.138.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.137...0.2.138)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-05 08:49:09 +00:00
Dom Dwyer 7cb1636c64
fix: do not panic when writer disconnects
When the RPC write disconnects without waiting for completion, the WAL
panics as there is no longer a consumer of the "committed" ACK.
2022-12-03 17:26:42 +01:00
kodiakhq[bot] ce75b6b239
Merge pull request #6327 from influxdata/dom/remove-comment
chore: remove old comment
2022-12-02 18:05:09 +00:00
kodiakhq[bot] 228c81c6fb
Merge branch 'main' into dom/remove-comment 2022-12-02 17:58:33 +00:00
kodiakhq[bot] 0dd84526ac
Merge pull request #6326 from influxdata/dom/drop-empty-wal
feat(ingester2): drop empty WAL files
2022-12-02 17:56:31 +00:00
kodiakhq[bot] fff6cdf951
Merge branch 'main' into dom/drop-empty-wal 2022-12-02 17:49:47 +00:00
kodiakhq[bot] c00a31db6e
Merge pull request #6325 from influxdata/dom/track-caller
test: track_caller for make_write_op
2022-12-02 17:49:34 +00:00
Dom Dwyer de52a24751
chore: remove old comment
The ingester will replay the ops, and then immediately trigger a
persist! This comment is done :)

Outstanding is actually deleting the replayed files, which will come
with the ref-counted WAL segment change later.
2022-12-02 18:44:45 +01:00
Dom Dwyer a8f99d4593
feat(ingester2): drop empty WAL files
A shutdown of an ingester that has received no writes leaves an empty
WAL file - these can be deleted at startup.
2022-12-02 18:43:32 +01:00
Dom Dwyer c3a88f105d
test: track_caller for make_write_op
Changes the stack trace to point at the call site when a panic occurs
within make_write_op, and adds a unique message per panic explaining the
issue.
2022-12-02 18:42:28 +01:00
Dom 533a6581be
Merge pull request #6324 from influxdata/dom/drop-wal-segments
feat(ingester2): drop WAL segments after persist
2022-12-02 17:42:09 +00:00
Dom Dwyer 26bf54d041
feat(ingester2): drop WAL segments after persist
Changes the WAL rotation task to drop the WAL segment after the
partition data has completely persisted.

This logic contains a race condition outlined (at length) in the code
comments, along with a plan to resolve it once I'm back from holiday.
For now, the extremely low likelihood and minor impact of the race
occurring is likely acceptable for testing purposes.
2022-12-02 18:29:35 +01:00
kodiakhq[bot] 464fcba98f
Merge pull request #6323 from influxdata/dom/wal-rotate-persist
feat(ingester2): persist data when rotating WAL segments
2022-12-02 17:29:00 +00:00
Dom Dwyer f145d6415f
feat(ingester2): persist partitions on WAL rotate
Changes the WAL rotation code to cause the current set of partitions to
be submitted for persistence.

Because rotating the WAL segment and triggering persistence is not
atomic (not under an exclusive lock preventing writes) the persisted
buffers MAY contain writes that appear in the new segment file.

In the happy/non-crash path, this will have no effect, however if the
ingester crashes and replays the WAL files, these writes will be
duplicated into object storage (where compaction will resolve the issue)
- this seems like a good trade-off, allowing us to avoid blocking write
requests for as long as it takes to rotate the WAL and mark all
partitions as persisting.

(though currently WAL files are not dropped and thus everything is
replayed all the time.)
2022-12-02 17:18:39 +01:00
Dom Dwyer 66aab55534
feat(ingester2): run persistence task
Configures the initialisation of an ingester2 instance to spawn a
persistence task (currently unused) and plumbs in various configuration
parameters.
2022-12-02 17:18:39 +01:00
kodiakhq[bot] e234187a94
Merge pull request #6322 from influxdata/dom/buffer-tree-iter
refactor(ingester2): BufferTree partition iterator
2022-12-02 16:17:06 +00:00
kodiakhq[bot] 1137f2fc7e
Merge branch 'main' into dom/buffer-tree-iter 2022-12-02 16:10:38 +00:00
kodiakhq[bot] 15e1a3dd29
Merge pull request #6318 from influxdata/dom/persist
feat(ingester2): parallel partition persistence
2022-12-02 16:06:02 +00:00
Dom Dwyer 85a41e34df
refactor(ingester2): BufferTree partition iterator
Expose an iterator of PartitionData within a BufferTree.
2022-12-02 17:01:34 +01:00
kodiakhq[bot] 346337ad9f
Merge branch 'main' into dom/persist 2022-12-02 15:59:18 +00:00
Carol (Nichols || Goulding) a51848b361
fix: Use client_util GrpcConnection instead of tonic Channel (#6320)
* fix: Use client_util GrpcConnection instead of tonic Channel

* refactor: include server addr in error

Co-authored-by: Dom <dom@itsallbroken.com>
2022-12-02 15:57:42 +00:00
Dom Dwyer f524687602
feat(ingester2): parallel partition persistence
Implements actor-based, parallel persistence in ingester2 with
controllable fan-out parallelism and queue depths.

This implementation encapsulates the complexity of persistence, queuing
and parallelism - the caller simply uses the handle to persist a
partition, while the actor handles fan-out to a set of persistence
workers, compaction in a separate thread-pool, and optional completion
notifications.

By consistently hashing persist jobs onto workers, parallelism is
achieved across partitions, but serialisation of partition persists is
enforced so that the sort key update is correctly serialised.
2022-12-02 16:34:03 +01:00
kodiakhq[bot] 85abd09be0
Merge pull request #6316 from influxdata/dom/partition-queue
perf(ingester2): partition persist queue
2022-12-02 15:25:25 +00:00
Dom e25920c7c0
Merge branch 'main' into dom/partition-queue 2022-12-02 15:18:44 +00:00
kodiakhq[bot] 0e21f3dcfe
Merge pull request #6303 from influxdata/cn/ingester2
feat: Add an ingester2 command behind the rpc_write feature flag
2022-12-02 13:46:30 +00:00
kodiakhq[bot] 9e3d0fcefb
Merge branch 'main' into cn/ingester2 2022-12-02 13:39:55 +00:00