From da55eebc835e33bcf7bde786bb739bb6975518b8 Mon Sep 17 00:00:00 2001 From: Yuchen Liang Date: Thu, 13 Jun 2024 12:59:05 -0400 Subject: [PATCH] use BTreeMap::retain Signed-off-by: Yuchen Liang --- pageserver/src/tenant.rs | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/pageserver/src/tenant.rs b/pageserver/src/tenant.rs index 63ce39d81f..f913070955 100644 --- a/pageserver/src/tenant.rs +++ b/pageserver/src/tenant.rs @@ -21,6 +21,7 @@ use futures::FutureExt; use futures::StreamExt; use pageserver_api::models; use pageserver_api::models::AuxFilePolicy; +use pageserver_api::models::LsnLease; use pageserver_api::models::TimelineState; use pageserver_api::models::TopTenantShardItem; use pageserver_api::models::WalRedoManagerStatus; @@ -3007,27 +3008,9 @@ impl Tenant { { let mut target = timeline.gc_info.write().unwrap(); - // FIXME(yuchen): Maybe we can move this before taking `gc_cs`? - { - // Collect expired leases - let lsns_with_expired_lease = target - .leases - .iter() - .filter_map( - |(lsn, lease)| { - if lease.is_expired() { - Some(*lsn) - } else { - None - } - }, - ) - .collect::>(); - - for lsn in lsns_with_expired_lease { - target.leases.remove(&lsn); - } - } + target + .leases + .retain(|_, lease| !LsnLease::is_expired(lease)); match gc_cutoffs.remove(&timeline.timeline_id) { Some(cutoffs) => {