Skip to content

Commit 394becc

Browse files
committed
Deprecated row_avg_depth_threshold
1 parent a8221c7 commit 394becc

3 files changed

Lines changed: 8 additions & 27 deletions

File tree

src/query/service/src/interpreters/common/table_option_validation.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ pub static UNSET_TABLE_OPTIONS_WHITE_LIST: LazyLock<HashSet<&'static str>> = Laz
152152
r.insert(FUSE_OPT_KEY_ROW_PER_BLOCK);
153153
r.insert(FUSE_OPT_KEY_BLOCK_IN_MEM_SIZE_THRESHOLD);
154154
r.insert(FUSE_OPT_KEY_FILE_SIZE);
155+
// Deprecated: no longer affects recluster, but old tables can still unset it.
155156
r.insert(FUSE_OPT_KEY_ROW_AVG_DEPTH_THRESHOLD);
156157
r.insert(FUSE_OPT_KEY_RECLUSTER_DEPTH);
157158
r.insert(FUSE_OPT_KEY_FILE_SIZE);

src/query/storages/fuse/src/constants.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ pub const FUSE_OPT_KEY_BLOCK_IN_MEM_SIZE_THRESHOLD: &str = "block_size_threshold
1616
pub const FUSE_OPT_KEY_BLOCK_PER_SEGMENT: &str = "block_per_segment";
1717
pub const FUSE_OPT_KEY_ROW_PER_BLOCK: &str = "row_per_block";
1818
pub const FUSE_OPT_KEY_ROW_PER_PAGE: &str = "row_per_page";
19-
pub const FUSE_OPT_KEY_ROW_AVG_DEPTH_THRESHOLD: &str = "row_avg_depth_threshold";
2019
pub const FUSE_OPT_KEY_RECLUSTER_DEPTH: &str = "recluster_depth";
2120
pub const FUSE_OPT_KEY_FILE_SIZE: &str = "file_size";
2221
pub const FUSE_OPT_KEY_DATA_RETENTION_PERIOD_IN_HOURS: &str = "data_retention_period_in_hours";
@@ -31,6 +30,8 @@ pub const FUSE_OPT_KEY_ATTACH_COLUMN_IDS: &str = "attach_column_ids";
3130
pub const FUSE_OPT_KEY_ENABLE_PARQUET_DICTIONARY: &str = "enable_parquet_dictionary";
3231
pub const FUSE_OPT_KEY_DATA_PAGE_ROWS: &str = "data_page_rows";
3332
pub const FUSE_OPT_KEY_DATA_PAGE_BYTES: &str = "data_page_bytes";
33+
/// Deprecated: kept only so old tables can unset this legacy option.
34+
pub const FUSE_OPT_KEY_ROW_AVG_DEPTH_THRESHOLD: &str = "row_avg_depth_threshold";
3435

3536
pub const FUSE_TBL_BLOCK_PREFIX: &str = "_b";
3637
pub const FUSE_TBL_BLOCK_INDEX_PREFIX: &str = "_i";
@@ -52,7 +53,6 @@ pub const LEGACY_FUSE_TBL_REF_PREFIX: &str = "_ref";
5253
pub const DEFAULT_ROW_PER_PAGE: usize = 8192;
5354
pub const DEFAULT_ROW_PER_INDEX: usize = 100000;
5455

55-
pub const DEFAULT_AVG_DEPTH_THRESHOLD: f64 = 0.001;
5656
pub const MIN_RECLUSTER_DEPTH: u64 = 1;
5757
pub const MAX_RECLUSTER_DEPTH: u64 = 32;
5858
pub const DEFAULT_RECLUSTER_DEPTH: u64 = 16;

src/query/storages/fuse/src/operations/mutation/mutator/recluster_mutator.rs

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,8 @@ use log::info;
5353
use log::warn;
5454
use opendal::Operator;
5555

56-
use crate::DEFAULT_AVG_DEPTH_THRESHOLD;
5756
use crate::DEFAULT_RECLUSTER_DEPTH;
5857
use crate::FUSE_OPT_KEY_RECLUSTER_DEPTH;
59-
use crate::FUSE_OPT_KEY_ROW_AVG_DEPTH_THRESHOLD;
6058
use crate::FuseTable;
6159
use crate::MAX_RECLUSTER_DEPTH;
6260
use crate::MIN_RECLUSTER_DEPTH;
@@ -172,7 +170,11 @@ impl ReclusterMutator {
172170
let cluster_key_id = table.cluster_key_id().unwrap();
173171
let block_thresholds = table.get_block_thresholds();
174172

175-
let depth_threshold = Self::recluster_depth_threshold(table, snapshot.summary.block_count);
173+
let depth_threshold = if snapshot.summary.block_count <= SMALL_TABLE_RECLUSTER_BLOCK_COUNT {
174+
MIN_RECLUSTER_DEPTH as f64
175+
} else {
176+
table.get_option(FUSE_OPT_KEY_RECLUSTER_DEPTH, DEFAULT_RECLUSTER_DEPTH) as f64
177+
};
176178

177179
let settings = ctx.get_settings();
178180
let memory_threshold = Self::recluster_memory_threshold(ctx.as_ref())?;
@@ -477,28 +479,6 @@ impl ReclusterMutator {
477479
Ok((selected_blocks_idx.len() as u64, parts))
478480
}
479481

480-
fn recluster_depth_threshold(table: &FuseTable, block_count: u64) -> f64 {
481-
let options = table.table_info.options();
482-
if options.contains_key(FUSE_OPT_KEY_RECLUSTER_DEPTH) {
483-
return table.get_option(FUSE_OPT_KEY_RECLUSTER_DEPTH, DEFAULT_RECLUSTER_DEPTH) as f64;
484-
}
485-
486-
if options.contains_key(FUSE_OPT_KEY_ROW_AVG_DEPTH_THRESHOLD) {
487-
let avg_depth_threshold = table.get_option(
488-
FUSE_OPT_KEY_ROW_AVG_DEPTH_THRESHOLD,
489-
DEFAULT_AVG_DEPTH_THRESHOLD,
490-
);
491-
return (block_count as f64 * avg_depth_threshold)
492-
.clamp(MIN_RECLUSTER_DEPTH as f64, MAX_RECLUSTER_DEPTH as f64);
493-
}
494-
495-
if block_count <= SMALL_TABLE_RECLUSTER_BLOCK_COUNT {
496-
MIN_RECLUSTER_DEPTH as f64
497-
} else {
498-
DEFAULT_RECLUSTER_DEPTH as f64
499-
}
500-
}
501-
502482
fn recluster_memory_threshold(ctx: &dyn TableContext) -> Result<usize> {
503483
let settings = ctx.get_settings();
504484
let recluster_block_size = settings.get_recluster_block_size()? as usize;

0 commit comments

Comments
 (0)