pub type PbCompactionConfig = CompactionConfig;Aliased Type§
pub struct PbCompactionConfig {Show 35 fields
pub max_bytes_for_level_base: u64,
pub max_level: u64,
pub max_bytes_for_level_multiplier: u64,
pub max_compaction_bytes: u64,
pub sub_level_max_compaction_bytes: u64,
pub level0_tier_compact_file_number: u64,
pub compaction_mode: i32,
pub compression_algorithm: Vec<String>,
pub target_file_size_base: u64,
pub compaction_filter_mask: u32,
pub max_sub_compaction: u32,
pub max_space_reclaim_bytes: u64,
pub split_by_state_table: bool,
pub split_weight_by_vnode: u32,
pub level0_stop_write_threshold_sub_level_number: u64,
pub level0_max_compact_file_number: u64,
pub level0_sub_level_compact_level_count: u32,
pub level0_overlapping_sub_level_compact_level_count: u32,
pub tombstone_reclaim_ratio: u32,
pub enable_emergency_picker: bool,
pub max_l0_compact_level_count: Option<u32>,
pub sst_allowed_trivial_move_min_size: Option<u64>,
pub disable_auto_group_scheduling: Option<bool>,
pub max_overlapping_level_size: Option<u64>,
pub emergency_level0_sst_file_count: Option<u32>,
pub emergency_level0_sub_level_partition: Option<u32>,
pub level0_stop_write_threshold_max_sst_count: Option<u32>,
pub level0_stop_write_threshold_max_size: Option<u64>,
pub sst_allowed_trivial_move_max_count: Option<u32>,
pub enable_optimize_l0_interval_selection: Option<bool>,
pub vnode_aligned_level_size_threshold: Option<u64>,
pub max_kv_count_for_xor16: Option<u64>,
pub max_vnode_key_range_bytes: Option<u64>,
pub sstable_filter_kind: Vec<String>,
pub sstable_filter_layout: Vec<String>,
}Fields§
§max_bytes_for_level_base: u64§max_level: u64§max_bytes_for_level_multiplier: u64§max_compaction_bytes: u64§sub_level_max_compaction_bytes: u64§level0_tier_compact_file_number: u64§compaction_mode: i32§compression_algorithm: Vec<String>§target_file_size_base: u64§compaction_filter_mask: u32§max_sub_compaction: u32§max_space_reclaim_bytes: u64§split_by_state_table: bool§split_weight_by_vnode: u32Compaction needs to cut the state table every time 1/weight of vnodes in the table have been processed.
level0_stop_write_threshold_sub_level_number: u64soft limit for max number of sub level number
level0_max_compact_file_number: u64§level0_sub_level_compact_level_count: u32§level0_overlapping_sub_level_compact_level_count: u32for tier compaction pick overlapping level
tombstone_reclaim_ratio: u32§enable_emergency_picker: bool§max_l0_compact_level_count: Option<u32>The limitation of the level count of l0 compaction
sst_allowed_trivial_move_min_size: Option<u64>The limitation of base level trivial move sst size
disable_auto_group_scheduling: Option<bool>The limitation of auto group scheduling
max_overlapping_level_size: Option<u64>The limitation of the max size of the overlapping-level for the compaction
hummock will reorg the commit-sstables to the multi overlapping-level if the size of the commit-sstables is larger than max_overlapping_level_size
emergency_level0_sst_file_count: Option<u32>The emergency compaction limitations for the level0 sstables file count
emergency_level0_sub_level_partition: Option<u32>The emergency compaction limitations for the level0 sub level partition
level0_stop_write_threshold_max_sst_count: Option<u32>The limitation of the max sst count of the level0 to trigger the write stop
level0_stop_write_threshold_max_size: Option<u64>The limitation of the max sst size of the level0 to trigger the write stop
sst_allowed_trivial_move_max_count: Option<u32>The limitation of the max sst count of the trivial move task
enable_optimize_l0_interval_selection: Option<bool>Enable the optimization of the interval selection for the level0 compaction
vnode_aligned_level_size_threshold: Option<u64>Deprecated. Kept for backward compatibility and ignored by meta.
max_kv_count_for_xor16: Option<u64>KV-count threshold for using blocked xor filter when sstable_filter_layout\[level\] is AUTO.
When the estimated key count of one output SST exceeds this threshold, compaction will build blocked xor filters. Otherwise it will build a single non-blocked xor filter.
This is an output-SST-level heuristic. Older versions compared the threshold with the total key count of the whole compaction task, which could classify many small output SSTs as blocked.
Typical value: 256 * 1024 (256K keys).
Keep the historical protobuf field name for wire and JSON compatibility.
max_vnode_key_range_bytes: Option<u64>Max bytes for vnode key-range hints recorded into each SST.
sstable_filter_kind: Vec<String>The xor filter family to use for each output level (for compaction tasks).
Index by LSM level.
sstable_filter_kind\[0\] is reserved for L0 and currently ignored by shared-buffer flush, which
always uses xor16. sstable_filter_kind\[1\] applies to L1 output, sstable_filter_kind\[6\]
applies to L6 output, etc.
sstable_filter_layout: Vec<String>The xor filter layout to use for each output level (for compaction tasks).
Supported values:
- “auto”: decide by heuristics (currently by kv-count threshold)
- “plain” or “normal”: always use a single non-blocked filter, ignoring kv-count threshold
- “blocked”: always use block-based filters, ignoring kv-count threshold
Note: sstable_filter_layout\[0\] is reserved for L0 and currently ignored by shared-buffer
flush, which always uses “auto”.