diff options
author | Alex <alex@adnab.me> | 2022-12-11 17:41:53 +0000 |
---|---|---|
committer | Alex <alex@adnab.me> | 2022-12-11 17:41:53 +0000 |
commit | 6e44369cbc810b8912ca0f7f5fd293e87f10c851 (patch) | |
tree | c3daca5df86a17139f25a718779dfadf26d78af8 /src/rpc/layout.rs | |
parent | 2c2e65ad8b37128612ba47a777eacbae5e43f3ab (diff) | |
parent | 9d83364ad911b414e6e8eb56f75bf4bfb2d36239 (diff) | |
download | garage-6e44369cbc810b8912ca0f7f5fd293e87f10c851.tar.gz garage-6e44369cbc810b8912ca0f7f5fd293e87f10c851.zip |
Merge pull request 'Optimal layout assignation algorithm' (#296) from optimal-layout into next
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/296
Diffstat (limited to 'src/rpc/layout.rs')
-rw-r--r-- | src/rpc/layout.rs | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/rpc/layout.rs b/src/rpc/layout.rs index 133e33c8..1cef44d1 100644 --- a/src/rpc/layout.rs +++ b/src/rpc/layout.rs @@ -353,20 +353,18 @@ To know the correct value of the new layout version, invoke `garage layout show` // Check that every partition is associated to distinct nodes let rf = self.replication_factor; for p in 0..(1 << PARTITION_BITS) { - let mut nodes_of_p = self.ring_assignation_data[rf * p..rf * (p + 1)].to_vec(); - nodes_of_p.sort(); + let nodes_of_p = self.ring_assignation_data[rf * p..rf * (p + 1)].to_vec(); if nodes_of_p.iter().unique().count() != rf { return Err(format!("partition does not contain {} unique node ids", rf)); } // Check that every partition is spread over at least zone_redundancy zones. - let mut zones_of_p = nodes_of_p + let zones_of_p = nodes_of_p .iter() .map(|n| { self.get_node_zone(&self.node_id_vec[*n as usize]) .expect("Zone not found.") }) .collect::<Vec<_>>(); - zones_of_p.sort(); let redundancy = self.parameters.zone_redundancy; if zones_of_p.iter().unique().count() < redundancy { return Err(format!( |