Commit Graph

1462 Commits (1d972e01c8929c7f5d408b791b92778f09b78129)

Author SHA1 Message Date
Edd Robinson 1d972e01c8 refactor: Update read_buffer/src/lib.rs
Co-authored-by: Andrew Lamb <alamb@influxdata.com>
2021-01-08 21:03:38 +00:00
Edd Robinson 23f27e10fa feat: add partition concept to ReadBuffer 2021-01-08 21:03:38 +00:00
Carol (Nichols || Goulding) 0ef604ad17
Merge pull request #627 from influxdata/cn/fewer-servers 2021-01-08 14:25:34 -05:00
Carol (Nichols || Goulding) 2be992b2f6
Merge branch 'main' into cn/fewer-servers 2021-01-08 12:41:48 -05:00
Carol (Nichols || Goulding) b66ad643d5 refactor: Extract panic logging to its own crate for ease of reuse 2021-01-08 12:36:56 -05:00
Andrew Lamb 6d0c538eca
refactor: pull DBChunk into its own module (#623)
* refactor: pull DBChunk into its own module

* refactor: consolidate impl blocks
2021-01-08 12:27:21 -05:00
Carol (Nichols || Goulding) 6f3b5a6a9e refactor: Alphabetize workspace members to match dir listing 2021-01-08 12:20:31 -05:00
Carol (Nichols || Goulding) cd03f39280 refactor: Move code in the server::server module to the root
This gets rid of the redundant server::server imports.
2021-01-08 12:19:58 -05:00
Carol (Nichols || Goulding) 155485a752 refactor: Rename commands/server to commands/influxdb_ioxd 2021-01-08 12:19:16 -05:00
Edd Robinson d2717e97c1
Merge pull request #616 from influxdata/er/feat/record-batch-read-buffer
feat: add support for writing chunks to ReadBuffer
2021-01-08 16:41:06 +00:00
Edd Robinson 46f85bb6a6 refactor: adrress PR comments
Co-authored-by: Andrew Lamb <alamb@influxdata.com>

Co-authored-by: Dom <dom@itsallbroken.com>
2021-01-08 16:19:19 +00:00
Edd Robinson 4ce6821d90 feat: implement table_names on 2021-01-08 16:19:19 +00:00
Edd Robinson 590b74e386 refactor: add test for adding chunk to database 2021-01-08 16:19:19 +00:00
Edd Robinson 6df2de62bb refactor: provide an API for table row groups 2021-01-08 16:19:19 +00:00
Edd Robinson 954da31e83 test: fix tests 2021-01-08 16:19:19 +00:00
Edd Robinson 2178a6eae4 feat: hook up record batch -> chunk to store 2021-01-08 16:19:19 +00:00
Edd Robinson b1ab6a189d feat: record batch -> read buffer column 2021-01-08 16:19:19 +00:00
Edd Robinson 8382501440 refactor: validate column types 2021-01-08 16:19:19 +00:00
Dom bd226172f5
Merge pull request #547 from jeschkies/karsten/support-azure-blob-storage
feat: Azure support for object store
2021-01-08 16:09:43 +00:00
Karsten Jeschkies 2cd383af6f feat: Azure support for object store
Closes #528

This patch adds support for Microsfot Azure Blob storage. The
implementations requires an account, a key and container name. They can
be configured via the environment variables `AZURE_STORAGE_ACCOUNT`,
`AZURE_STORAGE_MASTER_KEY` and `AZURE_STORAGE_CONTAINER`.
2021-01-08 16:27:17 +01:00
Carol (Nichols || Goulding) 6c626e8279
Merge pull request #624 from influxdata/cn/osp 2021-01-08 09:12:07 -05:00
Carol (Nichols || Goulding) 93064e5fab
Merge branch 'main' into cn/osp 2021-01-08 09:00:09 -05:00
Andrew Lamb a4be6f74c7
refactor: Remove partition key from the Chunk trait (#622) 2021-01-08 06:11:07 -05:00
Carol (Nichols || Goulding) cef0bb7c98 feat: Implement starts_with on ObjectStorePath 2021-01-07 16:51:32 -05:00
Carol (Nichols || Goulding) 535e65c02a refactor: Use itertools' extend with the iter instead of collecting 2021-01-07 16:02:23 -05:00
Carol (Nichols || Goulding) 91c4e26628 feat: Disallow parts of paths to be only one or two dots 2021-01-07 16:02:20 -05:00
Carol (Nichols || Goulding) 23782dc9b7 test: Add some tests around path building and encoding 2021-01-07 16:02:10 -05:00
Carol (Nichols || Goulding) 164c0e7357 fix: Use DELIMITER to create DELIMITER_BYTE 2021-01-07 15:23:51 -05:00
Carol (Nichols || Goulding) 37056a1753 feat: Decode PathPart's values when Displaying 2021-01-07 15:23:32 -05:00
Carol (Nichols || Goulding) b421de77c4 feat: Encode characters GCS recommends avoiding 2021-01-07 14:58:58 -05:00
Andrew Lamb 8219403fab
feat: Instantiate ReadBuffer as part of server creation (#620)
* feat: Instantiate ReadBuffer as part of server creation

* refactor: remove Store from read_buffer
2021-01-07 13:25:42 -05:00
Andrew Lamb c672bb341d
feat: Extract SQL planning out of databases (#618) 2021-01-07 13:13:30 -05:00
Paul Dix d17ef800c5
feat: add create and get database to API (#619)
* feat: add create and get database to API

This commit is start of the IOx specific API. It puts everything under /iox/api/v1 as this is the beginning of the IOx API. Creating a database is done with a PUT and a GET request can retrieve the DatabaseRules details.

* feat: add defaults for DatabaseRules for create_database

* feat: add create and get database to API

This commit is start of the IOx specific API. It puts everything under /iox/api/v1 as this is the beginning of the IOx API. Creating a database is done with a PUT and a GET request can retrieve the DatabaseRules details.
2021-01-07 12:25:37 -05:00
Carol (Nichols || Goulding) 6f6631fad4
Merge pull request #611 from influxdata/pd-object-store 2021-01-07 10:56:53 -05:00
Carol (Nichols || Goulding) 18ee1b561b feat: Use ObjectStorePath everywhere to feel out the API needed 2021-01-07 10:48:22 -05:00
Carol (Nichols || Goulding) e58607f015 fix: Add more info to a test failure message
I had stuff in my Google storage from when I was manually testing out
how paths are handled; it was hard to see that was the problem without
this extra failure text.
2021-01-07 09:21:00 -05:00
Carol (Nichols || Goulding) 44fb5b2b72 fix: Un-nest test modules
Now that the code is separated into modules, we don't need the modules
inside the test modules. So before this commit, the test names looked
like this:

```
test aws::tests::amazon_s3::s3_test_put_nonexistent_bucket ... ok
test gcp::test::google_cloud_storage::gcs_test ... ok
test disk::tests::file::length_mismatch_is_an_error ... ok
test memory::tests::in_memory::length_mismatch_is_an_error ... ok
```

and after this commit, the test names look like this:

```
test aws::tests::s3_test_put_nonexistent_bucket ... ok
test gcp::test::gcs_test ... ok
test disk::tests::length_mismatch_is_an_error ... ok
test memory::tests::length_mismatch_is_an_error ... ok
```
2021-01-07 09:20:57 -05:00
Carol (Nichols || Goulding) 55d64182f6 fix: Use @domodwyer's macro trick instead of conditional compilation 2021-01-07 09:20:09 -05:00
Carol (Nichols || Goulding) 5387499888 refactor: Reorganize imports 2021-01-07 09:20:04 -05:00
Carol (Nichols || Goulding) e36a7d3595 fix: Get Google Cloud tests compiling again 2021-01-07 09:19:58 -05:00
Paul Dix cf56c1ba9e feat: Add object store path abstraction 2021-01-07 09:19:50 -05:00
Paul Dix c1f8e89bf0 feat: Add list_with_delimiter to in memory object store
This adds the list_with_delimiter function to the in-memory object store. It also updates the function signature to require a prefix since it will always only want to list either the objects in the dir or the common prefixes.
2021-01-07 09:19:22 -05:00
Paul Dix 4b40d11e60 feat: Add list_with_delimiter to object store
This adds a new function list_with_delimiter to the object store. This commit contains just the implementation for S3, leaving the others to be completed in follow on commits.

This has a fixed delimiter to ensure a directory structure is created. This delimiter should be dependent on platform and which object store is used. For any of the cloud object stores or in memory, the delimiter should be /. For the future disk based implementation it should be dependendent on if you're running on Windows or Linux.

I didn't use Stream for the return type because I found it difficult to work with and I don't think it actually added anything useful. The return ListResult struct has the next token and I prefer that the caller explicitly makes calls that go over the network so they're more aware of what's going on, where a Stream abstracts that away so it's hidden behind the scenes. We can easilsy add a Stream based version on top of this existing API if we want.
2021-01-07 09:19:15 -05:00
Paul Dix d1ab5c0ee9 chore: refactor object_store crate
This pulls the different backing implmenetations into their own modules. They're about to get more complex so it felt like it was time to separate them out rather than building towards a single multi-thousand line lib.rs. The error type is only defined in lib and imported by the individual modules, which I think makes it easier to work with.
2021-01-07 09:19:07 -05:00
Andrew Lamb 654b520005
feat: Interface for writing and querying mutable buffer, read buffer and parquet (#615)
* refactor: Create database with mutable buffer, read buffer and parquet files

* docs: Apply suggestions from code review

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

* fix: rename planners to clarify what they are

* refactor: simplify traits

Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>
2021-01-06 17:25:46 -05:00
Andrew Lamb b476afa8c5
feat: Script to scrape benchmark results into line protocol and automate gathering numbers (#605)
* feat: Script to scrape benchmark results into line protocol

* feat: script to run benchmark on a checkout

* fix: rename

* fix: Apply suggestions from code review

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

* docs: update comments

* fix: use a single jq command invocation rather than 4

* fix: use one jq command rather than 2

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

* fix: check for directory existence too

Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com>
2021-01-05 08:35:49 -05:00
Andrew Lamb 88a17f1575
fix: Avoid hours of time recreating packers (#614) 2021-01-05 06:40:58 -05:00
Andrew Lamb 3ab867447e
fix: remove spaces in bench name (#613) 2021-01-04 15:14:11 -05:00
Andrew Lamb 0de73ec341
refactor: consistently name open/closed chunks in mutable_buffer (#612)
* refactor: consistently name open/closed chunks in mutable_buffer

* docs: update some comments

* docs: more comment tweaks

* fix: fix test
2021-01-04 11:37:42 -05:00
Andrew Lamb 9f0ff678f1
feat: Formalizes the config system for IOx, including tests (#608)
* feat: Create configuration system, port IOx to use it

* docs: Apply suggestions from code review

Co-authored-by: Paul Dix <paul@influxdata.com>

* fix: fix test for setting values

Co-authored-by: Paul Dix <paul@influxdata.com>
2020-12-31 07:02:31 -05:00