diff --git a/pageserver/src/tenant/layer_map.rs b/pageserver/src/tenant/layer_map.rs index a3cfbb8c13..e39f16e213 100644 --- a/pageserver/src/tenant/layer_map.rs +++ b/pageserver/src/tenant/layer_map.rs @@ -429,6 +429,9 @@ impl LayerMap { /// This should be called when the corresponding file on disk has been deleted. /// pub fn remove_historic(&mut self, layer: Arc) { + + // TODO remve from self.index and self.images + if layer.get_key_range() == (Key::MIN..Key::MAX) { let len_before = self.l0_delta_layers.len(); diff --git a/pageserver/src/tenant/timeline.rs b/pageserver/src/tenant/timeline.rs index a5a6573d5b..f612c2f8f4 100644 --- a/pageserver/src/tenant/timeline.rs +++ b/pageserver/src/tenant/timeline.rs @@ -2298,6 +2298,7 @@ impl Timeline { l.delete()?; layers.remove_historic(l); } + layers.rebuild_index(); drop(layers); // Also schedule the deletions in remote storage @@ -2594,6 +2595,7 @@ impl Timeline { layers.remove_historic(doomed_layer); result.layers_removed += 1; } + layers.rebuild_index(); info!( "GC completed removing {} layers, cutoff {}",