413ab0eaed
Small change to partition assignation algorithm
...
This change helps ensure that nodes for each partition are spread
over all datacenters, a property that wasn't ensured previously
when going from a 2 DC deployment to a 3 DC deployment
2022-03-24 15:27:10 +01:00
43945234ae
Add missing src/block to toplevel cargo.toml
2022-03-23 10:26:10 +01:00
3dc9214172
Add lots of comments on how the resync queue works
...
(I don't really want to change/refactor that code though)
2022-03-23 10:25:39 +01:00
077dd1cde9
Clippy
2022-03-23 10:25:39 +01:00
2d13f0aa13
run cargo2nix
2022-03-23 10:25:37 +01:00
e480aaf338
Make background tranquility a configurable parameter
2022-03-23 10:25:19 +01:00
8fd6745745
Move block RC code to separate rc.rs
2022-03-23 10:25:19 +01:00
c3982a90b6
Move DataBlock out of manager.rs
2022-03-23 10:25:19 +01:00
c1d9854d2c
Move block manager to separate module
2022-03-23 10:25:15 +01:00
8565f7dc31
cleanup
2022-03-23 10:22:37 +01:00
8db6b84559
add test for create bucket and put website with streaming signature
2022-03-23 10:22:37 +01:00
1eb7fdb08f
add test framework for arbitraty S3 requests
...
and implement some basic test with it
2022-03-23 10:22:36 +01:00
e934934f14
garage_api: Update streaming payload stream unit tests
2022-03-23 10:22:36 +01:00
98545a16dd
garage_api: Handle streaming payload early in request handling
2022-03-23 10:22:36 +01:00
822128e3c8
Talk a bit about capacity balancing between regions
2022-03-22 12:07:13 +01:00
Rune Henriksen
aea8b41728
document request routing logic
2022-03-21 12:03:57 +01:00
Rune Henriksen
71e6645e09
add short tutorial for duplicati usage with garage
2022-03-21 11:58:19 +01:00
15da2156f6
Change position of the node-id argument
2022-03-19 18:03:23 +01:00
0529f3c34d
Patch cargo2nix openssl override
2022-03-17 12:17:38 +01:00
db46cdef79
Update netapp to v0.4.1
2022-03-15 17:09:57 +01:00
ba6b56ae68
Fix some new clippy lints
2022-03-14 12:27:49 +01:00
0af314b295
Add comment for fsync
2022-03-14 11:54:00 +01:00
d78bf379fb
Fix resync queue to not drop items
2022-03-14 11:51:37 +01:00
f7e6f4616f
Spawn a single resync worker
2022-03-14 11:51:37 +01:00
dc5ec4ecf9
Add appropriate fsync() calls in write_block
...
to ensure that data is persisted properly
2022-03-14 11:51:32 +01:00
fe62d01b7e
Implement exponential backoff for resync retries
2022-03-14 11:41:20 +01:00
bfb4353df5
Update Grafana dashboard
2022-03-14 10:55:30 +01:00
9b2b531f4d
Make admin server optional
2022-03-14 10:54:25 +01:00
a19341b188
Add Grafana dashboard for Garage
2022-03-14 10:54:25 +01:00
2377a92f6b
Add wrapper over sled tree to count items (used for big queues)
2022-03-14 10:54:25 +01:00
203e8d2c34
Bump version to 0.7 because of incompatible Netapp
2022-03-14 10:54:24 +01:00
f869ca625d
Add spans to table calls, change span names in RPC
2022-03-14 10:54:12 +01:00
0cc31ee169
add missing netapp telemetry feature
2022-03-14 10:54:11 +01:00
dc8d0496cc
Refactoring: rename config files, make modifications less invasive
2022-03-14 10:53:51 +01:00
d9a35359bf
Add metrics to web endpoint
2022-03-14 10:53:50 +01:00
2a5609b292
Add metrics to API endpoint
2022-03-14 10:53:36 +01:00
818daa5c78
Refactor how durations are measured
2022-03-14 10:53:35 +01:00
f0d0cd9a20
Remove strum crate dependency; add protobuf nix dependency
2022-03-14 10:53:00 +01:00
55d4471599
Remove ... at end of hex IDs
2022-03-14 10:52:31 +01:00
bb04d94fa9
Update to Netapp 0.4 which supports distributed tracing
2022-03-14 10:52:30 +01:00
8c2fb0c066
Add tracing integration with opentelemetry
2022-03-14 10:52:13 +01:00
b6561f6e1b
Add docker-compose for traces & metrics
2022-03-14 10:51:52 +01:00
2cab84b1fe
Add many metrics in table/ and rpc/
2022-03-14 10:51:50 +01:00
1e2cf26373
Implement basic metrics in table
2022-03-14 10:51:17 +01:00
mricher
e349af13a7
Update dependencies and add admin module with metrics
...
- Global dependencies updated in Cargo.lock
- New module created in src/admin to host:
- the (future) admin REST API
- the metric collection
- add configuration block
No metrics implemented yet
2022-03-14 10:51:12 +01:00
9d44127245
add support for kubernetes service discovery
...
This commit adds support to discover garage instances running in
kubernetes.
Once enabled by setting `kubernetes_namespace` and
`kubernetes_service_name` garage will create a Custom Resources
`garagenodes.deuxfleurs.fr` with nodes public key as the resource name.
and IP and Port information as spec in the namespace configured by
`kubernetes_namespace`.
For discovering nodes the resources are filtered with the optionally set
`kubernetes_service_name` which sets a label
`garage.deuxfleurs.fr/service` on the resources.
This allows to separate multiple garage deployments in a single
namespace.
the `kubernetes_skip_crd` variable allows to disable the creation of the
CRD by garage itself. The user must deploy this manually.
2022-03-12 13:05:52 +01:00
c00b2c9948
Functional tests for admin commands
2022-03-07 17:32:07 +01:00
8df1e186de
Functional tests for website endpoints
2022-03-07 17:32:07 +01:00
2ef60b8417
Functional test for multipart endpoints
2022-03-07 17:32:07 +01:00
1e639ec67c
Functional test for ListMultipartUploads
2022-03-07 17:32:07 +01:00