From d4a7bdad559ccedb7f75794984131acdd371b0df Mon Sep 17 00:00:00 2001 From: Joonas Koivunen Date: Thu, 24 Aug 2023 17:04:51 +0300 Subject: [PATCH] fix: move metric updates to finish_compact_l0 --- pageserver/src/tenant/timeline.rs | 11 ++++++----- pageserver/src/tenant/timeline/layer_manager.rs | 5 +++++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/pageserver/src/tenant/timeline.rs b/pageserver/src/tenant/timeline.rs index 05b8ab18af..7896b50cc7 100644 --- a/pageserver/src/tenant/timeline.rs +++ b/pageserver/src/tenant/timeline.rs @@ -3416,10 +3416,6 @@ impl Timeline { } else if LayerMap::is_l0(l.layer_desc()) { return Err(CompactionError::Other(anyhow!("compaction generates a L0 layer file as output, which will cause infinite compaction."))); } else { - // update the timeline's physical size - self.metrics - .resident_physical_size_gauge - .add(l.layer_desc().file_size); insert_layers.push(l); } } @@ -3433,7 +3429,12 @@ impl Timeline { // deletion will happen later, the layer file manager sets wanted_garbage_collected - guard.finish_compact_l0(&layer_removal_cs, remove_layers, &insert_layers)?; + guard.finish_compact_l0( + &layer_removal_cs, + remove_layers, + &insert_layers, + &self.metrics, + )?; drop_wlock(guard); diff --git a/pageserver/src/tenant/timeline/layer_manager.rs b/pageserver/src/tenant/timeline/layer_manager.rs index 0e59817c0d..1a15020cf0 100644 --- a/pageserver/src/tenant/timeline/layer_manager.rs +++ b/pageserver/src/tenant/timeline/layer_manager.rs @@ -206,6 +206,7 @@ impl LayerManager { layer_removal_cs: &Arc>, compact_from: Vec>, compact_to: &[ResidentLayer], + metrics: &crate::metrics::TimelineMetrics, ) -> Result<()> { let mut updates = self.layer_map.batch_update(); for l in compact_to { @@ -213,6 +214,10 @@ impl LayerManager { LayerResidenceStatus::Resident, LayerResidenceEventReason::LayerCreate, ); + metrics + .resident_physical_size_gauge + .add(l.layer_desc().file_size); + Self::insert_historic_layer(l.as_ref().clone(), &mut updates, &mut self.layer_fmgr); } for l in compact_from {