diff options
author | Alex Auvolat <alex@adnab.me> | 2022-12-11 18:30:02 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2022-12-11 18:30:02 +0100 |
commit | 9d83364ad911b414e6e8eb56f75bf4bfb2d36239 (patch) | |
tree | db5f836e8547f9e0ba6d0dbf71f046fc3c227d95 /src | |
parent | ec12d6c8ddde0f1dc908e43fef0ecc88d1e5406b (diff) | |
download | garage-9d83364ad911b414e6e8eb56f75bf4bfb2d36239.tar.gz garage-9d83364ad911b414e6e8eb56f75bf4bfb2d36239.zip |
itertools .unique() doesn't require sorted items
Diffstat (limited to 'src')
-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!( |