@@ -393,6 +393,8 @@ pub trait ConfigObj: DIService {
393393
394394 fn wal_split_threshold ( & self ) -> u64 ;
395395
396+ fn wal_split_size_threshold_bytes ( & self ) -> u64 ;
397+
396398 fn select_worker_pool_size ( & self ) -> usize ;
397399
398400 fn select_worker_idle_timeout ( & self ) -> u64 ;
@@ -587,6 +589,7 @@ pub struct ConfigObjImpl {
587589 pub max_partition_split_threshold : u64 ,
588590 pub compaction_chunks_total_size_threshold : u64 ,
589591 pub compaction_chunks_count_threshold : u64 ,
592+ pub compaction_chunks_threshold_multiplier : f64 ,
590593 pub compaction_chunks_in_memory_size_threshold : u64 ,
591594 pub compaction_chunks_max_lifetime_threshold : u64 ,
592595 pub compaction_in_memory_chunks_max_lifetime_threshold : u64 ,
@@ -597,6 +600,7 @@ pub struct ConfigObjImpl {
597600 pub compaction_in_memory_chunks_ratio_check_threshold : u64 ,
598601 pub compaction_in_memory_chunks_schedule_period_secs : u64 ,
599602 pub wal_split_threshold : u64 ,
603+ pub wal_split_size_threshold_bytes : u64 ,
600604 pub data_dir : PathBuf ,
601605 pub dump_dir : Option < PathBuf > ,
602606 pub store_provider : FileStoreProvider ,
@@ -709,11 +713,15 @@ impl ConfigObj for ConfigObjImpl {
709713 }
710714
711715 fn compaction_chunks_total_size_threshold ( & self ) -> u64 {
712- self . compaction_chunks_total_size_threshold
716+ ( self . compaction_chunks_total_size_threshold as f64
717+ * self . compaction_chunks_threshold_multiplier )
718+ . floor ( ) as u64
713719 }
714720
715721 fn compaction_chunks_count_threshold ( & self ) -> u64 {
716- self . compaction_chunks_count_threshold
722+ ( self . compaction_chunks_count_threshold as f64
723+ * self . compaction_chunks_threshold_multiplier )
724+ . floor ( ) as u64
717725 }
718726
719727 fn compaction_chunks_in_memory_size_threshold ( & self ) -> u64 {
@@ -756,6 +764,10 @@ impl ConfigObj for ConfigObjImpl {
756764 self . wal_split_threshold
757765 }
758766
767+ fn wal_split_size_threshold_bytes ( & self ) -> u64 {
768+ self . wal_split_size_threshold_bytes
769+ }
770+
759771 fn select_worker_pool_size ( & self ) -> usize {
760772 self . select_worker_pool_size
761773 }
@@ -1330,6 +1342,10 @@ impl Config {
13301342 1048576 * 8 ,
13311343 ) ,
13321344 compaction_chunks_count_threshold : env_parse ( "CUBESTORE_CHUNKS_COUNT_THRESHOLD" , 4 ) ,
1345+ compaction_chunks_threshold_multiplier : env_parse (
1346+ "CUBESTORE_COMPACTION_CHUNKS_THRESHOLD_MULTIPLIER" ,
1347+ 1.0_f64 ,
1348+ ) ,
13331349 compaction_chunks_in_memory_size_threshold : env_parse_size (
13341350 "CUBESTORE_COMPACTION_CHUNKS_IN_MEMORY_SIZE_THRESHOLD" ,
13351351 1 * 1024 * 1024 * 1024 ,
@@ -1533,6 +1549,12 @@ impl Config {
15331549 download_concurrency : env_parse ( "CUBESTORE_MAX_ACTIVE_DOWNLOADS" , 8 ) ,
15341550 max_ingestion_data_frames : env_parse ( "CUBESTORE_MAX_DATA_FRAMES" , 4 ) ,
15351551 wal_split_threshold : env_parse ( "CUBESTORE_WAL_SPLIT_THRESHOLD" , 1048576 / 2 ) ,
1552+ wal_split_size_threshold_bytes : env_parse_size (
1553+ "CUBESTORE_WAL_SPLIT_SIZE_THRESHOLD" ,
1554+ 100 * 1024 * 1024 ,
1555+ None ,
1556+ None ,
1557+ ) as u64 ,
15361558 job_runners_count : env_parse ( "CUBESTORE_JOB_RUNNERS" , 4 ) ,
15371559 long_term_job_runners_count : env_parse ( "CUBESTORE_LONG_TERM_JOB_RUNNERS" , 32 ) ,
15381560 csv_import_job_runners_count : env_parse ( "CUBESTORE_CSV_IMPORT_JOB_RUNNERS" , 0 ) ,
@@ -1720,6 +1742,7 @@ impl Config {
17201742 partition_size_split_threshold_bytes : 2 * 1024 ,
17211743 max_partition_split_threshold : 20 ,
17221744 compaction_chunks_count_threshold : 1 ,
1745+ compaction_chunks_threshold_multiplier : 1.0 ,
17231746 compaction_chunks_in_memory_size_threshold : 3 * 1024 * 1024 * 1024 ,
17241747 compaction_chunks_total_size_threshold : 10 ,
17251748 compaction_chunks_max_lifetime_threshold : 600 ,
@@ -1778,6 +1801,7 @@ impl Config {
17781801 download_concurrency : 8 ,
17791802 max_ingestion_data_frames : 4 ,
17801803 wal_split_threshold : 262144 ,
1804+ wal_split_size_threshold_bytes : 100 * 1024 * 1024 ,
17811805 connection_timeout : 60 ,
17821806 server_name : "localhost" . to_string ( ) ,
17831807 upload_to_remote : true ,
0 commit comments