Commit Graph

5032 Commits (c107434d2008694461499b38257f79be34b7d054)

Author SHA1 Message Date
Jake Goulding 69939a5ae2 perf: Don't open the output file each time we write.
This improves performance of the the file output mode, which should
make it easier to improve the performance of the core generation
logic.

Benchmarked via:

```
time \
./target/release/iox_data_generator \
--spec iox_data_generator/schemas/fully-supported.toml \
--output /tmp/out \
--start '1 month ago'
```

Before:

```
Submitted 271608 total points

real	10.912	10911567us
user	3.129	3129032us
sys	6.257	6257340us
cpu	86%
mem	7152 KiB
```

After:

```
Submitted 271588 total points

real	2.291	2291364us
user	1.969	1969357us
sys	0.058	58030us
cpu	88%
mem	7104 KiB
```

That's 21.0% of the previous time.
2021-09-16 10:57:59 -04:00
Andrew Lamb ce224bd37f
fix: Capture query execution traces for storage gRPC queries as well (#2553)
* fix: Capture query execution traces for storage gRPC queries as well

* refactor: remove debugging droppings

* refactor: do not Box::pin within TracedStream

* refactor: Use Futures::TryStreamExt rather than custom collect function

* fix: remove wild println

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-09-16 14:45:20 +00:00
kodiakhq[bot] ad4b8532bf
Merge pull request #2522 from influxdata/ntran/delete_read
feat: push delete predicate down to RUB and OS chunks to eliminate deleted data at query time
2021-09-16 13:31:32 +00:00
kodiakhq[bot] 33cd1cffad
Merge branch 'main' into ntran/delete_read 2021-09-16 13:22:50 +00:00
kodiakhq[bot] b13fb3ea93
Merge pull request #2541 from influxdata/crepererum/time_tests
test: even more time-related lifting
2021-09-16 12:05:52 +00:00
kodiakhq[bot] fb8a376a04
Merge branch 'main' into crepererum/time_tests 2021-09-16 11:57:42 +00:00
Andrew Lamb a478138756
refactor: Add SpanContext:new() to make a new span (#2551)
* refactor: Add SpanContext::new() and remove make_span

* fix: generate random trace_id and span_ids

* docs: Update trace/src/ctx.rs

Co-authored-by: Raphael Taylor-Davies <1781103+tustvold@users.noreply.github.com>

Co-authored-by: Raphael Taylor-Davies <1781103+tustvold@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-09-16 11:02:28 +00:00
kodiakhq[bot] 16157daad8
Merge pull request #2555 from influxdata/er/fix/read_buffer/ord
fix: Ensure byte trimmed floats can handle arbitrary float literals
2021-09-16 09:10:13 +00:00
Marco Neumann bb17b4e2c2 test: even more time-related lifting
Lift a few `Utc::now()` calls further and narrow down checks in tests.
Also avoid a few `<` comparisons which might not always hold.
2021-09-16 11:05:10 +02:00
Edd Robinson e51dd0365a refactor: PR feedback
Co-authored-by: Marko Mikulicic <mkm@influxdata.com>
2021-09-16 10:01:44 +01:00
Edd Robinson f7228ddd60 test: add test for byte trimmed floats 2021-09-16 10:01:44 +01:00
Edd Robinson d387108dab fix: float byte trimmer filter range 2021-09-16 10:01:44 +01:00
Edd Robinson 0250bd1337 fix: ensure range filter works with null 2021-09-16 10:01:44 +01:00
Edd Robinson 1a70865a03 fix: ensure float byte trimmed predicate pushdown works for unencodable values 2021-09-16 10:01:44 +01:00
Edd Robinson 483508e3c6 feat: add rle method for identifying all non-null row IDs 2021-09-16 10:01:44 +01:00
Edd Robinson d04a0d1137 feat: add method for identifying all non-null row IDs 2021-09-16 10:01:44 +01:00
Edd Robinson 70b0ba44b3 test: failing filter test 2021-09-16 10:01:44 +01:00
kodiakhq[bot] ca1973fca7
Merge pull request #2556 from influxdata/crepererum/preserved_catalog_api_split
refactor: split preserved catalog `api` into `core` and `interface`
2021-09-16 08:38:37 +00:00
Marco Neumann 2820db5583 refactor: split preserved catalog `api` into `core` and `interface`
This makes it clearer which traits and functions users of the preserved
catalog must implement. This also splits the error types into smaller
enums that are easier to understand.

This change should make it easier to implement new functionality (like
capturing delete predicates).
2021-09-16 10:30:11 +02:00
Raphael Taylor-Davies 1d55d9a1b5
feat: add pbjson support (#2468)
* feat: add pbjson support

* chore: fix test
2021-09-16 07:33:27 +00:00
Carol (Nichols || Goulding) 91fd32d506 fix: Reset restored db's state instead of restarting background worker 2021-09-15 19:04:05 -04:00
Nga Tran 61e1eac135 fix: fix the cases of multi[le expressions in delete predicate 2021-09-15 17:00:21 -04:00
Carol (Nichols || Goulding) d70d94100e refactor: Extract a type alias 2021-09-15 17:00:09 -04:00
Carol (Nichols || Goulding) 81feced9d6 fix: Restart database background worker when it's restored 2021-09-15 16:59:49 -04:00
Carol (Nichols || Goulding) 7c81c280cf fix: Shut down a database when it's deleted 2021-09-15 16:59:49 -04:00
Carol (Nichols || Goulding) 7b6d8f9327 feat: Add an API for restoring a database that was marked deleted 2021-09-15 16:59:37 -04:00
Andrew Lamb 185f45f56b
chore: Update datafusion + other deps (#2545)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-09-15 20:56:44 +00:00
kodiakhq[bot] 74f1e0377c
Merge pull request #2547 from influxdata/cn/more-database-states
test: Check for other error Database States
2021-09-15 19:52:51 +00:00
kodiakhq[bot] 957df68da3
Merge branch 'main' into cn/more-database-states 2021-09-15 19:44:11 +00:00
Raphael Taylor-Davies c66095cad1
feat: remove metrics crate (#2552) 2021-09-15 19:43:33 +00:00
Raphael Taylor-Davies 6e7fa3e574
feat: migrate http ingest metrics (#2542)
* feat: migrate http ingest metrics

* chore: review feedback

* refactor: RAII entry ingest recorder
2021-09-15 19:01:10 +00:00
Nga Tran 7175488133 chore: add some comments 2021-09-15 14:45:04 -04:00
Carol (Nichols || Goulding) 8f54dbcb58 test: Check for other error Database States
Connects to #2539.
2021-09-15 14:44:14 -04:00
Nga Tran 3486cc8b38 fix: should not send an empty delete predicate predicate which means delete everything (no time range) 2021-09-15 14:14:26 -04:00
Andrew Lamb 74d3c2e6d2
feat: Translate DataFusion execution metrics to IOx Spans (#2529)
* feat: Translate DataFusion execution metrics to IOx Spans

* fix: add end to end test to ensure plumbing is hookedup

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-09-15 18:14:23 +00:00
Raphael Taylor-Davies 1ea4335ff3
fix: report correct DatabaseStateCode (#2543)
* fix: report correct DatabaseStateCode

* chore: fix lint

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-09-15 18:02:54 +00:00
Raphael Taylor-Davies 6f2301e16c
feat: migrate write buffer metrics (#2536)
* feat: migrate write buffer metrics

* feat: update server/src/write_buffer.rs

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

Co-authored-by: Andrew Lamb <alamb@influxdata.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-09-15 17:41:55 +00:00
kodiakhq[bot] c4d39f328f
Merge pull request #2537 from influxdata/crepererum/issue2493c
feat: `Predicate` serialization
2021-09-15 16:27:02 +00:00
Marco Neumann 72021e010f test: test unsupported cases of predicate serialization 2021-09-15 18:18:05 +02:00
Marco Neumann c5ebf4a2e6 refactor: remove unused predicate serialization variants 2021-09-15 18:05:11 +02:00
Marco Neumann 44eb3b994d feat: `Predicate` serialization
Closes #2493.
2021-09-15 16:37:25 +02:00
Raphael Taylor-Davies 27b0c46f79
feat: shutdown WriteBufferConsumer on drop (#2533)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-09-15 11:48:56 +00:00
kodiakhq[bot] c9321f4991
Merge pull request #2535 from influxdata/crepererum/time_of_write
refactor: make `time_of_write` a parameter
2021-09-15 10:05:52 +00:00
Marco Neumann 86031b03dc refactor: make time_of_write a parameter
Instead of depending on the `chrono` clock implicitly via `Utc::now()`
we should make it an explicit parameter. This is essential for testing:

1. We have many tests guessing around this value by taking `Utc::now()`
   directly before or after the write (this commit doesn't fix that, but
   allows us to fix it in a follow-up).
2. We have some tests that ignore the `time_of_write` values in some
   comparisons because they cannot control that value (fix not included
   here but left as a follow-up).
3. The upcoming compression (#2528) needs to control timestamps within
   the compressed payload (and `time_of_write` is embedded in the
   parquet metadata) because the compressed size depends on it (even if
   the uncompressed size is stable).

In general I argue that a "clock" is always data and should be passed
(either as a value or as a "now"-function) from the API layer. Hidden
clock checks just make mocking and tests a nightmare (we've seen this w/
replay tests as well).
2021-09-15 11:39:15 +02:00
kodiakhq[bot] 764cf1fdf0
Merge pull request #2532 from influxdata/crepererum/parquet_file_wo_query
refactor: decouple `parquet_file` from  `query`
2021-09-15 08:35:41 +00:00
kodiakhq[bot] de732b4273
Merge branch 'main' into crepererum/parquet_file_wo_query 2021-09-15 07:15:19 +00:00
Nga Tran 63cc7b3fb0 test: more tests to discover what still need to be done 2021-09-14 17:57:30 -04:00
Nga Tran f4f140d3b7 chore: merge main to branch 2021-09-14 13:25:32 -04:00
Raphael Taylor-Davies 939c9ca038
fix: reset Database background worker on deletion (#2530)
* fix: reset Database background worker on deletion

* chore: update server/src/database.rs

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

* chore: add database delete restore test

* chore: fix logical conflicts

Co-authored-by: Andrew Lamb <alamb@influxdata.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-09-14 16:57:33 +00:00
kodiakhq[bot] aad3c04bc4
Merge pull request #2531 from influxdata/crepererum/chunk_order_type
refactor: introduce `ChunkOrder` type
2021-09-14 16:36:34 +00:00