From a64711dec80e8e8a2b823882849295d696d79c21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arpad=20M=C3=BCller?= Date: Thu, 22 May 2025 14:41:10 +0200 Subject: [PATCH] fix --- pageserver/src/tenant/storage_layer/layer.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pageserver/src/tenant/storage_layer/layer.rs b/pageserver/src/tenant/storage_layer/layer.rs index 3d55972017..3090a5cc6f 100644 --- a/pageserver/src/tenant/storage_layer/layer.rs +++ b/pageserver/src/tenant/storage_layer/layer.rs @@ -185,6 +185,7 @@ impl Layer { None, metadata.generation, metadata.shard, + metadata.template_ttid, ))); debug_assert!(owner.0.needs_download_blocking().unwrap().is_some()); @@ -225,6 +226,7 @@ impl Layer { Some(inner), metadata.generation, metadata.shard, + metadata.template_ttid, ) })); @@ -273,6 +275,7 @@ impl Layer { Some(inner), timeline.generation, timeline.get_shard_index(), + None, ) })); @@ -710,6 +713,8 @@ struct LayerInner { /// a shard split since the layer was originally written. shard: ShardIndex, + template_ttid: Option<(TenantShardId, TimelineId)>, + /// When the Layer was last evicted but has not been downloaded since. /// /// This is used for skipping evicted layers from the previous heatmap (see @@ -853,6 +858,7 @@ impl LayerInner { downloaded: Option>, generation: Generation, shard: ShardIndex, + template_ttid: Option<(TenantShardId, TimelineId)>, ) -> Self { let (inner, version, init_status) = if let Some(inner) = downloaded { let version = inner.version; @@ -888,6 +894,7 @@ impl LayerInner { consecutive_failures: AtomicUsize::new(0), generation, shard, + template_ttid, last_evicted_at: std::sync::Mutex::default(), #[cfg(test)] failpoints: Default::default(), @@ -1623,7 +1630,9 @@ impl LayerInner { } fn metadata(&self) -> LayerFileMetadata { - LayerFileMetadata::new(self.desc.file_size, self.generation, self.shard) + let mut metadata = LayerFileMetadata::new(self.desc.file_size, self.generation, self.shard); + metadata.template_ttid = self.template_ttid; + metadata } /// Needed to use entered runtime in tests, but otherwise use BACKGROUND_RUNTIME.