From eb52129a91c2378e83bc8f76703202ff76b3e474 Mon Sep 17 00:00:00 2001 From: Zhenchi Date: Wed, 3 Sep 2025 15:11:05 +0800 Subject: [PATCH] fix: move prune_region_dir to region drop (#6891) * fix: move prune_region_dir to region drop Signed-off-by: Zhenchi * address comments Signed-off-by: Zhenchi --------- Signed-off-by: Zhenchi Signed-off-by: WenyXu --- src/mito2/src/sst/file_purger.rs | 5 +++-- src/mito2/src/worker/handle_drop.rs | 4 ++++ src/puffin/src/puffin_manager/stager/bounded_stager.rs | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/mito2/src/sst/file_purger.rs b/src/mito2/src/sst/file_purger.rs index 0012162a7f..a5b4d8abbe 100644 --- a/src/mito2/src/sst/file_purger.rs +++ b/src/mito2/src/sst/file_purger.rs @@ -137,12 +137,13 @@ impl FilePurger for LocalFilePurger { error!(e; "Failed to purge stager with index file, file_id: {}, region: {}", file_meta.file_id(), file_meta.region_id); } + let file_id = file_meta.file_id(); if let Err(e) = sst_layer .intermediate_manager() - .prune_region_dir(&file_meta.region_id) + .prune_sst_dir(&file_id.region_id(), &file_id.file_id()) .await { - error!(e; "Failed to prune intermediate region directory, region_id: {}", file_meta.region_id); + error!(e; "Failed to prune intermediate sst directory, region_id: {}, file_id: {}", file_id.region_id(), file_id.file_id()); } })) { error!(e; "Failed to schedule the file purge request"); diff --git a/src/mito2/src/worker/handle_drop.rs b/src/mito2/src/worker/handle_drop.rs index 753418a1ce..a060b0fb48 100644 --- a/src/mito2/src/worker/handle_drop.rs +++ b/src/mito2/src/worker/handle_drop.rs @@ -99,6 +99,7 @@ where let object_store = region.access_layer.object_store().clone(); let dropping_regions = self.dropping_regions.clone(); let listener = self.listener.clone(); + let intm_manager = self.intermediate_manager.clone(); common_runtime::spawn_global(async move { let gc_duration = listener .on_later_drop_begin(region_id) @@ -111,6 +112,9 @@ where gc_duration, ) .await; + if let Err(err) = intm_manager.prune_region_dir(®ion_id).await { + warn!(err; "Failed to prune intermediate region directory, region_id: {}", region_id); + } listener.on_later_drop_end(region_id, removed); }); diff --git a/src/puffin/src/puffin_manager/stager/bounded_stager.rs b/src/puffin/src/puffin_manager/stager/bounded_stager.rs index 8ac5c81dcc..c64e303349 100644 --- a/src/puffin/src/puffin_manager/stager/bounded_stager.rs +++ b/src/puffin/src/puffin_manager/stager/bounded_stager.rs @@ -370,7 +370,7 @@ impl BoundedStager { /// is configured to purge the dangling files and directories. async fn recover(&self) -> Result<()> { let timer = std::time::Instant::now(); - common_telemetry::info!("Recovering the staging area, base_dir: {:?}", self.base_dir); + info!("Recovering the staging area, base_dir: {:?}", self.base_dir); let mut read_dir = fs::read_dir(&self.base_dir).await.context(ReadSnafu)?;