Commit graph

1341 commits

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