From 577af8a45936688e36dc5503e3d2fab46b87280d Mon Sep 17 00:00:00 2001 From: Konstantin Knizhnik Date: Fri, 9 Jul 2021 12:16:53 +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 63a95be998..e3bb4ceba9 100644 --- a/pageserver/src/object_repository.rs +++ b/pageserver/src/object_repository.rs @@ -599,16 +599,16 @@ impl Timeline for ObjectTimeline { } impl ObjectTimeline { - fn get_page_at_lsn_nowait(&self, tag: BufferTag, lsn: Lsn) -> Result { + fn get_page_at_lsn_nowait(&self, tag: BufferTag, req_lsn: Lsn) -> Result { // 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. let searchkey = ObjectKey { timeline: self.timelineid, tag: ObjectTag::RelationBuffer(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_page(&value)? { @@ -636,13 +636,13 @@ impl ObjectTimeline { page_lsn_lo, tag.rel, tag.blknum, - version_lsn, - lsn + lsn, + req_lsn ); return Ok(page_img); } static ZERO_PAGE: [u8; 8192] = [0u8; 8192]; - trace!("page {} blk {} at {} not found", tag.rel, tag.blknum, lsn); + trace!("page {} blk {} at {} not found", tag.rel, tag.blknum, req_lsn); Ok(Bytes::from_static(&ZERO_PAGE)) /* return Err("could not find page image")?; */ }