From 97b9b2e7599d65347a4b31ea24f457f63cfd9f49 Mon Sep 17 00:00:00 2001 From: Sean Klein Date: Wed, 5 Feb 2025 16:16:22 -0800 Subject: [PATCH] Eliza's feedback --- nexus/db-queries/src/db/datastore/sled.rs | 24 +++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/nexus/db-queries/src/db/datastore/sled.rs b/nexus/db-queries/src/db/datastore/sled.rs index 217ab71718..9621515e17 100644 --- a/nexus/db-queries/src/db/datastore/sled.rs +++ b/nexus/db-queries/src/db/datastore/sled.rs @@ -267,21 +267,25 @@ fn pick_sled_reservation_target( // Only consider "unpreferred" sleds that are viable targets unpreferred = targets.intersection(&unpreferred).cloned().collect(); - // If a target is both preferred and unpreferred, it is removed - // from both sets. + // If a target is both preferred and unpreferred, it is not considered + // a part of either set. let both = preferred.intersection(&unpreferred).cloned().collect(); - preferred = preferred.difference(&both).cloned().collect(); - unpreferred = unpreferred.difference(&both).cloned().collect(); - if let Some(target) = preferred.iter().next() { - return Ok(*target); + // Grab a preferred target (which isn't also unpreferred) if one exists. + if let Some(target) = preferred.difference(&both).cloned().next() { + return Ok(target); } + unpreferred = unpreferred.difference(&both).cloned().collect(); targets = targets.difference(&unpreferred).cloned().collect(); - if let Some(target) = targets.iter().next() { - return Ok(*target); + + // Grab a target which not in the unpreferred set, if one exists. + if let Some(target) = targets.iter().cloned().next() { + return Ok(target); } - if let Some(target) = unpreferred.iter().next() { - return Ok(*target); + + // Grab a target from the unpreferred set, if one exists. + if let Some(target) = unpreferred.iter().cloned().next() { + return Ok(target); } return Err(SledReservationError::NotFound); }