Commit Graph

8510 Commits (d7838e357f7c1a5135ddf0e9d9d83dd037b4a466)

Author SHA1 Message Date
kodiakhq[bot] 5eef15e629
Merge pull request #5009 from influxdata/cn/move-sharding-logic
refactor: Move sharding query from namespace to table
2022-07-01 17:53:33 +00:00
kodiakhq[bot] 84d2573ab6
Merge branch 'main' into cn/move-sharding-logic 2022-07-01 17:46:33 +00:00
kodiakhq[bot] 6a420e339b
Merge pull request #5019 from influxdata/cn/upgrade-rust
chore: Upgrade to Rust 1.62
2022-07-01 17:46:04 +00:00
Carol (Nichols || Goulding) 69a3ad95b6
fix: Remove let bindings to the unit value found by clippy
The union and intersect methods on RowIDs don't return any value, so
these let bindings were always getting the unit value. Then the if/else
block that the bindings were returned from wasn't being assigned to
anything, so removing the binding and the return of the unit value from
these blocks is fine.
2022-07-01 13:31:32 -04:00
Carol (Nichols || Goulding) 03aa338897
fix: Remove unnecessary String allocations found by clippy 2022-07-01 13:31:32 -04:00
Carol (Nichols || Goulding) 6f07b3f547
fix: Use unsigned_abs instead of casting abs to u64 2022-07-01 13:31:32 -04:00
Carol (Nichols || Goulding) 69c123031a
fix: Remove unused lifetime declarations clippy found 2022-07-01 13:31:32 -04:00
Carol (Nichols || Goulding) 1c4caa2cc2
chore: Upgrade to Rust 1.62 2022-07-01 13:31:31 -04:00
Marco Neumann 1993448abf
refactor: remove `Predicat::partition_key` (#5016)
There is no way a user can filter for partition keys (neither via
InfluxRPC nor via SQL) and the query engine doesn't use this field at
all. So let's remove it.

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-01 17:17:29 +00:00
Nga Tran 153c262d63
fix: do not panic on chunks with same range of sequence numbers but are not time-overlapped (#5018)
* fix: do not panic on chunks with same range of sequence numbers but are not time-overlapped

* chore: remove unused comment

* chore: fix typo
2022-07-01 15:58:09 +00:00
Marco Neumann 016dd93d9c
feat: filter chunks before requesting read buffers (#4996)
Fixes #4976.
2022-07-01 08:59:07 +00:00
dependabot[bot] 09aaf18fb4
chore(deps): Bump clap from 3.2.6 to 3.2.8 (#5015)
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.6 to 3.2.8.
- [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/v3.2.6...v3.2.8)

---
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>
2022-07-01 08:17:04 +00:00
pierwill 54d3c1e69f
fix: Fix docs for `schema::Schema::is_empty` (#5011)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-01 01:13:28 +00:00
Andrew Lamb 0c705fecf1
refactor: Clean up timestamp handling logic and avoid a conversion (#4988)
* refactor: Clean up timestamp handling logic

* fix: Remove unused timestamp function

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-01 01:07:21 +00:00
Jacob Marble 1ef9c7ceda
chore: remove perf.py (#5012)
Closes #4485
Closes #5010

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-30 22:32:47 +00:00
Marco Neumann 87a8579742
refactor: `ChunkOrder::new` cannot fail (#5004)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-30 22:26:20 +00:00
Marco Neumann f8b1b847cc
fix: docs+assertions for `TimestampRange` (#4994)
* docs: fix+clarify timestamp doc comments

* feat: assert `TimestampRange` in non-debug mode

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-30 16:45:44 +00:00
Carol (Nichols || Goulding) 380166f4c0
refactor: Move sharding query from namespace to table
Better supports future work. Fixes #5003.
2022-06-30 11:32:23 -04:00
Marco Neumann be53716e4d
refactor: use IDs for `parquet_file.column_set` (#4965)
* feat: `ColumnRepo::list_by_table_id`

* refactor: use IDs for `parquet_file.column_set`

Closes #4959.

* refactor: introduce `TableSchema::column_id_map`
2022-06-30 15:08:41 +00:00
Sam Arnold 9438570ba1
test: document how to run tests (#4982)
* test: document how to run tests

Also fix a few issues for local runs.

* docs: add back one-liner for running end to end tests

* docs: add comment for clap_blocks test

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>

* docs: add comment in influxdb_iox/tests/end_to_end_cases/cli.rs

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
2022-06-30 14:01:35 +00:00
kodiakhq[bot] cc69ce4520
Merge pull request #4887 from influxdata/cn/actually-use-sharder-in-querier
feat: Only query the ingesters relevant to the table
2022-06-30 12:58:27 +00:00
Carol (Nichols || Goulding) 3049479b78
feat: Implement new querier to ingester config design 2022-06-30 08:26:50 -04:00
Carol (Nichols || Goulding) 59da2dccb8
feat: Assert if no ingester addresses are found
Temporarily support `--ingester-addresses` (and always return all
ingesters) so that this PR can be deployed during the switchover.
2022-06-30 08:22:47 -04:00
Carol (Nichols || Goulding) 0e450deca8
feat: Support a sequencer being mapped to multiple ingesters 2022-06-30 08:22:47 -04:00
Carol (Nichols || Goulding) 7965bda42f
fix: Accept JSON ingester/shard config as CLI param value or env var value 2022-06-30 08:22:47 -04:00
Carol (Nichols || Goulding) 44bce8e3ec
fix: Don't assume one ingester per shard/table 2022-06-30 08:22:47 -04:00
Carol (Nichols || Goulding) 4e91121e29
feat: Allow specification of sequencer to ingester mappings in a JSON file 2022-06-30 08:22:46 -04:00
Carol (Nichols || Goulding) f37f8013ec
feat: Assign a sequencer id to QuerierTables to know which ingester to query 2022-06-30 08:22:46 -04:00
Carol (Nichols || Goulding) 1824dbdebd
feat: Create IngesterConnection optionally using a map of sequencer IDs to ingester addresses 2022-06-30 08:22:46 -04:00
dependabot[bot] 40a8525520
chore(deps): Bump serde_json from 1.0.81 to 1.0.82 (#4992)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.81 to 1.0.82.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.81...v1.0.82)

---
updated-dependencies:
- dependency-name: serde_json
  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>
2022-06-30 09:54:08 +00:00
dependabot[bot] d1e3b009c9
chore(deps): Bump smallvec from 1.8.1 to 1.9.0 (#4991)
Bumps [smallvec](https://github.com/servo/rust-smallvec) from 1.8.1 to 1.9.0.
- [Release notes](https://github.com/servo/rust-smallvec/releases)
- [Commits](https://github.com/servo/rust-smallvec/compare/v1.8.1...v1.9.0)

---
updated-dependencies:
- dependency-name: smallvec
  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>
2022-06-30 09:25:20 +00:00
dependabot[bot] 65a6ba7d45
chore(deps): Bump either from 1.6.1 to 1.7.0 (#4990)
Bumps [either](https://github.com/bluss/either) from 1.6.1 to 1.7.0.
- [Release notes](https://github.com/bluss/either/releases)
- [Commits](https://github.com/bluss/either/compare/1.6.1...1.7.0)

---
updated-dependencies:
- dependency-name: either
  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>
2022-06-30 08:21:20 +00:00
dependabot[bot] 4cf7bb8dee
chore(deps): Bump clap from 3.2.6 to 3.2.7 (#4989)
Bumps [clap](https://github.com/clap-rs/clap) from 3.2.6 to 3.2.7.
- [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/v3.2.6...v3.2.7)

---
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: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-30 08:04:57 +00:00
Marco Neumann 05189fdb00
fix: ensure panic is propagated throw `AdapterStream` (#4980)
Prior to this change background tasks that we feed into `AdapterStream`
can panic but that would just end the stream without any user-visible
error (except for the panic message on stdout/stderr).

This was found while developing #4964. I have proposed another fix in #4966
but found that I actually developed an existing solution a 2nd time:
`watch_task`. But I also see a major issue with the existing API: one
can create `AdapterStream` with ordinary tokio tasks that are not
watched at all, leaving the burden to the implementor to check for that
(and actually we forgot that in `parquet_file`).

So this change takes a slightly different approach:
The `AdapterStream` does NOT accept ordinary join handles any longer but
requires that you pass a "watched task". The newly introduced
`WatchedTask` does the same as we did manually before: wrapping a future
into a tokio task, watch it and wrap the watcher into a task.

It is now way more difficult to do anything stupid (sure you can still
mix up the tasks and the channels, but we need at least some flexibility
here to allow for "split" and potential future fan-in/out constructs).

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-30 07:57:58 +00:00
Marko Mikulicic 16a8d29b9f
fix: Fix typo in const name (#4993) 2022-06-30 07:51:39 +00:00
Raphael Taylor-Davies 835e1c91c7
chore: update object_store to 0.3.0 (#4707)
* chore: update object_store to 0.3.0

* chore: review feedback

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-29 21:44:03 +00:00
Nga Tran 0cca975167
fix: Split overlapped files based on the order of sequence numbers and only group non-overlapped contigous small files (#4968)
* fix: Split overlapped files based on the order of sequence numbers and only group non-overlapped contigous small files

* test: add one more test for group contiguous files:

* refactor: address review comments

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-29 20:09:51 +00:00
Jacob Marble bacd2ea470
chore: unsuppress a few security notifications (#4967)
Helps #2884

- RUSTSEC-2020-0159 (withdrawn)
- RUSTSEC-2021-0127 (cargo deny says this isn't needed)
- "query" (cargo deny says this isn't needed)

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-29 19:49:50 +00:00
Andrew Lamb 01fb2e132d
chore: Update datafusion pin (#4969)
* chore: Update datafusion pin

* fix: Update for api

* fix: Explicitly set coalsce batch size

* fix: Update batch size as well

* fix: update tests for new explain plan, and improved coercion
2022-06-29 17:52:37 +00:00
Markus Westerlind 002dfb4702
Merge pull request #4979 from Marwes/once_cell
refactor: Replace all uses of lazy_static with once_cell
2022-06-29 17:33:31 +02:00
Markus Westerlind edf3f08e81 refactor: Replace all uses of lazy_static with once_cell
Went through and remove all lazy_static uses with once_cell (while waiting for the project to compile). There are still dependencies using lazy_static so it is still in the crate graph but at least there isn't an explicit dependency on it (and it is easier to update to `std::lazy::Lazy` once that is stable).
2022-06-29 16:22:02 +02:00
Nga Tran cfcc4b8426
refactor: change level 1 to level 2 preparing for next design changes (#4954)
* refactor: change level 1 to level 2 preparing for next design changes

* fix: make level-2 consistent everywhere

* chore: remove unused comments

* refactor: change all the name level_1 to level_2 to completely replace 1 with 2 to amke everything consistent

* chore: add correspinding constants for the comapction levels in the comments

Co-authored-by: Dom <dom@itsallbroken.com>
2022-06-29 14:08:58 +00:00
Marco Neumann fba58dbc5f
ci: IOx still needs to push its image tags (#4977)
This will be replaced by a pull-based approach soon, but for the time
being we still need perform the final push.
2022-06-29 09:52:44 +00:00
Marco Neumann 847c84a6b4
ci: fix `docker load` paths (#4961)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-29 08:03:02 +00:00
Marco Neumann 9b66d02229
fix: parquet reader sort order (#4964) 2022-06-28 15:28:38 +00:00
Ryan Russell 106d84c6e1
chore: readability improvements (#4955)
* chore(arrow_util): readability improvements

Signed-off-by: Ryan Russell <git@ryanrussell.org>

* chore(tracker): readability improvements

Signed-off-by: Ryan Russell <git@ryanrussell.org>

* chore(cache_system): improve readability

Signed-off-by: Ryan Russell <git@ryanrussell.org>

* refactor(lru test): rename `test_panic_id_collision`

Signed-off-by: Ryan Russell <git@ryanrussell.org>

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-28 14:28:14 +00:00
Marco Neumann c69225c5a1
Merge pull request #4960 from influxdata/crepererum/fix_ci3
ci: fix `docker save` paths
2022-06-28 15:33:14 +02:00
Marco Neumann cede296eb1 ci: fix `docker save` paths 2022-06-28 10:41:04 +02:00
Marco Neumann 1eac304305
refactor: fetch RB chunks in parallel (#4952)
Currently the querier fetches RB in a serial manner, which is probably
not good since each cache miss takes between 10ms and 250ms.

Let's try to fetch 2 in parallel and if that works well, make this a
proper config.

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-28 07:54:58 +00:00
Marco Neumann 2ebb7b195b
ci: fix image deploy (#4953)
The Influx deployment pipeline was changed so the an image push is used
as a signal for deployment (instead of a magic script that was used
before). So we need to adopt our CI to only push images when all tests
pass.

Old workflow:
- build release: builds docker images and push commit-based tags to
  registry
- deploy release: pulls built images from registry, adds+pushes branch
  tags, calls magic deploy script

New workflow:
- build release: builds docker image, saves them to disk
- deploy release: load image files, tags them, pushes tags

You may wonder why there are two steps if we could just use a single
one. The reason is: time-to-deploy. We can already build the image while we
are waiting for the tests. If the tests fail, the image will just not be
published.

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-28 07:48:41 +00:00