Commit Graph

888 Commits

Author SHA1 Message Date
Alex 497164d782 Merge pull request 'Shutdown properly on SIGTERM/SIGHUP and on Windows signals' (#397) from handle-sigterm into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #397
2022-09-28 12:16:55 +02:00
Alex 1f97ce37e6
Shutdown properly on SIGTERM/SIGHUP and on Windows signals
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
2022-09-28 10:41:59 +02:00
Alex 2197753dfd Merge pull request 'Add step to generate multi-arch Docker container in CI' (#393) from multi-arch-container into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #393
2022-09-27 11:55:49 +02:00
Alex 3f95a0f717 Merge pull request 'Enable k2v feature flag by default in CI' (#302) from k2v into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #302
2022-09-27 11:38:23 +02:00
Alex 7291747a28 Merge pull request 'Documentation changes for v0.8' (#394) from doc-0.8 into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #394
2022-09-27 11:37:12 +02:00
Alex d104ae8711
Add step to generate multi-arch Docker container in CI
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone Build is passing Details
2022-09-26 19:09:55 +02:00
Alex 194e8be1bb
Update docker image links
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-26 18:01:17 +02:00
Alex 69bcc813de
Add garage v0.8 migration guide
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-26 17:46:38 +02:00
Alex ea7a571d88 Merge pull request 'Fix span name for api server requests' (#392) from fix-span-name into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #392
2022-09-26 16:57:37 +02:00
Alex 1778e4b318
Fix span name for api server requests
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-26 16:21:30 +02:00
Alex af2b2f26b4 Merge pull request 'Update README (fix #230)' (#391) from new-readme into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #391
2022-09-21 13:28:52 +02:00
Alex a3758dc4c4
Update README
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-21 12:53:02 +02:00
Alex e89f880694
Enable k2v feature flag in CI
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
2022-09-20 17:54:41 +02:00
Alex fc85508648 Merge pull request 'Initialize metrics exporter earlier (fix #389)' (#390) from fix-metrics into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #390
2022-09-20 17:53:46 +02:00
Alex 782630fc27
Initialize metrics exporter earlier (fix #389)
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-09-20 17:50:22 +02:00
Alex 7a901f7aab Merge pull request 'RPC performance changes' (#387) from configurable-timeouts into main
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
continuous-integration/drone Build is passing Details
Reviewed-on: #387
2022-09-20 16:17:23 +02:00
Alex ded444f6c9
Ability to have custom timeouts in request strategy (not used)
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-09-20 16:01:41 +02:00
Alex 357b72f4ff
Merge branch 'main' into configurable-timeouts
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-09-20 15:19:58 +02:00
Alex 2c312e9cbd Merge pull request 'Change a warn! into a debug!' (#388) from less-noise into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #388
2022-09-20 11:57:52 +02:00
Alex 1f7b050b7d
Change a warn! into a debug!
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-09-20 11:49:48 +02:00
Alex 56592e1853
RPC performance changes
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build was killed Details
- configurable ping timeout
- single, much higher, configurable RPC timeout
- no more concurrency semaphore
2022-09-19 20:31:00 +02:00
Alex fbd32933ea Merge pull request 'Faster GetObject workflow for getting entire objects' (#386) from faster-get into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #386
2022-09-19 15:24:06 +02:00
Alex 5d4b6f2173
Faster GetObject workflow for getting entire objects
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-19 12:19:59 +02:00
Alex 4fba06d62e Merge pull request 'updates to documentation for v0.8' (#385) from doc-0.8 into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #385
2022-09-19 10:45:10 +02:00
Alex 1d0a610690
Finish writing about Garage features, and fix from-source instructions
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-15 13:23:57 +02:00
Alex f6aebefcc9
Some work on documentation towards v0.8
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-14 19:31:13 +02:00
Alex 89b8087ba8 Merge pull request 'Properly return HTTP 204 when deleting non-existent object (fix #227)' (#384) from deleteobject-204 into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #384
2022-09-14 17:16:39 +02:00
Alex 76f42a1a2b
Properly return HTTP 204 when deleting non-existent object (fix #227)
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-09-14 17:07:55 +02:00
Alex 82600acf77 Merge pull request 'Allow for hostnames in bootstrap_peers and rpc_public_addr (fix #353)' (#383) from resolve-peer-names into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #383
2022-09-14 16:37:18 +02:00
Alex e46dc2a8ef
Allow for hostnames in bootstrap_peers and rpc_public_addr (fix #353)
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-09-14 16:09:38 +02:00
Alex 80fdbfb0aa Merge pull request 'various fixes for v0.8.0' (#380) from various-fixes-for-0.8 into main
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
continuous-integration/drone Build was killed Details
Reviewed-on: #380
2022-09-13 16:49:05 +02:00
Alex ab722cb40f
Add checks on replication_factor of layouts we use (fix #363, fix #364)
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-13 16:22:23 +02:00
Alex 38be811b1c
Fix clippy lint that says we should implement Eq
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-09-13 16:08:00 +02:00
Alex 44733474bb
Remove/change println! in server code (fix #358)
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-09-13 16:01:55 +02:00
Alex 07febd3ecd
Ensure data dir is created immediately when Garage starts (fix #349)
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-09-13 15:57:27 +02:00
Alex 11bdc971e2 Merge pull request 'use netapp streaming body' (#343) from netapp-stream-body into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #343
2022-09-13 15:26:08 +02:00
Alex ff30891999
Use streaming block API for get with Range requests
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-13 15:13:07 +02:00
Alex 28a4af73ca
Use netapp 0.5 published from crates.io
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-13 13:11:44 +02:00
Alex b823151a0b
improvements in block manager
continuous-integration/drone/push Build is passing Details
2022-09-12 16:57:38 +02:00
Alex 309d7aef3f Merge pull request 'performance improvements' (#342) from lx-perf-improvements into main
continuous-integration/drone/push Build is passing Details
Performance improvements included in this PR:

- [x] Use `Bytes` at a few places where appropriate, instead of `Vec<u8>`, to reduce the number of copies
  - [x] StreamChunker now accumulates incoming slices in a `Vec<Bytes>` instead of a `VecDeque<u8>`. Replaces calls to `.extend()` and `.drain()` that were quite costly by a simple `concat()` on a vec of slices which is much more optimized
- [x] Hashing (b2, sha256, md5) is now done on a Tokio thread dedicated to cpu-intensive tasks, using `spawn_blocking`
- [x] Block manager now uses 256 independant locks instead of one big lock for writing, reduces contention when writing several/many objects in parallel
- [x] Better LMDB defaults: we now put flags `NoSync` and `NoMetaSync` to avoid `fsync` at each transaction (extremely slow). Also increased number of LMDB readers to accomodate more intensive workloads

Other changes included in this PR:

- [x] Update to hashing and MAC crates: md5 and sha2 from 0.9 to 0.10, hmac from 0.10 to 0.12
- [x] switch to `tracing_subscriber` for logs, which allows to have timing of each event

Reviewed-on: #342
2022-09-12 16:38:43 +02:00
Alex f91fab8582
Simplify+improve async hasher by using bounded channel
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-12 16:23:43 +02:00
Alex 7f54706b95
Merge branch 'lx-perf-improvements' into netapp-stream-body
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-08 15:50:56 +02:00
Alex d9d199a6c9
Merge branch 'main' into lx-perf-improvements
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2022-09-08 15:49:17 +02:00
Alex 03c40a0b24 Merge pull request 'Reorganize dependencies' (#373) from improve-deps into main
continuous-integration/drone/push Build was killed Details
This PR includes work from @jirutka :

- [x] Allow linking against system-provided libraries (libsodium, libsqlite, libzstd) #370
- [x] Make OTLP exporter optional and allow building without Prometheus exporter (/metrics) #372

And also:

- [x] Update `.nix` files
- [x] Remove heed default-features
- [x] Bump versions of all Garage crates to 0.8.0
- [x] Make db engines (lmdb, sled, sqlite) optionnal
- [x] Add documentation for available features
- [x] Directly include code of previous versions used for migration in order to reduce dependencies
- [x] Read variable `GIT_VERSION` from garage main instead of in crate garage_util to make builds faster
- [x] Report features used in the build somewhere? (in `garage --version` or something)
- [x] Check we `warn!` correctly if we try to use deactivated feature
- [x] Allow not to launch S3 endpoint if not in config

Reviewed-on: #373
2022-09-08 15:45:09 +02:00
Alex ceb1f0229a
Move version back into util
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-09-07 18:36:46 +02:00
Alex f310fce34b
Inject GIT_VERSION even later
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-09-07 18:30:15 +02:00
Alex 06df301de5
Fix merge
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-09-07 18:16:01 +02:00
Alex 8adc654713
Merge branch 'main' into improve-deps 2022-09-07 18:13:27 +02:00
Alex 107853334b
Fix build error
continuous-integration/drone/pr Build is failing Details
continuous-integration/drone/push Build is passing Details
2022-09-07 18:10:19 +02:00
Alex 1449204439
Add warnings when features are not included in build
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/pr Build is failing Details
2022-09-07 18:02:13 +02:00