Gwen Lg
6dbcdcd784
style: improve use of std api
...
- replace get(0) by first()
lint message: accessing first element with `objs.get(0)`
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#get_first
- use io::Error::other method available since Rust 1.87
lint message: this can be `std::io::Error::other(_)`
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#io_other_error
- implement From<_> instead of Into<_>
lint message: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true
help: `impl From<Local> for Foreign` is allowed by the orphan rules, for more information see
https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#from_over_into
- use next_back instead of rev + next
lint message: manual backwards iteration
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#manual_next_back
- use saturating_sub instead of manual implement it
lint message: manual arithmetic check found
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#implicit_saturating_sub
- add Default implementation for Checksummer
use derived Default ans use it in new, as new set all value to None
lint message: you should consider adding a `Default` implementation for `Checksummer`
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#new_without_default
- use `any` instead of `find` + `is_some`
lint message: called `is_some()` after searching an `Iterator` with `find`
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#search_is_some
- replace `and_then` + `Some(_)` with `map`
lint message: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)`
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#bind_instead_of_map
- replace `skip_while` + `next` with `find`
lint message: called `skip_while(<p>).next()` on an `Iterator`
help: this is more succinctly expressed by calling `.find(!<p>)` instead
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#skip_while_next
- use `matches!` instead of manual implementation
lint message: match expression looks like `matches!` macro
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#match_like_matches_macro
- use `keys` and `values methods insteads of iterating and ignoring either the keys or values.
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#iter_kv_map
2026-01-29 20:49:28 +01:00
Gwen Lg
21db7a4d4b
chore: remove various useless code
...
- call expect directly on Result
lint message: called `ok().expect()` on a `Result` value
help: you can call `expect()` directly on the `Result`
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#ok_expect
- use assign operation instead of manual implementation
lint message: manual implementation of an assign operation
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#assign_op_pattern
- remove useless call to format
lint message: useless use of `format!`
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#useless_format
- remove useless `?Sized`
lint message: `?Sized` bound is ignored because of a `Sized` requirement
note: ...because `Deserialize` has the bound `Sized`
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#needless_maybe_sized
- use is_some instead of pattern maching with Some(_)
lint message: redundant pattern matching, consider using `is_some()`
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#redundant_pattern_matching
- remove unneeded unit return type
lint message: unneeded unit return type
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#unused_unit
- remove redundant closure
lint message: redundant closure
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#redundant_closure
- use derive Default instead of manual implementation
lint message: this `impl` can be derived
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#derivable_impls
- remove unneeded `return` statement
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#needless_return
- remove empty string from println call
lint message: empty string literal in `println!`
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#println_empty_string
- remove clone() on type than implement Copy
lint message: using `clone` on type `Option<ChecksumValue>` which implements the `Copy` trait
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#clone_on_copy
- remove useless let binding
lint message: this let-binding has unit value
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#let_unit_value
- remove useless len comparison to zero, already test of empty
lint message: length comparison to zero
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#len_zero
- remove useless `as_deref` call
lint message: derefed type is same as origin
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#needless_option_as_deref
- remove useless conversion of the same type
lint message: useless conversion to the same type: `replication_mode::ReplicationFactor`
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#useless_conversion
- remove useless bool_comparison
lint message: equality checks against false can be replaced by a negation
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#bool_comparison
- remove useless to_string
lint message: unnecessary use of `to_string`
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#unnecessary_to_owned
Signed-off-by: Gwen Lg <me@gwenlg.fr >
2026-01-29 20:49:28 +01:00
Gwen Lg
141b3f24f1
chore: clean relative to references and borrows
...
- lint message: the borrowed expression implements the required traits
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#needless_borrows_for_generic_args
- lint message: this expression creates a reference which is immediately dereferenced by the compiler
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#needless_borrow
- lint message: you don't need to add `&` to all patterns
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#match_ref_pat
- remove useless taken reference
lint message: needlessly taken reference of left operand
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#op_ref
- use &Path instead of &PathBuf as fn parameters
lint message: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do
help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.92.0/index.html#ptr_arg
2026-01-29 20:49:28 +01:00
Gwen Lg
295c850380
chore: add taplo.toml and resave Cargo.toml
...
Signed-off-by: Gwen Lg <me@gwenlg.fr >
2026-01-29 20:49:28 +01:00
Gwen Lg
32da94cbbe
chore: rename strat into strategy to improve redability
...
`strat` is reported as error by typos
2026-01-29 14:53:27 +01:00
Gwen Lg
e331f88c85
chore: fix typos in rust code comment or error message
2026-01-29 14:53:27 +01:00
Alex Auvolat
582b168b6a
bump version to v2.2.0
2026-01-24 12:32:22 +01:00
rmoff
d30bb2acb1
Fix typo in error message
2026-01-12 17:32:02 +00:00
Alex Auvolat
cf22e7b71d
reintroduce warning when invalid node id is present in consul
2026-01-06 14:35:51 +01:00
Alex Auvolat
dc8d93698b
small documentation fixes and simplify config struct
2026-01-06 14:33:20 +01:00
JaminMartin
2f7a649870
doc: added documentation for WAN service discovery
2025-12-19 11:26:24 +13:00
JaminMartin
c4836916b0
feat: testing wan consul discovery
2025-12-19 10:24:11 +13:00
trinity-1686a
ef913843f7
fmt
2025-11-01 19:35:11 +01:00
trinity-1686a
1fe932d07f
migrate to this error
...
it doesn't generate a bazillion warning at compile time
2025-11-01 17:25:23 +01:00
Alex Auvolat
b43f309ec7
bump version to v2.1.0
2025-09-15 15:50:02 +02:00
Alex Auvolat
909359ca4c
Merge branch 'main-v1' into sync-v2-to-v1
2025-09-14 17:02:34 +02:00
Alex Auvolat
4c139bcbca
add error case for layout not ready, and fail earlier in many places
2025-09-13 20:52:51 +02:00
Alex Auvolat
6cf6db5c61
fix panic when cluster_layout cannot be saved ( fix #1150 )
2025-09-13 17:49:25 +02:00
Alex Auvolat
fbf03e9378
bump version to v1.2.0
2025-06-13 14:21:28 +02:00
Yureka
45bdf54e7e
throw error on legacy replication_mode setting
2025-05-15 08:09:56 +02:00
Yureka
a2d87a012d
refactor: use replication factor of the layout versions in calculate_sync_map_min_with_quorum
2025-04-28 11:51:01 +02:00
Yureka
899292ee28
refactor: make TableShardedReplication a thin wrapper around LayoutManager
2025-04-28 11:51:01 +02:00
Yureka
c8e9c45889
refactor: Use ReplicationFactor type in more places
...
- Remove the replication_factor.replication_factor() in favor of
usize::from(replication_factor) to make the conversion more explicit.
- Implement Display on ReplicationFactor so that it can be formatted
without converting to usize
- Use ReplicationFactor in the constructor of LayoutVersion and add a
method to get a ReplicationFactor from a LayoutVersion, despite
LayoutVersion still storing it as usize internally.
2025-04-21 19:47:14 +02:00
Alex Auvolat
d38d62f4d7
bump version to v2.0.0
2025-04-17 12:36:41 +02:00
Alex Auvolat
c6bed26347
relocalize logic into block manager
2025-03-25 16:41:19 +01:00
Alex Auvolat
d25e631a4a
relocalize logic for write_sets
2025-03-25 16:35:56 +01:00
Alex Auvolat
514eb29874
use a WriteLock for write operations on fullcopy tables
2025-03-25 13:26:23 +01:00
Alex Auvolat
2f2a96b51d
layout & replication mode refactoring
2025-03-25 11:05:00 +01:00
Alex Auvolat
e6862c5d3d
cli: uniformize output and add some infos
2025-03-12 15:05:37 +01:00
Alex Auvolat
1f645830a4
layout: make optional version mandatory in apply layout changes
2025-03-11 10:05:02 +01:00
Alex Auvolat
5f308bd688
move zone redundancy parsing/formatting to cli
2025-03-11 10:00:37 +01:00
Alex Auvolat
e83864af24
layout: better encapsulation
2025-03-11 09:29:38 +01:00
Alex Auvolat
4689b10448
bump version to v1.1.0
2025-03-05 10:19:51 +01:00
Alex
1cb0ae10a8
Merge pull request 'fix crash in layout computation when changing all nodes of a zone to gateway mode' ( #937 ) from baptiste/garage:fix_layout_crash into main
...
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/937
Reviewed-by: Alex <lx@deuxfleurs.fr >
2025-02-19 17:09:10 +00:00
Alex Auvolat
6820b69f30
block manager: improve read strategy to find blocks faster
2025-02-14 16:45:55 +01:00
Alex Auvolat
d0104b9f9b
block manager: write blocks only to currently active layout version ( fix #815 )
...
avoid wastefully writing blocks to nodes that will discard them as soon
as the layout migration is finished
2025-02-14 16:45:55 +01:00
Alex Auvolat
620dc58560
remove async_trait for traits declared in garage_net
2025-02-05 20:22:16 +01:00
Alex Auvolat
4563313f87
use cargo-shear to remove many unused dependencies between crates
2025-01-31 18:47:30 +01:00
Baptiste Jonglez
6d798c640f
WIP: fix crash in layout computation when changing all nodes of a zone to gateway mode
...
This change is probably not a proper fix, somebody with more expertise on
this code should look at it.
Here is how to reproduce the crash:
- start with a layout with two zones
- move all nodes of a zone to gateway mode: `garage layout assign fea54bcc081f318 -g`
- `garage layout show` will panic with a backtrace
Fortunately, the crash is only on the RPC client side, not on the Garage
server itself, and `garage layout revert` still works to go back to the
previous state.
As far as I can tell, this bug is present since Garage 0.9.0 which
includes the new layout assignation algorithm:
https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/296
2025-01-27 19:33:57 +01:00
Stefan Majer
2eb9fcae20
Fix all typos
2025-01-16 13:22:00 +01:00
Vedad KAJTAZ
6689800986
Formatting with
2025-01-04 16:52:23 +01:00
Vedad KAJTAZ
6ca99fd02c
formatting
2025-01-04 14:46:42 +01:00
Vedad KAJTAZ
b568bb863d
Fix #907
2025-01-04 12:50:10 +01:00
Alex Auvolat
7a143f46fc
Bump to version 1.0.1
2024-09-22 14:25:32 +02:00
Alex Auvolat
34453bc9c2
fix logic in garage layout skip-dead-nodes + fix typo ( fix #879 )
2024-09-22 13:47:27 +02:00
Alex Auvolat
7fb66b4944
layout: discard old info when it is completely out-of-date ( fix #841 )
2024-08-24 12:38:56 +02:00
Florian Klink
a0f6bc5b7f
add rpc_public_addr_subnet config option
...
In case `rpc_public_addr` is not set, but autodiscovery is used, this
allows filtering the list of automatically discovered IPs to a specific
subnet.
For example, if nodes should pick *their* IP inside a specific subnet,
but you don't want to explicitly write the IP down (as it's dynamic, or
you want to share configs across nodes), you can use this option.
2024-06-05 08:41:36 +02:00
Alex Auvolat
afad62939e
[next-0.10] bump version number to 1.0
2024-03-28 15:19:44 +01:00
Alex Auvolat
8bfc16ba7d
Merge branch 'main' into next-0.10
2024-03-28 15:01:05 +01:00
Alex Auvolat
0d3e285d13
[fix-buffering] implement block_ram_buffer_max to avoid excessive RAM usage
2024-03-27 16:22:40 +01:00