Commit Graph

672 Commits (f9cc6dcc443f1e1e92472e326b29080e697e75ac)

Author SHA1 Message Date
Fraser Savage 50797b6967
test(cli): Assert writing `regenerate-lp` output produces same query results
This changes the e2e test to delete the WAL segment file, restart the
ingester and ensure the results returned by an ingester query after
feeding the regenerated line proto in are the same as those before.
2023-06-02 12:45:52 +01:00
Fraser Savage 24f0dca838
test(cli): Add test to ensure `regenerate-lp` continues on minor errors
This adds a test to the `wal regenerate-lp` command to ensure that
non-fatal errors do not block regeneration of any other recoverable
entries.
2023-05-30 18:01:28 +01:00
Fraser Savage bf031641c5
feat(cli): Add measurement name lookup to `wal regenerate-lp` command
This commit adds support for the CLI to query the namespace and schema
APIs to retrieve database and table names from the IDs found in WAL
entries being regenerated.
2023-05-26 17:31:19 +01:00
Fraser Savage 51d59f8216
refactor(`wal_inspect`): Make `LineProtoWriter` namespace unaware
Instead, the type responsible for initialising it handles namespaced
`Write` initialisation and management, as well as the failure paths that
may need handling. This commit introduces a `NamespaceDemultiplexer`
type with a generic implementation allowing fallible `async` lazy init
of any type from a given `NamespaceId`. This paves the way for catalog-aware
initialisation of `LineProtoWriter`s.
2023-05-26 17:12:35 +01:00
Andrew Lamb cdd519424d
feat(cli): Automatically send influx-trace-id, and improve help text (#7830)
* feat(cli): Automatically send influx-trace-id, and improve tracing CLI help

* fix: remove random ra

* fix: clippy

* fix: Update influxdb_iox/src/main.rs

Co-authored-by: Chunchun Ye <14298407+appletreeisyellow@users.noreply.github.com>

* refactor: Use Vec<String>

* fix: clippy

---------

Co-authored-by: Chunchun Ye <14298407+appletreeisyellow@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-05-25 09:43:55 +00:00
Marco Neumann c5ee3250f7
fix: flaky `service::tests::test_log_on_panic` (#7850)
* refactor: remove line number from test

* refactor: clean up code

* fix: flaky `service::tests::test_log_on_panic`

This seems to be a really rare issue. So provoking it requires a lot of
tests. This can be done (using `fish`):

```console
$ while cargo with "parallel -n0 {bin} {args} ::: $(seq 10)" -- test -p service_grpc_influxrpc --lib -- --test-threads 20; echo; end
```

Fixes #7838.

* fix: panic handler construction

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-05-23 12:17:49 +00:00
kodiakhq[bot] b9bcaf1aa0
Merge branch 'main' into savage/wal-regenerate-lp-cli-command 2023-05-22 16:18:44 +00:00
Fraser Savage 14b197ead7
refactor(cli): List all errors at the end of WAL LP regeneration 2023-05-22 16:58:45 +01:00
Fraser Savage 44ec835191
docs: formatting fix of doc comment
Co-authored-by: Andrew Lamb <alamb@influxdata.com>
2023-05-19 14:02:56 +01:00
Andrew Lamb 6344fe8c3f
chore: Add rationale for `clippy::future_not_send` (#7822)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-05-18 16:58:56 +00:00
Andrew Lamb e97c48b388
feat: download catalog objects as part of `remote store get-table` (#7779)
* feat: download catalog objects as part of remote store get-table

* fix: fix future_not_send

* fix: reorder import order

* chore: reduce repetition of `Error` in naming

* fix: improve the partition filtering API

* fix: clarify export comment

* fix: make index printing consistent

* fix: improve skip message

* chore: add extra clippy lints to inmport_export crate

* fix: comments

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-05-18 16:52:43 +00:00
Fraser Savage c263585d94
feat(cli): Add table ID `debug wal regenerate-lp` command implementation
This adds a command to `influxdb_iox` that can take a WAL segment file
and regenerate all write operation entries, writing to stdout or namespaced
files within a target directory, using table ID as the measurement name
in the case where there is no catalog access at point of regeneration.
2023-05-18 17:20:41 +01:00
Dom Dwyer 82500720e4
refactor(cli): update replication help text
The replication flag defines the total number of copies of each write -
slightly less confusing than the additional copies it was previously,
and matches with the actual code.
2023-05-18 16:01:12 +02:00
Andrew Lamb 042a6a66d5
refactor: remove old tsm import code (#7804)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-05-18 10:51:24 +00:00
Andrew Lamb 1ff11d0856
refactor: Change catalog configuration so it is entirely dsn based / support end to end testing without postgres (#7736)
* refactor: Change catalog configuration so it is entirely dsn based / support end to end testing without postgres

Restores code from https://github.com/influxdata/influxdb_iox/pull/7708

Revert "revert: PR #7708"

This reverts commit c9cfe05f8d.

* fix: merge

* fix: Update new test
2023-05-17 13:36:25 +00:00
Andrew Lamb c077dec0e0
refactor: rename `import` to `iox_import_export` (#7799)
* refactor: rename `import` crate to `import_export`

* chore: Consolidate tsm import/export

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-05-16 17:10:17 +00:00
Carol (Nichols || Goulding) 1770d0f4d8
fix: Move ingester-querier gRPC communication to its own crate 2023-05-12 13:28:30 -04:00
Carol (Nichols || Goulding) e60f703e95
fix: Rename router2 to router
Including an alias and a test for continuing to support `influxdb_iox
run router2`.
2023-05-09 22:01:39 -04:00
Carol (Nichols || Goulding) c1a8408572
fix: Consolidate the default partition template; remove --partition-key-pattern CLI option 2023-05-09 14:54:57 +02:00
Carol (Nichols || Goulding) 45493b91e5
fix: Rename ioxd_compactor2 to ioxd_compactor 2023-05-09 11:02:11 +02:00
Carol (Nichols || Goulding) dd9c5d1b13
fix: Rename compactor2 to compactor 2023-05-09 10:58:55 +02:00
Carol (Nichols || Goulding) 19a56bdf4b
fix: Rename ioxd_ingester2 to ioxd_ingester 2023-05-08 20:20:03 -04:00
Carol (Nichols || Goulding) d8b56888a7
feat: Add a command alias so that 'influxdb_iox run ingester2' runs ingester 2023-05-08 12:03:05 -04:00
Carol (Nichols || Goulding) 56916cf942
fix: Rename ingester2 to ingester 2023-05-08 12:03:05 -04:00
Carol (Nichols || Goulding) b0959667d5
fix: Move topic and query pool within iox catalog (#7734)
Still insert them into the database and associate them with namespaces,
but don't ever query them back out.

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-05-04 13:45:56 +00:00
Joe-Blount 6de18b6544
chore: conditionally parse shard_id from HOSTNAME (#7733)
* chore: conditionally parse shard_id from HOSTNAME

* chore: remove HOSTNAME env from test case relying on it not being there.
2023-05-03 20:09:00 +00:00
Utkarsh Gupta 18b02a03cf
chore: move to the smaller, cargo-team maintained `home` crate (#7716)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-05-02 16:10:22 +00:00
Dom Dwyer c9cfe05f8d
revert: PR #7708
This reverts commit 61abb58933.
2023-05-02 13:51:30 +02:00
Andrew Lamb 61abb58933
refactor: Change catalog configuration so it is entirely dsn based / support end to end testing without postgres (#7708)
* refactor: Change catalog configuration so it is entirely dsn based

* docs: Add documentation

* chore: update docs

* chore: review feedback

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-05-02 10:48:33 +00:00
Andrew Lamb 7a77ba2e48
fix: Remove `remote store pull` command (#7688)
* fix: Remove  `remote store pull` command

* fix: fmt

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-05-01 15:03:27 +00:00
Andrew Lamb 2217799256
feat: Add --partition_filter to `remote get table` command (#7685)
* feat: Add --partition_filter to `remote get table` command

* fix: update command description

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-05-01 11:15:13 +00:00
Joe-Blount 49e19dace5
chore: renaming compaction job concurrency to df concurrency (#7686)
This PR renames the CLI option and variables throughout the compactor to be `df_concurrency` (and similar) instead of `job_concurrency` (and similar).

From the perspective of the compactor, the most noteworthy consequence of this limit is on concurrency within Data Fusion.  This is the limit on the number of DataFusion jobs the compactor may start concurrently.
2023-04-27 18:43:39 +00:00
Carol (Nichols || Goulding) 038f8e9ce0
fix: Move shard concepts into only the catalog
This still inserts the shard id into the database, always set to the
TRANSITION_SHARD_ID, but never reads it back out again.
2023-04-26 11:42:32 -04:00
wiedld 148c103c70
refactor: push authz into specific configs (#7607)
* refactor: move authz-addr flag into router-specific config

* refactor: move authz-addr flag into querier-specific config

* refactor: remove global AuthzConfig which is now redundant with the pushdown to individual configs. Keep constant the env vars used universally.

* chore: make errors lowercase, and use the required bool for the authz-addr flag

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-04-25 00:14:28 +00:00
Carol (Nichols || Goulding) 8f17d217fb
fix: Move an error condition earlier, before we try to do catalog work
If the command is going to fail anyway, may as well stop earlier
2023-04-24 10:08:00 -04:00
Carol (Nichols || Goulding) 8d4c2bfabb
fix: Only ever create the transition shard in the in-memory catalog
Tests that use the in-memory catalog are creating different shards that
then creates old-style Parquet file paths, but in production, everything
uses the transition shard now. To make the tests more like production,
only ever create and use the transition shard, and stop checking for
different shard IDs.
2023-04-24 10:08:00 -04:00
Carol (Nichols || Goulding) a9081fc8a8
fix: Remove uses and tests for RPC write env var 2023-04-24 10:00:09 -04:00
wiedld a8ab9040c9
Merge branch 'main' into chore/add-cst-mode-to-allInOne 2023-04-19 11:30:54 -07:00
kodiakhq[bot] 45be11bd2c
Merge branch 'main' into cn/cold-vs-hot-cli 2023-04-19 16:33:54 +00:00
wiedld c123971113 chore: all cst mode for router to the all-in-one commands
Passes the bool to the generated router config, which enables us to run in cst mdoe when we don't use the clapblock flags for the router config
2023-04-19 08:30:17 -07:00
Dom Dwyer 2783b00907
feat(ingester): configurable RPC write message size
Provide a configuration item for the ingester2 that controls the maximum
incoming RPC message size.

Raises the maximum from the default 4MiB to a more reasonable 100MiB.
2023-04-19 14:57:53 +02:00
Dom Dwyer 03c5ea5488
feat(router): configurable RPC write message size
Provide a configuration item for the router (in RPC mode) that controls
the maximum outgoing RPC message size when communicating with an
Ingester.

Raises the maximum from the default 4MiB to 100MiB. This does not
increase exposure to memory-based DOS, as writes are size-limited by the
HTTP layer to 10MiB, preventing a user from submitting a write this
large (or larger!) across the RPC boundary.
2023-04-19 14:57:53 +02:00
Marco Neumann d7dc305972
feat: allow overwriting DataFusion's default config (#7586)
This is helpful to test changes in our defaults but also for testing.

Required for https://github.com/influxdata/idpe/issues/17474 .

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2023-04-18 11:28:45 +00:00
Carol (Nichols || Goulding) 76d155fe89
feat: Configuration for hot vs cold thresholds
This creates a separate option for the number of minutes *without* a
write that a partition must have before being considered for cold
compaction.

This is a new CLI flag so that it can have a different default from hot
compaction's compaction_partition_minute_threshold.

I didn't add "hot" to compaction_partition_minute_threshold's name so
that k8s-idpe doesn't have to change to continue running hot compaction
as it is today.

Then use the relevant threshold earlier, when creating the
PartitionsSourceConfig, to make it clearer which threshold is used
where.

Right now, this will silently ignore any CLI flag specified that isn't
relevant to the current compaction mode. We might want to change that to
warn or error to save debugging time in the future.
2023-04-14 17:33:05 -04:00
Carol (Nichols || Goulding) 15a7c527b4
feat: Add a --compaction-type CLI arg that can be hot or cold 2023-04-14 17:33:05 -04:00
kodiakhq[bot] 0020660b53
Merge branch 'main' into cn/remove-old-querier 2023-04-13 13:59:52 +00:00
Stuart Carnie 5965cee179
feat: Update InfluxQL end-to-end test output (#7512)
* feat: Specialises test output formatting for each language

* Also fixes an error uncovered in the `write_columnar` when tag
  columns are `NULL`

Closes #7145

* chore: Run cargo hakari tasks

* chore: Add sorted output until #7513 is addressed

* chore: clippy 📋

* feat: Add `options` to `write_columnar`

* Added ability to configure border rendering, including removing
  borders. This helps avoid variable width issues with EXPLAIN output,
  which tends to vary and cause flaky test failures.

* chore: rustfmt 🧹

* chore: update expected output

* chore: clarify what "this" is

---------

Co-authored-by: CircleCI[bot] <circleci@influxdata.com>
2023-04-13 09:58:12 +00:00
Carol (Nichols || Goulding) acf857816e
fix: Remove old querier 2023-04-12 13:18:23 -04:00
Dom 13572e36fa
Merge branch 'main' into dom/remove-explicit-replica 2023-04-12 16:29:18 +01:00
Carol (Nichols || Goulding) d025362ce0
fix: Remove old router 2023-04-12 10:15:48 -04:00