From 9d83364ad911b414e6e8eb56f75bf4bfb2d36239 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Sun, 11 Dec 2022 18:30:02 +0100 Subject: [PATCH] itertools .unique() doesn't require sorted items --- src/rpc/layout.rs | 6 ++---- 1 file 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::>(); - zones_of_p.sort(); let redundancy = self.parameters.zone_redundancy; if zones_of_p.iter().unique().count() < redundancy { return Err(format!(