diff --git a/libs/pageserver_api/src/models.rs b/libs/pageserver_api/src/models.rs index 051cea7bee..4360f76fd1 100644 --- a/libs/pageserver_api/src/models.rs +++ b/libs/pageserver_api/src/models.rs @@ -282,7 +282,7 @@ pub struct PagestreamNblocksResponse { #[derive(Debug)] pub struct PagestreamGetPageResponse { - pub page: std::sync::Arc, + pub page: Bytes, } #[derive(Debug)] diff --git a/pageserver/src/page_image_cache.rs b/pageserver/src/page_image_cache.rs index 3d7b348bc1..fe5642e2a9 100644 --- a/pageserver/src/page_image_cache.rs +++ b/pageserver/src/page_image_cache.rs @@ -25,7 +25,7 @@ const TEST_PAGE_CACHE_SIZE: usize = 50; enum PageImageState { Vacant, // entry is not used - Loaded(Arc), // page is loaded + Loaded(Bytes), // page is loaded Loading(Option>), // page in process of loading, Condvar is created on demand when some thread need to wait load completion } @@ -194,7 +194,7 @@ pub fn lookup( rel: RelTag, blkno: BlockNumber, lsn: Lsn, -) -> Result> { +) -> Result { let key = MaterializedPageHashKey { key: rel_block_to_key(rel, blkno), tenant_id: timeline.tenant_id, @@ -278,7 +278,7 @@ pub fn lookup( drop(cache); //release lock // Load page - let page = Arc::new(timeline.get_rel_page_at_lsn(rel, blkno, lsn, true)?); + let page = timeline.get_rel_page_at_lsn(rel, blkno, lsn, true)?; cache = this.lock().unwrap(); if let PageImageState::Loading(event) = &cache.pages[index].state {