Commit graph

958 commits

Author SHA1 Message Date
chemicstry 37a73d7d37 Move documentation to book 2022-09-30 18:46:57 +02:00
chemicstry d0f08c254e Add secret to overrides 2022-09-30 18:46:57 +02:00
chemicstry fa52558ca1 Add configuration instructions to README 2022-09-30 18:46:57 +02:00
chemicstry 131cc2532b Cleanup values.yaml 2022-09-30 18:46:57 +02:00
chemicstry a93dcce841 Add helm chart 2022-09-30 18:46:57 +02:00
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Mendes bd842e1388 Correction of a few bugs in the tests, modification of ClusterLayout::check
Some checks are pending
continuous-integration/drone/push Build is pending
continuous-integration/drone/pr Build is pending
2022-09-22 19:30:01 +02:00
Mendes 7f3249a237 New version of the algorithm that calculate the layout.
It takes as paramters the replication factor and the zone redundancy, computes the
largest partition size reachable with these constraints, and among the possible
assignation with this partition size, it computes the one that moves the least number
of partitions compared to the previous assignation.
This computation uses graph algorithms defined in graph_algo.rs
2022-09-21 14:39:59 +02:00
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex 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
Alex b823151a0b
improvements in block manager
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-12 16:57:38 +02:00
Alex 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