Commit Graph

1366 Commits (595d13956d98d40883415b02d6e6ce47321877f1)

Author SHA1 Message Date
Edd Robinson 595d13956d test: benchmarks for general read_group case
This commit adds some initial benchmarks for the general read_group
approach using a hashing strategy. Benchmarks are as follows:

segment_read_group_all_time_vary_cardinality/cardinality_20_columns_2_rows_500000
                        time:   [23.335 ms 23.363 ms 23.397 ms]
                        thrpt:  [854.82  elem/s 856.07  elem/s 857.07
elem/s]
Found 8 outliers among 100 measurements (8.00%)
  4 (4.00%) high mild
  4 (4.00%) high severe
segment_read_group_all_time_vary_cardinality/cardinality_200_columns_2_rows_500000
                        time:   [34.266 ms 34.301 ms 34.346 ms]
                        thrpt:  [5.8231 Kelem/s 5.8307 Kelem/s 5.8367
Kelem/s]
Found 13 outliers among 100 measurements (13.00%)
  5 (5.00%) high mild
  8 (8.00%) high severe
segment_read_group_all_time_vary_cardinality/cardinality_2000_columns_2_rows_500000
                        time:   [48.788 ms 48.996 ms 49.238 ms]
                        thrpt:  [40.619 Kelem/s 40.820 Kelem/s 40.993
Kelem/s]
Found 11 outliers among 100 measurements (11.00%)
  3 (3.00%) high mild
  8 (8.00%) high severe
Benchmarking
segment_read_group_all_time_vary_cardinality/cardinality_20000_columns_3_rows_500000:
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 8.2s, or reduce sample count to 60.
segment_read_group_all_time_vary_cardinality/cardinality_20000_columns_3_rows_500000
                        time:   [80.133 ms 80.201 ms 80.287 ms]
                        thrpt:  [249.11 Kelem/s 249.37 Kelem/s 249.58
Kelem/s]
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) high mild
  2 (2.00%) high severe

Benchmarking
segment_read_group_all_time_vary_columns/cardinality_20000_columns_2_rows_500000:
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 7.4s, or reduce sample count to 60.
segment_read_group_all_time_vary_columns/cardinality_20000_columns_2_rows_500000
                        time:   [73.692 ms 73.951 ms 74.245 ms]
                        thrpt:  [269.38 Kelem/s 270.45 Kelem/s 271.40
Kelem/s]
Found 13 outliers among 100 measurements (13.00%)
  13 (13.00%) high severe
Benchmarking
segment_read_group_all_time_vary_columns/cardinality_20000_columns_3_rows_500000:
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 8.1s, or reduce sample count to 60.
segment_read_group_all_time_vary_columns/cardinality_20000_columns_3_rows_500000
                        time:   [79.837 ms 79.934 ms 80.079 ms]
                        thrpt:  [249.75 Kelem/s 250.21 Kelem/s 250.51
Kelem/s]
Found 7 outliers among 100 measurements (7.00%)
  5 (5.00%) high mild
  2 (2.00%) high severe
Benchmarking
segment_read_group_all_time_vary_columns/cardinality_20000_columns_4_rows_500000:
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 9.7s, or reduce sample count to 50.
segment_read_group_all_time_vary_columns/cardinality_20000_columns_4_rows_500000
                        time:   [95.415 ms 95.549 ms 95.707 ms]
                        thrpt:  [208.97 Kelem/s 209.32 Kelem/s 209.61
Kelem/s]
Found 15 outliers among 100 measurements (15.00%)
  7 (7.00%) high mild
  8 (8.00%) high severe

segment_read_group_all_time_vary_rows/cardinality_20000_columns_2_rows_250000
                        time:   [38.897 ms 39.045 ms 39.227 ms]
                        thrpt:  [509.86 Kelem/s 512.22 Kelem/s 514.18
Kelem/s]
Found 13 outliers among 100 measurements (13.00%)
  4 (4.00%) high mild
  9 (9.00%) high severe
Benchmarking
segment_read_group_all_time_vary_rows/cardinality_20000_columns_2_rows_500000:
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 7.2s, or reduce sample count to 60.
segment_read_group_all_time_vary_rows/cardinality_20000_columns_2_rows_500000
                        time:   [71.965 ms 72.190 ms 72.445 ms]
                        thrpt:  [276.07 Kelem/s 277.04 Kelem/s 277.91
Kelem/s]
Found 21 outliers among 100 measurements (21.00%)
  4 (4.00%) low mild
  3 (3.00%) high mild
  14 (14.00%) high severe
Benchmarking
segment_read_group_all_time_vary_rows/cardinality_20000_columns_2_rows_750000:
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 10.7s, or reduce sample count to 40.
segment_read_group_all_time_vary_rows/cardinality_20000_columns_2_rows_750000
                        time:   [106.48 ms 106.58 ms 106.70 ms]
                        thrpt:  [187.43 Kelem/s 187.65 Kelem/s 187.82
Kelem/s]
Found 4 outliers among 100 measurements (4.00%)
  2 (2.00%) high mild
  2 (2.00%) high severe
Benchmarking
segment_read_group_all_time_vary_rows/cardinality_20000_columns_2_rows_1000000:
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 14.0s, or reduce sample count to 30.
segment_read_group_all_time_vary_rows/cardinality_20000_columns_2_rows_1000000
                        time:   [140.02 ms 140.14 ms 140.29 ms]
                        thrpt:  [142.57 Kelem/s 142.71 Kelem/s 142.84
Kelem/s]
Found 4 outliers among 100 measurements (4.00%)
  4 (4.00%) high severe

segment_read_group_pre_computed_groups_vary_cardinality/cardinality_2_columns_1_rows_500000
                        time:   [51.734 us 52.123 us 52.560 us]
                        thrpt:  [38.051 Kelem/s 38.371 Kelem/s 38.659
Kelem/s]
Found 18 outliers among 100 measurements (18.00%)
  3 (3.00%) high mild
  15 (15.00%) high severe
segment_read_group_pre_computed_groups_vary_cardinality/cardinality_20_columns_2_rows_500000
                        time:   [50.546 us 50.642 us 50.785 us]
                        thrpt:  [393.82 Kelem/s 394.93 Kelem/s 395.68
Kelem/s]
Found 8 outliers among 100 measurements (8.00%)
  3 (3.00%) low mild
  2 (2.00%) high mild
  3 (3.00%) high severe
segment_read_group_pre_computed_groups_vary_cardinality/cardinality_200_columns_2_rows_500000
                        time:   [267.47 us 270.23 us 273.10 us]
                        thrpt:  [732.33 Kelem/s 740.12 Kelem/s 747.75
Kelem/s]
segment_read_group_pre_computed_groups_vary_cardinality/cardinality_2000_columns_2_rows_500000
                        time:   [14.961 ms 15.033 ms 15.113 ms]
                        thrpt:  [132.33 Kelem/s 133.04 Kelem/s 133.68
Kelem/s]
Found 11 outliers among 100 measurements (11.00%)
  3 (3.00%) high mild
  8 (8.00%) high severe

segment_read_group_pre_computed_groups_vary_columns/cardinality_200_columns_1_rows_500000
                        time:   [84.825 us 84.938 us 85.083 us]
                        thrpt:  [2.3506 Melem/s 2.3546 Melem/s 2.3578
Melem/s]
Found 14 outliers among 100 measurements (14.00%)
  7 (7.00%) high mild
  7 (7.00%) high severe
segment_read_group_pre_computed_groups_vary_columns/cardinality_200_columns_2_rows_500000
                        time:   [258.81 us 259.33 us 260.05 us]
                        thrpt:  [769.08 Kelem/s 771.22 Kelem/s 772.77
Kelem/s]
Found 14 outliers among 100 measurements (14.00%)
  2 (2.00%) high mild
  12 (12.00%) high severe
Benchmarking
segment_read_group_pre_computed_groups_vary_columns/cardinality_200_columns_3_rows_500000:
Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to
increase target time to 6.1s, enable flat sampling, or reduce sample
count to 60.
segment_read_group_pre_computed_groups_vary_columns/cardinality_200_columns_3_rows_500000
                        time:   [1.1971 ms 1.2020 ms 1.2079 ms]
                        thrpt:  [165.58 Kelem/s 166.39 Kelem/s 167.07
Kelem/s]
Found 13 outliers among 100 measurements (13.00%)
  3 (3.00%) high mild
  10 (10.00%) high severe
segment_read_group_pre_computed_groups_vary_rows/cardinality_200_columns_2_rows_250000
                        time:   [252.42 us 252.58 us 252.75 us]
                        thrpt:  [791.31 Kelem/s 791.84 Kelem/s 792.32
Kelem/s]
Found 10 outliers among 100 measurements (10.00%)
  2 (2.00%) high mild
  8 (8.00%) high severe
segment_read_group_pre_computed_groups_vary_rows/cardinality_200_columns_2_rows_500000
                        time:   [271.68 us 272.46 us 273.59 us]
                        thrpt:  [731.01 Kelem/s 734.04 Kelem/s 736.15
Kelem/s]
Found 8 outliers among 100 measurements (8.00%)
  8 (8.00%) high severe
segment_read_group_pre_computed_groups_vary_rows/cardinality_200_columns_2_rows_750000
                        time:   [293.17 us 293.42 us 293.65 us]
                        thrpt:  [681.09 Kelem/s 681.63 Kelem/s 682.20
Kelem/s]
Found 9 outliers among 100 measurements (9.00%)
  1 (1.00%) low mild
  4 (4.00%) high mild
  4 (4.00%) high severe
segment_read_group_pre_computed_groups_vary_rows/cardinality_200_columns_2_rows_1000000
                        time:   [306.48 us 307.11 us 307.95 us]
                        thrpt:  [649.45 Kelem/s 651.22 Kelem/s 652.57
Kelem/s]
Found 5 outliers among 100 measurements (5.00%)
  3 (3.00%) high mild
  2 (2.00%) high severe
2020-12-17 11:10:26 +00:00
Edd Robinson 6c7debcd3f refactor: reorganise existing read_group benchmark 2020-12-17 11:10:26 +00:00
Edd Robinson 80bb925061 test: read_group test coverage 2020-12-17 11:10:26 +00:00
Edd Robinson 89c3162b5d feat: hash-based read_group aggregates 2020-12-17 11:10:26 +00:00
Edd Robinson cd7a5a78b1 refactor: clarify code-paths with todo 2020-12-17 11:10:26 +00:00
Michael Hall de435196ab
fix: Move Contributing text into separate document (#566)
Fixes #512
2020-12-16 16:06:58 -05:00
Carol (Nichols || Goulding) b11896b7e9
fix: Compiler errors missed in aws object store tests because CI wasn't checking them (#564) 2020-12-15 12:28:42 -05:00
Andrew Lamb 699504a022
feat: implement read_group for Sum, Count and Mean aggregates (#557)
* feat: Implement read_group for "normal" aggregates

* test: add tests
2020-12-15 09:35:00 -05:00
Andrew Lamb a6d2c13888
chore: Update arrow + other depenencies (#540)
* chore: Update arrow + other depenencies

* chore: Update write_buffer and query crate
2020-12-15 08:46:27 -05:00
Andrew Lamb 1740e26ec3
fix: do not produce gRPC series frames for fields that only contain null values (#558)
* test: add test for field columns with only nulls

* fix: do not produce series for null fields, tests for same

* fix: remove uneeded test printlns
2020-12-15 08:28:23 -05:00
Dom d34e09dab1
Merge pull request #561 from influxdata/dom/rustfmt-wrapping-unmangle
style: unmangle wrapped diagrams
2020-12-14 14:09:11 +00:00
Dom df82e8ced7
Merge branch 'main' into dom/rustfmt-wrapping-unmangle 2020-12-14 13:58:56 +00:00
Dom 4c35253fd5 style: unmangle wrapped diagrams
Adds #[rustfmt::skip] to comment blocks containing diagrams to skip wrapping.
2020-12-14 13:14:36 +00:00
Dom 193b68ee79
Merge pull request #543 from influxdata/dom/opentelemetry
feat(tracing): integrate Jaeger tracing sink
2020-12-14 13:02:16 +00:00
Dom 41f5099691 refactor: compile out trace! level for release builds
Configures the IOx tracing to compile out trace!() level events in the release
binary. This effectively gives contributors three levels of output:

* Important to the user (info & friends)
* Not important for regular running, but needed to debug
* Only useful to devs in a specific part of the system, never seen by user

Documents this behaviour (and general usage guidelines) for contributors.
2020-12-14 12:06:53 +00:00
Dom 667b2595d9 refactor: use expect for tracing unwrap 2020-12-14 12:06:53 +00:00
Dom 21110dc233 style: prefer is_ok()
Co-authored-by: Edd Robinson <me@edd.io>
2020-12-14 12:06:53 +00:00
Dom 2d29b985b4 chore(deps): remove env_logger from ingest
Already using tracing!
2020-12-14 12:06:53 +00:00
Dom 60ee7e1dbb chore(deps): remove unused env_logger 2020-12-14 12:06:53 +00:00
Dom 80da024212 docs(tracing): add IOx tracing usage doc
Describes the components involved in, and usage of the tracing system in IOx.
2020-12-14 12:06:53 +00:00
Dom 9d7389dec2 feat(tracing): add Jaeger tracing sink
Adds telemetry / tracing with support for a Jaeger backend, and changes the
logger from env_logger to a tracing subscriber to collect the log entries.

Events are batched and then emitted asynchronosuly via UDP to the Jaeger
collector using the tokio runtime. There's a bunch of settings (env
vars) related to batch sizes and flush frequency etc - they're all using
their default values at the moment (if it ain't broke...) See the docs
for more info:

    https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/sdk-environment-variables.md#opentelemetry-environment-variable-specification

This is only part 1 of telemetry - it does NOT propagate traces across RPC
boundaries as we're still defining how all this should work. I've created #541
to track this.

Closes #202 and closes #203.
2020-12-14 12:06:52 +00:00
Dom 7e351ba609
Merge pull request #559 from influxdata/dom/rustfmt-wrapping
style: wrap comments
2020-12-11 18:36:31 +00:00
Dom 6f473984d0 style: wrap comments
Runs rustfmt with the new config.
2020-12-11 18:22:26 +00:00
Dom 1446b5fcfc style: enforce comment wrapping
Adds a rustfmt config file so it automatically wraps comments to 80 chars (the
default.)

This is enforced as part of the CI pipeline.
2020-12-11 18:15:23 +00:00
Andrew Lamb d47acfa3b5
fix: better read_group input validation checking: group and hints fields (#539)
* fix: Error if hint argument is provided to read_groupg

* fix: Verify compatible group and group_keys settings

* docs: Add clarifying comments on validation

* refactor: use into() rather than String::from for consistency
2020-12-11 11:33:21 -05:00
Andrew Lamb ea6b2f6bc8
refactor: remove minor code duplication (#555) 2020-12-11 11:18:00 -05:00
Carol (Nichols || Goulding) 9dca302d3a
Merge pull request #545 from influxdata/cn+er/feat/segment-rle-group-final 2020-12-10 15:47:12 -05:00
Carol (Nichols || Goulding) fdf82be70b docs: Improving the column_name_and_column description 2020-12-10 15:22:45 -05:00
Carol (Nichols || Goulding) be8c266d3a refactor: Remove one whole lifetime from ReadGroupResult 2020-12-10 15:22:45 -05:00
Carol (Nichols || Goulding) b620c37ecb refactor: Remove one use of the input lifetime in ReadGroupResult 2020-12-10 15:22:45 -05:00
Carol (Nichols || Goulding) 383cd7cf38 refactor: Simplify lifetimes by returning col names from seg store 2020-12-10 15:22:45 -05:00
Carol (Nichols || Goulding) 383b601e10 fix: Some of the slice lifetimes aren't needed
Some are, though
2020-12-10 15:22:45 -05:00
Carol (Nichols || Goulding) 2abb9abfbc refactor: Elide some more lifetimes 2020-12-10 15:22:45 -05:00
Carol (Nichols || Goulding) 4dbc77b441 fix: Change lifetimes on ReadGroupResults too 2020-12-10 15:22:45 -05:00
Carol (Nichols || Goulding) f98f45e49f fix: Correct and clarify lifetimes around the segment store 2020-12-10 15:22:45 -05:00
Dom 0032d03656
Merge pull request #550 from influxdata/dom/deprecate-mem-qe
chore: deprecate mem_qe
2020-12-10 19:00:02 +00:00
Dom c2156c6271
Merge branch 'main' into dom/deprecate-mem-qe 2020-12-10 18:47:55 +00:00
Dom 8ba15ae35f
Merge pull request #536 from brandonsov/brandonsov/add-bucket-location-to-object-store-errors
fix: Report bucket/location when relevant with object store errors
2020-12-10 18:23:27 +00:00
Dom c9a101ecae
Merge branch 'main' into brandonsov/add-bucket-location-to-object-store-errors 2020-12-10 18:14:27 +00:00
Dom d19a56eee0
Merge branch 'main' into dom/deprecate-mem-qe 2020-12-10 18:06:17 +00:00
Dom b9968c19bf
Merge pull request #549 from influxdata/dom/panic-handler-panic
fix: never uninstall panic handler
2020-12-10 18:05:18 +00:00
Dom 8ad0274cf1 chore: deprecate mem_qe 2020-12-10 18:02:20 +00:00
Brandon Sov 568065d63f style: rename location_string to location_copy 2020-12-10 09:41:24 -08:00
Brandon Sov 6247a01144 test: update typos 2020-12-10 09:24:42 -08:00
Dom 6513e2b056 fix: never uninstall panic handler
Fixes #548
2020-12-10 17:16:10 +00:00
Andrew Lamb 50ba529cb8
test: Adds tests for read_group for None aggregates (#538) 2020-12-10 11:31:15 -05:00
Edd Robinson 088a576eb0
Merge pull request #527 from influxdata/er/feat/segment-rle-group-final
feat: grouped aggregates for low-cardinality columns
2020-12-10 15:56:07 +00:00
Edd Robinson 7e04a6eaab refactor: address more PR feedback 2020-12-10 15:15:34 +00:00
Edd Robinson 90b112c652 refactor: address PR feedback 2020-12-10 15:15:34 +00:00
Edd Robinson 138031d5b1 test: add test case for multiple aggregates 2020-12-10 15:15:34 +00:00