8dff278b72
[db-snapshot] Implement db snapshotting logic in garage_db
2024-03-15 10:57:22 +01:00
7c86ff6c37
[disable-scrub] implement a disable_scrub
configuration option
2024-03-14 17:01:16 +01:00
81191d2d92
Merge pull request 'Remove Sled' ( #767 ) from rm-sled into next-0.10
...
Reviewed-on: Deuxfleurs/garage#767
2024-03-12 10:45:57 +00:00
2795b53b8b
[rm-sled] factorize some code in sqlite backend
2024-03-12 11:15:26 +01:00
32aa246300
[rm-sled] Make proper use of pinning in LMDB adapter + comment unsafe
2024-03-08 17:39:17 +01:00
b942949940
[rm-sled] Implement iterators in sqlite & lmdb transactions
...
with way too much unsafe code
2024-03-08 16:38:01 +01:00
66c23890c1
[rm-sled] Implement some missing functionality in garage_db
2024-03-08 16:02:58 +01:00
05c92204ec
[rm-sled] Remove counted_tree_hack
2024-03-08 15:09:57 +01:00
2128b5febd
Merge pull request 'Remove migration path from Garage v0.5' ( #766 ) from rm-migration into next-0.10
...
Reviewed-on: Deuxfleurs/garage#766
2024-03-08 13:43:42 +00:00
44454aac01
[rm-sled] Remove the Sled database engine
2024-03-08 14:11:02 +01:00
1ace34adbb
Merge branch 'main' into next-0.10
2024-03-08 13:57:10 +01:00
f537f76681
[rm-migration] Remove migration path from Garage v0.5
2024-03-08 13:24:47 +01:00
ec34728b27
[factor-db-open] Combine logic for opening db engines
2024-03-08 12:58:17 +01:00
20c0b4ffb2
Merge pull request 'ReplicationMode -> ConsistencyMode+ReplicationFactor' ( #750 ) from yuka/garage:split-consistency-mode into next-0.10
...
Reviewed-on: Deuxfleurs/garage#750
2024-03-07 16:32:52 +00:00
3fcb54e3cf
[sse-c] Remove special case for Content-Type header
2024-03-07 15:43:48 +01:00
fa4878bad6
[sse-c] Testing for SSE-C encryption
2024-03-07 15:43:48 +01:00
57acc60082
[sse-c] Implement SSE-C encryption
2024-03-07 15:43:47 +01:00
fe2dc5d51c
Merge branch 'main' into next-0.10
2024-03-07 14:00:34 +01:00
eab2b81be2
[unicode-headers] allow utf-8 in headers + add test for object metadata
2024-03-07 13:42:01 +01:00
Yureka
c1769bbe69
ReplicationMode -> ConsistencyMode+ReplicationFactor
2024-03-07 12:45:33 +01:00
Yureka
6760895926
refactor: remove max_write_errors and max_faults
2024-03-04 18:39:56 +01:00
bbde9bc912
Merge branch 'main' into next-0.10
2024-03-04 15:56:10 +01:00
3168bb34a0
Merge pull request 'add request context helper' ( #751 ) from yuka/garage:req-ctx into main
...
Reviewed-on: Deuxfleurs/garage#751
2024-03-04 14:51:05 +00:00
8670140358
[rel-0.9.3] Bump version to 0.9.3
2024-03-04 14:00:55 +01:00
c8e416aaa5
[test-presigned] Use a HeaderMap type for QueryMap
2024-03-04 13:33:14 +01:00
Yureka
fb55682c66
add request context helper
2024-03-04 13:26:39 +01:00
c94bf45cba
Store original-cased query keys alongside query values
2024-03-04 13:03:27 +01:00
7c4f3473af
Lowercase query parameter keys when parsing
2024-03-04 13:03:16 +01:00
b6a91e549b
[test-presigned] Add API test for presigned requests
2024-03-04 13:02:07 +01:00
6a7623e90d
[rel-0.9.2] Bump version to v0.9.2
2024-03-01 16:54:39 +01:00
a36248a169
[fix-signed-headers] aws signatures v4: don't actually check Content-Type is signed
...
This page of the AWS docs indicate that Content-Type should be part of
the CanonicalHeaders (and therefore SignedHeaders) strings in signature
calculation:
https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html
However, testing with Minio Client revealed that it did not sign the
Content-Type header, and therefore we broke CI by expecting it to be
signed. With this commit, we don't mandate Content-Type to be signed
anymore, for better compatibility with the ecosystem. Testing against
the official behavior of S3 on AWS has not been done.
2024-03-01 13:12:18 +01:00
6d33e721c4
[fix-auth-ct-eq] use consant time comparison for awsv4 signature verification
2024-02-29 13:07:18 +01:00
eaac4924ef
[fix-auth-ct-eq] use argon2 hashing and verification for admin/metrics token checking
2024-02-29 13:07:15 +01:00
90cab5b8f2
[fix-presigned] add comments and reorganize
2024-02-28 12:24:21 +01:00
e9f759d4cb
[fix-presigned] presigned requests: allow x-amz-* query parameters to stand in for equivalent headers
2024-02-28 12:24:21 +01:00
a5e4bfeae9
[fix-presigned] write comments
2024-02-28 12:24:21 +01:00
4c1d42cc5f
[fix-presigned] add back anonymous request code path + refactoring
2024-02-28 12:24:21 +01:00
2efa9c5a1a
[fix-presigned] PostObject: verify X-Amz-Algorithm
2024-02-28 12:24:20 +01:00
a8cb8e8a8b
[fix-presigned] split presigned/normal signature verification
2024-02-28 12:24:13 +01:00
4b978b7533
Merge branch 'main' into next-0.10
2024-02-26 18:55:24 +01:00
b76c0c102e
[refactor-put] add ordering tag to blocks being sent to storage nodes
2024-02-26 18:35:11 +01:00
babccd2ad3
[refactor-put] send several blocks in parallel to storage nodes
2024-02-26 18:22:37 +01:00
3fe94cc14f
[refactor-put] rewrite read_and_put_block as a series of steps with channels
2024-02-26 17:55:37 +01:00
3692af7052
Merge branch 'main' into next-0.10
2024-02-23 18:28:05 +01:00
d640102b76
[split_getobject] GetObject: split out handle_get_full
2024-02-23 18:14:50 +01:00
916c67ccf4
Merge branch 'main' into next-0.10
2024-02-23 16:50:34 +01:00
6ee691e65f
[refactor-block] simplify some more
2024-02-23 12:50:10 +01:00
e9c42bca34
[refactor-block] add DataBlockStream type
2024-02-23 12:22:29 +01:00
cd1069c1d4
[refactor-block] refactor DataBlock and DataBlockPath
2024-02-23 12:15:52 +01:00
07c7895948
[refactor-block] simplify rpc_get_block
2024-02-23 11:54:40 +01:00
9b41f4ff20
[refactor-block] move read_stream_to_end to garage_net
2024-02-23 11:46:57 +01:00
93552b9275
[refactor-block] Remove redundant BlockStream type
2024-02-23 11:33:38 +01:00
81cebdd124
[next-0.10] fix build
2024-02-22 15:53:47 +01:00
59f61c966a
Merge branch 'main' into next-0.10
2024-02-22 15:45:45 +01:00
cff702a951
[lock-createbucket] Add node-global lock for bucket/key operations ( fix #723 )
2024-02-22 12:28:21 +01:00
75e591727d
[next-0.10] cluster node status metrics: report nodes of all active layout versions
2024-02-20 17:08:31 +01:00
643d1aabd8
Merge branch 'main' into next-0.10
2024-02-20 17:02:44 +01:00
885405d944
Merge pull request 'system metrics improvements' ( #726 ) from peer-metrics into main
...
Reviewed-on: Deuxfleurs/garage#726
2024-02-20 15:35:12 +00:00
b868493da9
[peer-metrics] add basic cluster node status metrics ( fix #545 )
2024-02-20 14:50:24 +01:00
182a23cc12
[peer-metrics] refactor SystemMetrics to hold a reference to System
2024-02-20 14:20:58 +01:00
3cdf69f079
[peer-metrics] Add metrics for cluster health, like GetClusterHealth admin API
2024-02-20 13:50:45 +01:00
00d479358d
[peer-metrics] refactor/simplify SystemMetrics
2024-02-20 13:50:45 +01:00
203bb10035
Merge pull request 'Filter nodes Garage tries to connect to' ( #719 ) from reconnect-only-current into main
...
Reviewed-on: Deuxfleurs/garage#719
2024-02-20 10:37:11 +00:00
e91576677e
[reconnect-only-current] filter nodes to reconnect to
...
do not try reconnecting to nodes received from consul/kubernetes
discovery if they are not currently in the layout
2024-02-20 11:07:10 +01:00
95e3a39b4d
[networking-fixes] small refactoring in garage_net peering
2024-02-19 18:12:21 +01:00
66fe893023
[networking-fixes] garage_net: retry connecting when new IP is learned
2024-02-19 18:12:21 +01:00
b96f84b894
[networking-fixes] add option to bind outgoing RPC sockets ( fix #638 )
...
Thanks to yuka for the original patch.
2024-02-19 11:45:44 +01:00
f0bbad2db9
[networking-fixes] use rpc_public_addr in netapp's HelloMessage
2024-02-19 11:45:44 +01:00
eb4a6ce106
Merge branch 'main' into next-0.10
2024-02-15 14:06:34 +01:00
125c662860
[import-netapp] move and rename FullMeshPeeringSrategy to PeeringManager
2024-02-15 12:15:35 +01:00
5766befb24
[import-netapp] fix tests
2024-02-15 12:15:33 +01:00
5ea24254a9
[import-netapp] import Netapp code into Garage codebase
2024-02-15 12:15:07 +01:00
1b0f167d2f
[fix-cargo-toml] fix cargo warnings in Cargo.toml files
2024-02-15 10:54:58 +01:00
cf2af186fc
Merge branch 'main' into next-0.10
2024-02-13 11:36:28 +01:00
bf283c9924
[fix-secrets-695] config: replace String by PathBuf for *_file
2024-02-12 15:36:43 +01:00
25e5738568
[fix-secrets-695] take into account rpc secret from file for cli commands ( fix #695 )
2024-02-12 10:42:17 +01:00
198188017c
Merge pull request 'Implement header overriding in GetObject ( fix #650 )' ( #713 ) from header-override-650 into main
...
Reviewed-on: Deuxfleurs/garage#713
2024-02-09 15:40:18 +00:00
02e98e2d10
[header-override-650] implement header overriding in GetObject ( fix #650 )
2024-02-09 15:58:46 +01:00
fe175fa8e2
Merge pull request 'garage block info
: find blocks by prefix ( fix #682 )' ( #712 ) from block-info-short-682 into main
...
Reviewed-on: Deuxfleurs/garage#712
2024-02-09 14:07:29 +00:00
8da67b3aa2
[block-info-short-682] garage block info
: find blocks by prefix ( fix #682 )
2024-02-09 14:35:53 +01:00
10bc2ead60
[multi-char-delimiter-692] allow multi-character delimiters in List* ( fix #692 )
2024-02-09 14:15:29 +01:00
5c63193d1d
[dep-upgrade-202402] fix shutdown issue introduced when upgrading hyper
2024-02-08 23:43:59 +01:00
bcbd15da84
[dep-upgrade-202402] cargo clippy fixes
2024-02-08 23:29:57 +01:00
ad5ce968d2
[dep-upgrade-202402] remove useless mut
2024-02-08 23:29:57 +01:00
e011941964
[dep-upgrade-202402] refactor use of BodyStream
2024-02-07 15:32:51 +01:00
53746b59e5
[dep-upgrade-202402] slightly more explicit error management
2024-02-07 14:53:13 +01:00
a31d1bd496
[dep-upgrade-202402] fix obsolete DateTime::from_utc calls
2024-02-07 14:48:27 +01:00
e524e7a30d
[dep-upgrade-202402] rename BytesBody into ErrorBody for clarity
2024-02-07 14:45:52 +01:00
fe48d60d2b
[dep-upgrade-202402] refactor http listener code
2024-02-07 14:34:40 +01:00
22332e6c35
[dep-upgrade-202402] simplify/refactor GetObject
2024-02-05 20:26:33 +01:00
81ccd4586e
[dep-upgrade-202402] upgrade to http/hyper 1.x for tests
2024-02-05 19:57:35 +01:00
a22bd31920
[dep-upgrade-202402] migration to http/hyper 1.0 for k2v api
2024-02-05 19:27:12 +01:00
0bb5b77530
[dep-upgrade-202402] wip: port to http/hyper crates v1
2024-02-05 18:49:54 +01:00
6e69a1fffc
[dep-upgrade-202402] prepare migration to http/hyper 1.0
2024-02-05 14:44:12 +01:00
6e4229e29c
[dep-upgrade-202402] update aws-sdk dependencies
2024-02-05 14:02:45 +01:00
fe1af5d98b
[dep-upgrade-202402] refactor dependencies: move all as workspace deps
2024-02-05 13:02:02 +01:00
0eef8a69f0
make all garage_db::Engine variants un-conditional
...
Having all Engine enum variants conditional causes compilation errors
when *none* of the DB engine features is enabled. This is not an issue
for full garage build, but affects crates that use garage_db as
dependency.
Change all variants to be present at all times. It solves compilation
errors and also allows us to better differentiate between invalid DB
engine name and engine with support not compiled in current binary.
2024-01-22 21:12:02 +01:00
74e72fc996
convert_db: cleanup naming and comments for open overrides
2024-01-22 17:52:39 +01:00
4b54e053df
convert_db: prevent conversion between same input/output engine
...
Use optional DB open overrides for both input and output database.
Duplicating the same override flag for input/output would result in too
many, too long flags. It would be too costly for very rare edge-case
where converting between same DB engine, just with different flags.
Because overrides flags for different engines are disjoint and we are
preventing conversion between same input/ouput DB engine, we can have
only one set.
The override flag will be passed either to input or output, based on
engine type it belongs to. It will never be passed to both of them and
cause unwelcome surprise to user.
2024-01-18 17:57:56 +01:00
8527dd87cc
convert_db: allow LMDB map size override
2024-01-17 21:20:34 +01:00