kodiakhq[bot]
58dd7e9532
Merge branch 'main' into crepererum/writer_buffer_seek
2021-07-20 12:29:18 +00:00
Marko Mikulicic
c01cfbc34c
fix: Increase kafka message size
2021-07-20 14:17:37 +02:00
Marco Neumann
ec7ebdff29
refactor: use lifetimes to ensure single stream / no seek while streaming
2021-07-20 13:52:33 +02:00
Marco Neumann
b0663a0337
feat: disallow multiple write buffer streams and seeking while streams
...
Multiple streams will mess up ordering. Seeking while streaming is
likely a bug and should not work.
2021-07-20 12:35:20 +02:00
Marco Neumann
38f4eec20e
feat: implement `seek` for write buffer
...
This is required to control replay ranges.
2021-07-20 10:25:56 +02:00
Marco Neumann
592424c896
refactor: use one stream per sequencer/partition
...
Advantages are:
- for large DBs w/ many partitions we can ingest data in-parallel
- on top of this change we can implement per-sequencer seeking, which is
required for replay
2021-07-19 12:26:58 +02:00
Edd Robinson
1676c33113
refactor: update write_buffer/src/kafka.rs
2021-07-16 16:56:03 +01:00
Marko Mikulicic
de0dce79f6
docs: Update write_buffer/src/kafka.rs
...
Co-authored-by: Edd Robinson <me@edd.io>
2021-07-16 17:53:02 +02:00
Marko Mikulicic
92623b5f32
fix: Set acks=all for kafka writes
2021-07-16 17:49:04 +02:00
Marko Mikulicic
cbadd65cfe
fix: Update write_buffer/src/kafka.rs
...
Co-authored-by: Andrew Lamb <alamb@influxdata.com>
2021-07-15 23:00:45 +02:00
Marko Mikulicic
06399e88e0
chore: Add some debug logs to write buffer
2021-07-15 22:18:03 +02:00
Carol (Nichols || Goulding)
7301268b4f
fix: Increase the internal librdkafka producer queue size
...
Given that we've increased the max message size by a factor of 10, also
increase the internal producer queue max size by a factor of 10 to
reduce the number of retries needed to successfully enqueue messages to
Kafka.
Connects to #2007 .
2021-07-15 11:35:55 -04:00
Carol (Nichols || Goulding)
fa3a2db0d3
fix: Retry adding Kafka messages to queue forever
...
By using [producer.send][] rather than [producer.send_result][] and
specifying Timeout::never.
Connects to #2007 .
[producer.send]: https://docs.rs/rdkafka/0.26.0/rdkafka/producer/future_producer/struct.FutureProducer.html#method.send
[producer.send_result]: https://docs.rs/rdkafka/0.26.0/rdkafka/producer/future_producer/struct.FutureProducer.html#method.send_result
2021-07-15 11:34:23 -04:00
Marco Neumann
a064820a70
fix: code comment should match the code
...
Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>
2021-07-15 17:20:46 +02:00
Marco Neumann
b5428e53a5
refactor: write buffer testing + better mocking
...
This refactors the write buffer a bit for:
- **Testing:** Add generic tests for the Kafka and the mocking
implementation. The same interface can be used easily add new
implementations (e.g. via Redis, filesystem, ...).
- **Partition on Write:** The caller of the writer operation must now
specify the partition/sequencer ID. The implicit partitioning of the
Kafka writer would have lead to broken data since we must never spill
entries w/ the same primary key over multiple partitions. At the
moment we will only use partition 0 but we can easily implement
better logic in the future.
- **Improved Mocking:** The mocked implementation now simulates a system
that feels more real. Especially the handling around multiple streams
and "write while read" has been improved. This will be helpful for
testing and for new features like seeking (during replay). A solid
realistic mock also helps us to ensure that the tests using the mock
do not rely on unrealistic behavior too much.
2021-07-15 17:20:45 +02:00
Marko Mikulicic
8d23dd6d6d
fix: Set kafka max message size in client
2021-07-14 14:46:49 +02:00
Marco Neumann
9cb9ae0874
chore: move write buffer into its own crate
2021-07-14 14:09:18 +02:00
Carol (Nichols || Goulding)
f4a9a5ae56
fix: Remove write buffer
2021-06-04 14:40:17 -04:00
Marco Neumann
eddc9319ff
docs: deny broken intradoc links
2021-04-27 13:22:28 +02:00
Carol (Nichols || Goulding)
938acb98e8
refactor: Rename WAL within the types, variables, and comments in the write_buffer crate
2021-04-21 17:43:03 +00:00
Carol (Nichols || Goulding)
f0b93c5c8c
refactor: Rename the wal crate to write_buffer
2021-04-21 17:43:03 +00:00
Andrew Lamb
48c43b136c
refactor: rename write_buffer --> mutable_buffer ( #595 )
...
* refactor: git mv write_buffer mutable_buffer
* refactor: update crate name references
* refactor: update some more references
2020-12-22 10:49:53 -05:00
Andrew Lamb
263af1eeac
feat: implement read_group in the write_buffer ( #583 )
...
* feat: implement read_group in the write_buffer
* fix: Apply suggestions from code review
Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>
* fix: rustfmt
* fix: adjust tests for min/max
* fix: Update write_buffer/src/table.rs
Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>
Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>
2020-12-22 09:03:20 -05:00
Andrew Lamb
28eac06d8f
refactor: Organize window_bounds the same as selector functions ( #594 )
...
* refactor: Organize window_bounds the same as selector functions
* fix: add missing file
2020-12-21 12:51:36 -05:00
Andrew Lamb
bb96142564
chore: Update arrow dependencies, remove custom min/max implementation ( #585 )
...
* chore: Update arrow dependency
* fix: Update code for changes in datafusion
* fix: use arrow version of min_boolean
2020-12-21 12:31:39 -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
Dom
6f473984d0
style: wrap comments
...
Runs rustfmt with the new config.
2020-12-11 18:22:26 +00:00
Andrew Lamb
ea6b2f6bc8
refactor: remove minor code duplication ( #555 )
2020-12-11 11:18:00 -05:00
Paul Dix
fa3ecbd4ed
feat: Implement write buffer to Parquet snapshotting ( #526 )
...
* feat: Implement write buffer to Parquet snapshotting
This introduces snapshot to the server packages to manage snapshotting. It also introduces a new trait for representing a Partition. There is a very crude API wired up in http_routes for testing purposes. Follow on work will bring the server package into http_routes and rework the snapshot API.
2020-12-08 14:20:43 -05:00
Andrew Lamb
4ec75a4f22
fix: Fix gRPC panic` when multiple field selections are provided ( #523 )
...
* fix: do not assert when multiple fields are selected
* fix: clippy
* fix: write unit test, fix bug
* fix: tweak comments
2020-12-03 12:31:02 -05:00
Andrew Lamb
ecc4eee8e1
refactor: Move SQL functions into is own trait ( #511 )
...
* refactor: remove uneeded function table_to_arrow from Trait
* refactor: Move SQL functions into is own trait
2020-12-02 08:23:37 -05:00
Andrew Lamb
5ef499bb63
refactor: rename Database --> TSDatabase to better reflect its purpose ( #510 )
...
* refactor: rename Database --> TSDatabase to better reflect its purpose
* refactor: rename field_columns to field_column_names
* fix: clippy?
2020-12-01 12:37:11 -05:00
Andrew Lamb
1646397891
refactor: consolidate GroupedSeriesSet and SeriesSet ( #502 )
2020-11-30 14:23:58 -05:00
Andrew Lamb
20f421e9c6
fix: Do not send GroupFrames in response to read_window_aggregate ( #497 )
...
* fix: Do not send GroupFrames in response to read_window_aggregate
* fix: clippy and test
2020-11-30 05:59:05 -05:00
Andrew Lamb
8c8af66d4d
refactor: use datafusion expression building code in write_buffer ( #484 )
2020-11-25 14:41:39 -05:00
Andrew Lamb
0eaa90e89d
feat: Hook up read_window_aggregate into the write_buffer, end-to-end tests ( #483 )
...
* feat: read_window_aggregate_plans
* fix: clippy sacrifice
* fix: clippy
* fix: clippy
2020-11-25 10:20:49 -05:00
Andrew Lamb
9f6427c94f
refactor: query/src/groupby.rs -> query/src/group_by.rs ( #477 )
...
* refactor: query/src/groupby.rs -> query/src/group_by.rs
* refactor: update references
2020-11-25 06:43:11 -05:00
Andrew Lamb
cdb26e60e4
refactor: rename `storage` crate to `query` to better reflect what it is ( #475 )
...
* refactor: rename storage --> query
* refactor: update a few more referenes
2020-11-24 14:19:29 -05:00
Andrew Lamb
85921fe401
feat: Implement gRPC and storage interface for read_group_aggregate ( #474 )
...
* feat: Implement gRPC and storage interface for read_group_aggregate
* fix: clippy
* docs: Tweak comments
* fix: moar clippy
* fix: fmt
* docs: Apply doc improvement suggestions from code review
Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>
* refactor: improve error creation
* refactor: use match instead of if
* refactor: clearer match
* refactor: clean up storage aggregate matching
Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>
2020-11-24 13:41:11 -05:00
Andrew Lamb
597933622d
fix: improve error messages with more context ( #455 )
2020-11-16 16:40:29 -05:00
Andrew Lamb
2fa0e03162
fix: Use datafusion optimizer in IOx query plans ( #439 )
...
* chore: update arrow dep to 8e4d9ebef3
* fix: checkin Cargo.lock
* fix: Enable datafusion optimizer, use display_indent_schema
2020-11-11 18:06:21 -05:00
Andrew Lamb
a52e0001c5
refactor: rename all crates that start with`delorean_` in preparation for rename ( #415 )
...
* refactor: rename delorean_cluster --> cluster
* refactor: rebane delorean_generated_types --> generated_types
* refactor: rename delorean_write_buffer --> write_buffer
* refactor: rename delorean_ingest --> ingest
* refactor: rename delorean_storage --> storage
* refactor: rename delorean_tsm --> tsm
* refactor: rename delorean_test_helpers --> test_helpers
* refactor: rename delorean_arrow --> arrow_deps
* refactor: rename delorean_line_parser --> influxdb_line_protocol
2020-11-05 13:44:36 -05:00