From 68cc1d98e8e3544bf288a713c697eb4c821da25d Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Mon, 21 Aug 2023 20:28:08 +0300 Subject: [PATCH] inmemory_layer: move method impls outside of impl Layer --- .../tenant/storage_layer/inmemory_layer.rs | 53 ++++++++++++++----- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/pageserver/src/tenant/storage_layer/inmemory_layer.rs b/pageserver/src/tenant/storage_layer/inmemory_layer.rs index a2bf6a7695..0c85f867a7 100644 --- a/pageserver/src/tenant/storage_layer/inmemory_layer.rs +++ b/pageserver/src/tenant/storage_layer/inmemory_layer.rs @@ -85,11 +85,11 @@ impl std::fmt::Debug for InMemoryLayerInner { } impl InMemoryLayer { - pub fn get_timeline_id(&self) -> TimelineId { + pub(crate) fn get_timeline_id(&self) -> TimelineId { self.timeline_id } - pub fn info(&self) -> InMemoryLayerInfo { + pub(crate) fn info(&self) -> InMemoryLayerInfo { let lsn_start = self.start_lsn; if let Some(&lsn_end) = self.end_lsn.get() { @@ -99,32 +99,31 @@ impl InMemoryLayer { } } - fn assert_writable(&self) { + pub(crate) fn assert_writable(&self) { assert!(self.end_lsn.get().is_none()); } - fn end_lsn_or_max(&self) -> Lsn { + pub(crate) fn end_lsn_or_max(&self) -> Lsn { self.end_lsn.get().copied().unwrap_or(Lsn::MAX) } -} -#[async_trait::async_trait] -impl Layer for InMemoryLayer { - fn get_key_range(&self) -> Range { + pub(crate) fn get_key_range(&self) -> Range { Key::MIN..Key::MAX } - fn get_lsn_range(&self) -> Range { + pub(crate) fn get_lsn_range(&self) -> Range { self.start_lsn..self.end_lsn_or_max() } - fn is_incremental(&self) -> bool { + pub(crate) fn is_incremental(&self) -> bool { // in-memory layer is always considered incremental. true } /// debugging function to print out the contents of the layer - async fn dump(&self, verbose: bool, _ctx: &RequestContext) -> Result<()> { + /// + /// this is likely completly unused + pub async fn dump(&self, verbose: bool, _ctx: &RequestContext) -> Result<()> { let inner = self.inner.read().await; let end_str = self.end_lsn_or_max(); @@ -171,7 +170,7 @@ impl Layer for InMemoryLayer { } /// Look up given value in the layer. - async fn get_value_reconstruct_data( + pub(crate) async fn get_value_reconstruct_data( &self, key: Key, lsn_range: Range, @@ -221,6 +220,36 @@ impl Layer for InMemoryLayer { } } +#[async_trait::async_trait] +impl Layer for InMemoryLayer { + fn get_key_range(&self) -> Range { + self.get_key_range() + } + + fn get_lsn_range(&self) -> Range { + self.get_lsn_range() + } + + fn is_incremental(&self) -> bool { + self.is_incremental() + } + + async fn get_value_reconstruct_data( + &self, + key: Key, + lsn_range: Range, + reconstruct_data: &mut ValueReconstructState, + ctx: &RequestContext, + ) -> Result { + self.get_value_reconstruct_data(key, lsn_range, reconstruct_data, ctx) + .await + } + + async fn dump(&self, verbose: bool, ctx: &RequestContext) -> Result<()> { + self.dump(verbose, ctx).await + } +} + impl std::fmt::Display for InMemoryLayer { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let end_lsn = self.end_lsn_or_max();