From 00d67d6fa1398eef0708a038f0e17c6ad4884d33 Mon Sep 17 00:00:00 2001 From: "Lei, HUANG" <6406592+v0y4g3r@users.noreply.github.com> Date: Wed, 15 Apr 2026 10:50:47 +0800 Subject: [PATCH] refactor(mito): remove `Compactor::compact` method (#7968) refactor/remove-compactor-compact: ### Remove Unused Compaction Functionality - **Removed `compact` Method**: Eliminated the `compact` method from the `Compactor` trait and its default implementation, which was primarily used for local compaction in testing. This change affects `compactor.rs`. - **Code Cleanup**: Removed associated code and comments related to the `compact` method, streamlining the `Compactor` trait interface. Signed-off-by: Lei, HUANG --- src/mito2/src/compaction/compactor.rs | 56 +-------------------------- 1 file changed, 2 insertions(+), 54 deletions(-) diff --git a/src/mito2/src/compaction/compactor.rs b/src/mito2/src/compaction/compactor.rs index fd3d01b276..827fb9ebdd 100644 --- a/src/mito2/src/compaction/compactor.rs +++ b/src/mito2/src/compaction/compactor.rs @@ -16,7 +16,6 @@ use std::num::NonZero; use std::sync::Arc; use std::time::Duration; -use api::v1::region::compact_request; use common_meta::key::SchemaMetadataManagerRef; use common_telemetry::{info, warn}; use common_time::TimeToLive; @@ -34,9 +33,10 @@ use crate::access_layer::{ AccessLayer, AccessLayerRef, Metrics, OperationType, SstWriteRequest, WriteType, }; use crate::cache::{CacheManager, CacheManagerRef}; -use crate::compaction::picker::{PickerOutput, new_picker}; +use crate::compaction::picker::PickerOutput; use crate::compaction::{CompactionOutput, CompactionSstReaderBuilder, find_dynamic_options}; use crate::config::MitoConfig; +use crate::error; use crate::error::{ EmptyRegionDirSnafu, InvalidPartitionExprSnafu, ObjectStoreNotFoundSnafu, Result, }; @@ -55,7 +55,6 @@ use crate::sst::index::puffin_manager::PuffinManagerFactory; use crate::sst::location::region_dir_from_table_dir; use crate::sst::parquet::WriteOptions; use crate::sst::version::{SstVersion, SstVersionRef}; -use crate::{error, metrics}; /// Region version for compaction that does not hold memtables. #[derive(Clone)] @@ -290,13 +289,6 @@ pub trait Compactor: Send + Sync + 'static { compaction_region: &CompactionRegion, merge_output: MergeOutput, ) -> Result; - - /// Execute compaction for a region. - async fn compact( - &self, - compaction_region: &CompactionRegion, - compact_request_options: compact_request::Options, - ) -> Result<()>; } /// Trait for merging a single compaction output into SST files. @@ -588,50 +580,6 @@ where Ok(edit) } - - // The default implementation of compact combines the merge_ssts and update_manifest functions. - // Note: It's local compaction and only used for testing purpose. - async fn compact( - &self, - compaction_region: &CompactionRegion, - compact_request_options: compact_request::Options, - ) -> Result<()> { - let picker_output = { - let picker_output = new_picker( - &compact_request_options, - &compaction_region.region_options.compaction, - compaction_region.region_options.append_mode, - None, - ) - .pick(compaction_region); - - if let Some(picker_output) = picker_output { - picker_output - } else { - info!( - "No files to compact for region_id: {}", - compaction_region.region_id - ); - return Ok(()); - } - }; - - let merge_output = self.merge_ssts(compaction_region, picker_output).await?; - if merge_output.is_empty() { - info!( - "No files to compact for region_id: {}", - compaction_region.region_id - ); - return Ok(()); - } - - metrics::COMPACTION_INPUT_BYTES.inc_by(merge_output.input_file_size() as f64); - metrics::COMPACTION_OUTPUT_BYTES.inc_by(merge_output.output_file_size() as f64); - self.update_manifest(compaction_region, merge_output) - .await?; - - Ok(()) - } } #[cfg(test)]