File tree Expand file tree Collapse file tree 2 files changed +26
-6
lines changed
Expand file tree Collapse file tree 2 files changed +26
-6
lines changed Original file line number Diff line number Diff line change @@ -78,6 +78,29 @@ impl BlockThresholds {
7878 return self . max_rows_per_block ;
7979 }
8080
81- total_rows. div_ceil ( block_num_by_size)
81+ let mut rows_per_block = total_rows. div_ceil ( block_num_by_size) ;
82+ let max_bytes_per_block = match rows_per_block {
83+ v if v < self . max_rows_per_block / 10 => {
84+ // If block rows < 100_000, max_bytes_per_block set to 200M
85+ 2 * self . max_bytes_per_block
86+ }
87+ v if v < self . max_rows_per_block / 2 => {
88+ // If block rows < 500_000, max_bytes_per_block set to 150M
89+ 3 * self . max_bytes_per_block / 2
90+ }
91+ v if v < self . min_rows_per_block => {
92+ // If block rows < 800_000, max_bytes_per_block set to 125M
93+ 5 * self . max_bytes_per_block / 4
94+ }
95+ _ => self . max_bytes_per_block ,
96+ } ;
97+
98+ if max_bytes_per_block > self . max_bytes_per_block {
99+ rows_per_block = std:: cmp:: max (
100+ total_rows / ( std:: cmp:: max ( total_bytes / max_bytes_per_block, 1 ) ) ,
101+ 1 ,
102+ ) ;
103+ }
104+ rows_per_block
82105 }
83106}
Original file line number Diff line number Diff line change @@ -249,11 +249,8 @@ impl ReclusterTableInterpreter {
249249 let block_thresholds = tbl. get_block_thresholds ( ) ;
250250 let total_bytes = recluster_info. removed_statistics . uncompressed_byte_size as usize ;
251251 let total_rows = recluster_info. removed_statistics . row_count as usize ;
252- let block_size = settings. get_max_block_size ( ) ?;
253- let rows_per_block = block_thresholds
254- . calc_rows_per_block ( total_bytes, total_rows)
255- . max ( block_size as usize ) ;
256- let total_partitions = std:: cmp:: max ( total_rows / rows_per_block, 1000 ) ;
252+ let rows_per_block = block_thresholds. calc_rows_per_block ( total_bytes, total_rows) ;
253+ let total_partitions = total_rows / rows_per_block;
257254
258255 let ast_exprs = tbl. resolve_cluster_keys ( self . ctx . clone ( ) ) . unwrap ( ) ;
259256 let cluster_keys_len = ast_exprs. len ( ) ;
You can’t perform that action at this time.
0 commit comments