Commit Graph

102 Commits (ffc20fa8219dfd0769a8bb69e438c466e9d2e26b)

Author SHA1 Message Date
Andrew Lamb 8fb7651719
feat: Port tag_values to the InfluxRPCPlanner (#859)
* feat: Port tag_values to the InfluxRPCPlanner

* refactor: merge imports

* refactor: rename column_names to tag_column_names for clarity

* fix: Update query/src/frontend/influxrpc.rs

Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>

* refactor: use ensure!

Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>

* refactor: less silly whitespace

Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>

* fix: code review comments

Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-24 23:11:22 +00:00
Andrew Lamb ed7859e182
refactor: rename tag_column_names --> tag_keys in InfluxRPCPlanner (#860) 2021-02-23 17:04:53 +00:00
Carol (Nichols || Goulding) 0aee605544 Merge remote-tracking branch 'origin/main' into pd-mutable-buffer-data-eviction 2021-02-22 14:13:34 -05:00
Jake Goulding 6e6cc616a0 refactor: Switch to parking_lot::Mutex 2021-02-22 13:51:31 -05:00
Carol (Nichols || Goulding) c6becbd544 fix: Use structured log output for partition dropping 2021-02-22 12:46:48 -05:00
Carol (Nichols || Goulding) 45f4855d2e fix: Sort data in tests to avoid spurious failures
The implementation of this function is ultimately the keys from a
HashMap, and that order isn't guaranteed. Not sure if the function needs
a stable ordering, so I didn't want to add the performance hit to the
function. Adding it to the test ensures it keeps passing (I saw it fail
a few times locally).
2021-02-22 12:34:08 -05:00
Carol (Nichols || Goulding) eec13912dd fix: Update test that calls a fn that's no longe async 2021-02-22 11:06:54 -05:00
Edd Robinson cb335810e2 refactor: use new column_name API 2021-02-22 15:32:55 +00:00
Edd Robinson 4caa1d732f refactor: make Selection Copy 2021-02-22 15:32:55 +00:00
Carol (Nichols || Goulding) d0707725cf Merge remote-tracking branch 'origin/main' into pd-mutable-buffer-data-eviction 2021-02-22 10:21:59 -05:00
Andrew Lamb aa09cd3579
fix: remove workaround query code (#842)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-22 13:29:27 +00:00
kodiakhq[bot] fc0c79a84a
Merge branch 'main' into er/feat/read_buffer/string_fields 2021-02-19 23:10:07 +00:00
Edd Robinson 92eb8b9e85 refactor: make certain Database method sync
A couple of methods don't seem to have any await points in their
implementations, so it feels like they could just be `sync`.
2021-02-19 17:14:17 +00:00
Marko Mikulicic 536c1724bd feat: Allow to put streams of unknown length to objectstore
Addresses the API aspect of #818

Adds a utility module that helps computing the length of a stream while buffering it
for later replay (in-memory or spilling it in a temporary file).
2021-02-18 16:49:18 +00:00
Edd Robinson 58bb79eef2 test: enable scenario 2021-02-17 21:17:56 +00:00
Andrew Lamb 9b91e0624c
feat: implement field_columns plan (#819)
* feat: implement field_columns plan

* fix: fix doc tests

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-17 20:43:24 +00:00
Edd Robinson b705baa223 refactor: apply clippy clone lint 2021-02-16 13:34:56 +00:00
Andrew Lamb 94a93e56ff
feat: implement `tag_keys` in gRPC planner and across mutable buffer (#795)
* feat: move tag_column_names into rpc planner

* fix: Apply suggestions from code review

Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>

* fix: Apply suggestions from code review

Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>

* fix: compile error

* refactor: remove PassThrough error type

* fix: Avoid extra layers of errors in mutable buffer chunk

* fix: use HashMap::get rather than values() and find

* fix: push filtering down to chunk in gRPC planner

* fix: fixup trait bounds to be non-silly

* fix: remove incorrect comment

* fix: remove cruft

* fix: clippy + fmt

* fix: correct comment

Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>
2021-02-15 16:47:52 +00:00
Paul Dix dc465e5d02 feat: Add function to check db size and drop partitions
Adds functionality to the server Db to check the mutable buffer size and drop partitions based on the database rules.
2021-02-13 17:19:40 -06:00
Andrew Lamb b8f85967dd
feat: Enable/Disable logging in tests via RUST_LOG environment variable (#793)
* feat: Enable/Disable logging in tests via RUST_LOG environment variable

* docs: Add section to contributing

* docs: tweak readme

* fix: Use same logging system in tests as in influxdb_ioxd
2021-02-12 13:43:12 +00:00
Andrew Lamb a03598dfe2
feat: Implement Cross Chunk Schema / RecordBatch merging at query time (#783)
* feat: feat: Implement Cross Chunk Schema / RecordBatch merging at query time

* docs: update comments about NullArray::new_with-type

* docs: Update comments based on code review

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-02-11 18:26:38 +00:00
Raphael Taylor-Davies 7debe94ee6 feat: add background task tracking (#655) 2021-02-11 10:30:19 +00:00
Paul Dix 4c43c311f0
feat: Add database rules configuration for mutable buffer (#779)
* feat: Add database rules configuration for mutable buffer

* refactor: change all database rules usage to use mutable_buffer_config rather than store_locally
2021-02-10 18:36:29 -05:00
Andrew Lamb 46dfd58e6e
test: add a SQL test case for selection (of columns) (#778)
* test: add a SQL test case for selection (of columns)

* test: test with selection + pred
2021-02-10 12:09:19 -05:00
Andrew Lamb a316b16960
feat: Change table_names to return either Some(set) or None, rather than a plan (try 2) (#776)
* feat: Change table_names to return either Some(set) or None, rather than a plan

* docs: improve comments

* docs: Apply suggestions from code review

Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>

* fix: merge conflict

* fix: don't clone a string unless needed

Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>
2021-02-09 12:20:59 -05:00
Raphael Taylor-Davies 143488fae9 feat: add WAL metadata endpoint (#724) 2021-02-08 16:21:34 +00:00
Andrew Lamb 8399c56587
feat: remove RwLock on entire ReadBuffer (#761) 2021-02-05 16:58:17 -05:00
Andrew Lamb 74b8e8ec7d
refactor: Break Database query tests into their own files + add basic SQL tests (#760)
* refactor: break query tests into separate modules

* test: Add basic sql tests
2021-02-05 16:04:41 -05:00
Paul Dix 47bc28460e
refactor: rename partition, table, and column in parition_meta for clarity (#757)
* refactor: rename partition, table, and column in parition_meta for clarity
2021-02-05 08:00:22 -05:00
Andrew Lamb 3ec483b769
refactor: Reduce async in mutable buffer, use std::sync (#749)
* refactor: Reduce async in mutable buffer, use std::sync

* fix: logical confict with new code
2021-02-05 06:47:40 -05:00
Carol (Nichols || Goulding) fbf776c6b3
chore: Clean up Cargo.tomls (#754)
* fix: test_helpers crate should only be a dev-dep

* fix: object_store no longer has a build script, so no longer needs a build dep

* chore: Alphabetize all Cargo.tomls
2021-02-04 18:56:02 -05:00
Marko Mikulicic 202a4187a1
feat: Implement list databases API
Ref #722
2021-02-04 16:50:40 +01:00
Andrew Lamb d66eae1a44
feat: Implement TableProvider for Trait for `Db` (#730)
* feat: Implement TableProvider for Db

Gets us selection pushdown in plans, sets us up for predicate pushdown

Includes: SendableRecordBatchStreams for mutable buffer and read buffer results

fixup snapshots

* docs: comments
2021-02-03 14:18:47 -05:00
Carol (Nichols || Goulding) 8975b1cbf5 fix: into_iter in the assert_table_eq macro
This makes it so the macro can take `&[String]` or `&[&str]`.
2021-02-03 09:56:56 -05:00
Carol (Nichols || Goulding) 5c8b351f57 fix: Address clippy suggestions 2021-02-01 14:56:49 -05:00
Carol (Nichols || Goulding) ff6955a433 refactor: Extract a trait for ObjectStoreApi with associated path
This is the promised cleanup. This structure gets rid of a lot of
intermediate structures and encodes through associated types how the
object stores and path types are related.

The enums are still necessary to avoid having generics leak all over
the place, but the object store variants and path variants should always
match because they'll always come from the object store trait
implementations that use the associated types.
2021-02-01 14:56:47 -05:00
Carol (Nichols || Goulding) 7d3b4db234 fix: InMemory doesn't need pagination 2021-02-01 14:35:47 -05:00
Carol (Nichols || Goulding) fdbe602e57 refactor: Always get a path to build from the object store 2021-02-01 14:30:21 -05:00
Carol (Nichols || Goulding) 5e74ae2ee7 refactor: Segments should know how to persist themselves to object storage 2021-02-01 14:30:20 -05:00
Andrew Lamb 288861e646
feat: implement table_schema in partition chunk, mutable buffer, read buffer (#705)
fix: sort output schema by name

fix: Update data_types/src/schema.rs

Co-authored-by: Edd Robinson <me@edd.io>

refactor: Update read_buffer/src/lib.rs

Co-authored-by: Edd Robinson <me@edd.io>

Co-authored-by: Edd Robinson <me@edd.io>
2021-02-01 13:54:58 -05:00
Andrew Lamb f3bd8bd0e3
chore: update deps (tokio 1.0 and ecosystem) (#707)
* chore: Update arrow + tokio deps

* chore: Use bleeding edge azure

* chore: Update aws + other deps

* fix: fmt

* fix: Switch to in-house version of routerify

* fix: Upgrade to hyper 0.14

The hyper::error module is now private; hyper::Error is the public
re-export

* fix: Upgrade cloud storage to get tokio upgrade

* fix: Upgrade open_telemetry

* fix: Do not call `panic::set_hook` during another panic

Doing so leads to a double panic which aborts the process.

* fix: new h2 error who dis

Co-authored-by: Carol (Nichols || Goulding) <carol.nichols@integer32.com>
Co-authored-by: Jake Goulding <jake.goulding@integer32.com>
2021-01-29 16:11:55 -05:00
Andrew Lamb 2282a68e65
refactor: Move selection to the data_types crate and remove redundant implemenation (#704) 2021-01-29 13:35:07 -05:00
Andrew Lamb efb1e0f8ae
feat: Add selection interface to mutable buffer and query interface (#700)
* feat: Add selection interface to mutable buffer and query interface

* docs: Update mutable_buffer/src/table.rs

* refactor: rename for consistency

* refactor: use map and filter_map  rather than fold
2021-01-27 14:31:10 -05:00
Andrew Lamb df1367bcd1
feat: gRPC measurement_names support for read buffer (#697)
* test: Add tests for reading data from read buffer in different scenarios

* feat: gRPC measurement_names support for read buffer
2021-01-26 13:15:56 -05:00
Andrew Lamb 504ca67532
test: revamp rpc query testing so it works in multiple chunk scenarios (#696)
* test: revamp testing so it works in multiple scenarios, fix bug found by same

* fix: Update docs in server/src/db.rs

Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>

* refactor: use tsp rather than different functions

Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>
2021-01-25 16:34:19 -05:00
Carol (Nichols || Goulding) f7fdadc3b3
Merge branch 'main' into pd-load-database-configs 2021-01-25 09:50:16 -05:00
Andrew Lamb c3b0371c84
feat: Initial RPC Query Frontend (#692)
* feat: Initial RPC Query Frontend

* docs: s/immutable buffer/mutable buffer

* docs: Correct type in docstring
2021-01-25 08:33:39 -05:00
Paul Dix b3454daf70 chore: pr fixup 2021-01-22 16:06:10 -05:00
Paul Dix 45d25fcbcd feat: add loading of database rules on startup
This adds functionality to the server to load database rules on startup. Follow on work will update the rules to store additional data (the catalog) and ensure that updates to the catalog can occur as outlined in #651. This work also updated the configuration to not require a database directory so the server can run entirely in memory. I needed this to get the end-to-end test passing since the file object store API doesn't yet have the functionality needed. I've logged #688 to track adding that in.
2021-01-22 16:06:10 -05:00
Andrew Lamb 75b0a62fa5
refactor: Delete remove dead code (#686) 2021-01-21 19:20:39 -05:00