Commit Graph

196 Commits (8c7b3966defd833f17c25c4634e7fea558e096e1)

Author SHA1 Message Date
Marco Neumann 876a9af35a fix: limit number of S3 connections
Otherwise the whole thing blows up when starting a server that has many
DBs registerd, because we potentially create 1 connection per DB (e.g.
to read out the preserved catalog).

Fixes #3336.
2021-12-08 19:06:02 +01:00
Carol (Nichols || Goulding) 02c297e850
fix: Always specify the parking_lot feature of tokio to get potential perf boost 2021-12-06 09:37:15 -05:00
Carol (Nichols || Goulding) 39a7077cd9
fix: Turn on std for indexmap to avoid a build-time target check
Connects to #3117.
2021-12-06 09:37:14 -05:00
Carol (Nichols || Goulding) 7a241882c2
fix: Make version reqs on futures-related crates consistent 2021-12-06 09:37:14 -05:00
Carol (Nichols || Goulding) 39862e3886
fix: Disable default chrono features
Connects to #3117. Won't affect the workspace-hack crate until changes
to some other crates can be upstreamed.
2021-12-06 09:36:49 -05:00
Raphael Taylor-Davies bca561366b
feat: don't copy parquet files out of disk object store (#3282) (#3293)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-12-05 16:31:40 +00:00
Carol (Nichols || Goulding) 5d0fd1c603
fix: Allow dead code on fields that are now detected as never read 2021-12-02 11:52:01 -05:00
Carol (Nichols || Goulding) 9fd4a560f5
feat: Results of running cargo hakari manage-deps 2021-11-19 09:21:57 -05:00
Marco Neumann f0136e9791 ci: run clippy for all features
This indeed fixes some issues in our object store implementation.

Closes #537.
2021-11-11 10:48:21 +01:00
dependabot[bot] c540b40f05
chore(deps): bump tokio from 1.12.0 to 1.13.0
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.12.0...tokio-1.13.0)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-01 11:21:59 +00:00
dependabot[bot] a1f978e280
chore(deps): bump tokio-util from 0.6.8 to 0.6.9
Bumps [tokio-util](https://github.com/tokio-rs/tokio) from 0.6.8 to 0.6.9.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-util-0.6.8...tokio-util-0.6.9)

---
updated-dependencies:
- dependency-name: tokio-util
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-01 01:28:41 +00:00
Carol (Nichols || Goulding) eeb017990d
fix: Add missing features to object_store crate to enable running tests separately 2021-10-28 13:20:28 -04:00
kodiakhq[bot] 04b4eeb6ec
Merge branch 'main' into cn/only-read-server 2021-10-25 15:15:17 +00:00
Marco Neumann bc7244c48e chore: use Rust edition 2021 2021-10-25 10:58:20 +02:00
Carol (Nichols || Goulding) 4de7dce8ba feat: Add a 404 NotFound error to the object store errors for GET
With the object store implementations that support figuring out if a GET
request returns 404 not found. Azure doesn't have great support for
this.
2021-10-22 15:55:59 -04:00
Carol (Nichols || Goulding) 6ae42bb774 fix: Put both Debug and Display of AWS errors in error messages 2021-10-22 13:59:48 -04:00
Carol (Nichols || Goulding) a2b81cdb20 fix: Put Debug format of rusoto errors in error messages
Fixes #2942
2021-10-22 13:16:37 -04:00
Marco Neumann f7ca80e29f
test: ensure query cancellation (somewhat) works (#2931)
* feat: enable reconfiguration of in-use throttled store

This is handy for tests for which a part should run "normal" and another
one should be throttled/blocked.

* feat: keep track of the number of tasks within a `DedicatedExecutor`

* test: ensure query cancellation (somewhat) works

We cannot really test that query cancellation finishes all subtasks
because _tokio_ doesn't provide sufficient stats / inspection, at least
as long we don't want to rely heavily on _tokio_ tracing. So let's at
least check that tasks from the dedicated executors are pruned properly.

For all other regressions we need to add unit tests to the affected
components. See for example:

- https://github.com/apache/arrow-datafusion/issues/1103
- https://github.com/apache/arrow-datafusion/pull/1105
- https://github.com/apache/arrow-datafusion/pull/1112
- https://github.com/apache/arrow-datafusion/pull/1121

Closes #2027.
2021-10-21 19:10:58 +00:00
Raphael Taylor-Davies 4cc87fb184
chore: misc updates (#2886)
* chore: misc updates

* fix: don't downgrade nix

* chore: remove orphaned comment

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-10-19 11:47:27 +00:00
Carol (Nichols || Goulding) 1dda568d28 test: Add a case for a path without a filename 2021-10-18 08:46:00 -04:00
Carol (Nichols || Goulding) d5ab29711e fix: Serialize relative db object store paths to the server config
So that they can be deserialized, without parsing, to create a new
iox object store from the location listed in the server config.

Notably, the locations serialized don't start with the object storage's
prefix like "s3:" or "file:". The location is the same object storage as
the server configuration that was just read from object storage. Having
the server config on one type of object storage and the database files
on another type is not supported.
2021-10-18 08:37:36 -04:00
dependabot[bot] 44d7479db1
chore(deps): bump cloud-storage from 0.10.2 to 0.10.3
Bumps [cloud-storage](https://github.com/ThouCheese/cloud-storage-rs) from 0.10.2 to 0.10.3.
- [Release notes](https://github.com/ThouCheese/cloud-storage-rs/releases)
- [Changelog](https://github.com/ThouCheese/cloud-storage-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ThouCheese/cloud-storage-rs/commits)

---
updated-dependencies:
- dependency-name: cloud-storage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 01:43:09 +00:00
Carol (Nichols || Goulding) fb0e6ad5b1 docs: Document the s3_request generics and how they fit together 2021-09-29 08:19:33 -04:00
Carol (Nichols || Goulding) 2b9612a033 fix: Remove some of the futures in futures layers
I think the FuturesRetry crate needed this, but we're no longer using
the crate so we can get rid of some of the complexity.
2021-09-29 08:19:33 -04:00
Carol (Nichols || Goulding) ad1405dcdf fix: Reduce number of AWS S3 request retries from 10 to 3 2021-09-29 08:19:32 -04:00
Carol (Nichols || Goulding) 5857edb19a fix: cloud_storage crate returns a different error type in this case 2021-09-29 08:19:32 -04:00
Carol (Nichols || Goulding) 92583aee82 fix: Remove streaming API since we're not streaming anyway 2021-09-29 08:19:32 -04:00
Carol (Nichols || Goulding) edd6c12e93 fix: Add logging when retrying AWS requests 2021-09-29 08:19:32 -04:00
Carol (Nichols || Goulding) ea4cb9a6c1 refactor: Extract the maximum number of retries into a documented public constant 2021-09-29 08:19:32 -04:00
Carol (Nichols || Goulding) 9cf343db08 refactor: Use loop instead of futures_retry 2021-09-29 08:19:32 -04:00
Carol (Nichols || Goulding) 9cdccae49d fix: Actually do the exponential part of exponential backoff 2021-09-29 08:19:32 -04:00
Carol (Nichols || Goulding) d69472e114 refactor: Use s3_request in s3 delete 2021-09-29 08:19:32 -04:00
Carol (Nichols || Goulding) d05528bcfd refactor: Use s3_request for put requests
Which meant we also needed to change the byte stream to be a closure
that can generate a byte stream
2021-09-29 08:19:32 -04:00
Carol (Nichols || Goulding) dd3b405727 fix: Only retry s3 requests if error is 500 2021-09-29 08:19:32 -04:00
Carol (Nichols || Goulding) 936fba24b9 refactor: Make s3_request generic over the return type 2021-09-29 08:19:32 -04:00
Carol (Nichols || Goulding) 5c78b7d5ae refactor: Extract an s3_request method that handles retries 2021-09-29 08:19:32 -04:00
Carol (Nichols || Goulding) fd3a027ca8 refactor: Use the extracted aws list function in list_with_delimiter 2021-09-29 08:19:32 -04:00
Carol (Nichols || Goulding) a1a8bc01bf refactor: Extract a method just to stream aws list requests 2021-09-29 08:19:32 -04:00
Marco Neumann 9cdd4799c7 chore: `object_store` needs `reqwest` only for azure 2021-09-22 11:16:00 +02:00
Marco Neumann ef5ab67c77 chore: upgrade azure dependencies 2021-09-21 13:35:11 +02:00
Raphael Taylor-Davies 4382bc0b71
feat: disable Snafu futures feature (#2573)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-09-19 11:36:24 +00:00
dependabot[bot] b67610d9b9
chore(deps): bump tokio from 1.10.1 to 1.11.0
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.10.1 to 1.11.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.10.1...tokio-1.11.0)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-06 09:11:38 +00:00
Carol (Nichols || Goulding) fbf18813ac fix: Correct a mistaken assumption in in-memory object storage
The implementation of list_with_delimiter for the in-memory object
storage assumed that paths returned from the BTreeMap keys that sorted
greater than the prefix given to list_with_delimiter and for whom
prefix_matches returned true would also have parts after the prefix.

This didn't account for paths that started with the prefix but didn't
immediately have the delimiter after the prefix: that is,

prefix = 1/database_name

would match the in-memory paths:

1/database_name/0/rules.pb
1/database_name_and_another_thing/0/rules.pb

The first path here *would* return some parts_after_prefix, but the
second path would not and the previously existing code would panic for
the added path in the list_with_delimiter test case.
2021-09-02 14:57:27 -04:00
dependabot[bot] 37c81fb483
chore(deps): bump cloud-storage from 0.9.0 to 0.10.2
Bumps [cloud-storage](https://github.com/ThouCheese/cloud-storage-rs) from 0.9.0 to 0.10.2.
- [Release notes](https://github.com/ThouCheese/cloud-storage-rs/releases)
- [Changelog](https://github.com/ThouCheese/cloud-storage-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ThouCheese/cloud-storage-rs/commits)

---
updated-dependencies:
- dependency-name: cloud-storage
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-23 11:26:28 +00:00
Andrew Lamb 063f6da7d6
docs: remove outdated comment (#2302)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-08-17 12:57:07 +00:00
kodiakhq[bot] 44f9f220cd
Merge branch 'main' into dependabot/cargo/rusoto_credential-0.47.0 2021-08-17 11:38:54 +00:00
Carol (Nichols || Goulding) bda4458ebd fix: Update all the rusoto crates together 2021-08-16 19:59:26 -04:00
Ning Sun c012e996ab
refactor: remove display methods, use fmt::Display instead. (#2272)
* refactor: remove display methods, use fmt::Display instead.

Signed-off-by: Ning Sun <sunng@protonmail.com>

* refactor: update a few calls from .display to .to_string()

* fix: consistently use `Path` rather than occasionally `DirsAndFileName`

* fix: fixup for merge conflicts

* fix: update test

* fix: Catch another case or two

* fix: fmt

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2021-08-16 18:00:22 +00:00
dependabot[bot] 97ed42c42f
build(deps): bump rusoto_credential from 0.46.0 to 0.47.0
Bumps [rusoto_credential](https://github.com/rusoto/rusoto) from 0.46.0 to 0.47.0.
- [Release notes](https://github.com/rusoto/rusoto/releases)
- [Changelog](https://github.com/rusoto/rusoto/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rusoto/rusoto/compare/mock-v0.46.0...rusoto-v0.47.0)

---
updated-dependencies:
- dependency-name: rusoto_credential
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-16 16:35:09 +00:00
Carol (Nichols || Goulding) ae6b0e669b refactor: Extract a database persister type that wraps object store
Connects to #2193.
2021-08-12 15:05:32 -04:00