From 926d53de2d2f352ff39d11ad0eed27434e29719f Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Mon, 2 Oct 2023 16:48:27 +0000 Subject: [PATCH] disable the timeout, see whether that reduces find_victim CPU burn --- pageserver/src/page_cache.rs | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/pageserver/src/page_cache.rs b/pageserver/src/page_cache.rs index 97ca2bfea7..0df1605706 100644 --- a/pageserver/src/page_cache.rs +++ b/pageserver/src/page_cache.rs @@ -484,26 +484,13 @@ impl PageCache { // not require changes. async fn try_get_pinned_slot_permit(&self) -> anyhow::Result { - let timer = crate::metrics::PAGE_CACHE_ACQUIRE_PINNED_SLOT_TIME.start_timer(); - match tokio::time::timeout( - // Choose small timeout, neon_smgr does its own retries. - // https://neondb.slack.com/archives/C04DGM6SMTM/p1694786876476869 - Duration::from_secs(10), - Arc::clone(&self.pinned_slots).acquire_owned(), - ) - .await - { - Ok(res) => Ok(PinnedSlotsPermit( - res.expect("this semaphore is never closed"), - )), - Err(_timeout) => { - timer.stop_and_discard(); - crate::metrics::page_cache_errors_inc( - crate::metrics::PageCacheErrorKind::AcquirePinnedSlotTimeout, - ); - anyhow::bail!("timeout: there were page guards alive for all page cache slots") - } - } + let _timer = crate::metrics::PAGE_CACHE_ACQUIRE_PINNED_SLOT_TIME.start_timer(); + Ok(PinnedSlotsPermit( + Arc::clone(&self.pinned_slots) + .acquire_owned() + .await + .unwrap(), + )) } /// Look up a page in the cache.