From 7f67f65d92282caeeb4ee91a74cf346eaf45b737 Mon Sep 17 00:00:00 2001 From: Konstantin Knizhnik Date: Fri, 4 Nov 2022 12:55:21 +0200 Subject: [PATCH] Use access counter for file cache pages --- pageserver/src/page_image_cache.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pageserver/src/page_image_cache.rs b/pageserver/src/page_image_cache.rs index dc13c285a3..4d16b239e1 100644 --- a/pageserver/src/page_image_cache.rs +++ b/pageserver/src/page_image_cache.rs @@ -94,6 +94,7 @@ impl PageImageCache { VirtualFile::open_with_options( &std::path::PathBuf::from("page.cache"), std::fs::OpenOptions::new() + .read(true) .write(true) .create(true) .truncate(true), @@ -234,6 +235,7 @@ pub fn lookup(timeline: &Timeline, rel: RelTag, blkno: BlockNumber, lsn: Lsn) -> let mut buf = [0u8; PAGE_SZ]; file.read_exact_at(&mut buf, index as u64 * PAGE_SZ as u64)?; cache = this.lock().unwrap(); + assert!(cache.pages[index].access_count > 0); cache.pages[index].access_count -= 1; if cache.pages[index].access_count == 0 { // Move to the head of LRU list