From 600588034bb8a42deb608548eee08baaff842b91 Mon Sep 17 00:00:00 2001 From: Konstantin Knizhnik Date: Fri, 9 Jul 2021 12:06:46 +0300 Subject: [PATCH] Store page image with the same LSN as replaced WAL record --- pageserver/src/object_repository.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pageserver/src/object_repository.rs b/pageserver/src/object_repository.rs index 1dc8a367e2..40241cb0ee 100644 --- a/pageserver/src/object_repository.rs +++ b/pageserver/src/object_repository.rs @@ -266,7 +266,7 @@ impl Timeline for ObjectTimeline { self.get_page_at_lsn_nowait(tag, lsn) } - fn get_page_at_lsn_nowait(&self, tag: ObjectTag, lsn: Lsn) -> Result { + fn get_page_at_lsn_nowait(&self, tag: ObjectTag, req_lsn: Lsn) -> Result { const ZERO_PAGE: [u8; 8192] = [0u8; 8192]; // Look up the page entry. If it's a page image, return that. If it's a WAL record, // ask the WAL redo service to reconstruct the page image from the WAL records. @@ -274,9 +274,9 @@ impl Timeline for ObjectTimeline { timeline: self.timelineid, tag, }; - let mut iter = self.object_versions(&*self.obj_store, &searchkey, lsn)?; + let mut iter = self.object_versions(&*self.obj_store, &searchkey, req_lsn)?; - if let Some((version_lsn, value)) = iter.next().transpose()? { + if let Some((lsn, value)) = iter.next().transpose()? { let page_img: Bytes; match ObjectValue::des(&value)? { @@ -300,12 +300,12 @@ impl Timeline for ObjectTimeline { page_lsn_hi, page_lsn_lo, tag, - version_lsn, - lsn + lsn, + req_lsn ); return Ok(page_img); } - trace!("page {:?} at {} not found", tag, lsn); + trace!("page {:?} at {} not found", tag, req_lsn); Ok(Bytes::from_static(&ZERO_PAGE)) /* return Err("could not find page image")?; */ }