[fix](shuffle) fix tablets num calculation in shuffle condition (#36050) (#36339)

cherry-pick #36050
This commit is contained in:
Kaijie Chen
2024-06-15 23:06:00 +08:00
committed by GitHub
parent 7051431671
commit bfab7a2537

View File

@ -202,9 +202,12 @@ public class PhysicalOlapTableSink<CHILD_TYPE extends Plan> extends PhysicalTabl
DistributionInfo distributionInfo = targetTable.getDefaultDistributionInfo();
if (distributionInfo instanceof HashDistributionInfo) {
// Do not enable shuffle for duplicate key tables when its tablet num is less than threshold.
if (targetTable.getKeysType() == KeysType.DUP_KEYS
&& distributionInfo.getBucketNum() < Config.min_tablets_for_dup_table_shuffle) {
return PhysicalProperties.ANY;
if (targetTable.getKeysType() == KeysType.DUP_KEYS) {
final long partitionNums = targetTable.getPartitionInfo().getAllPartitions().size();
final long tabletNums = partitionNums * distributionInfo.getBucketNum();
if (tabletNums < Config.min_tablets_for_dup_table_shuffle) {
return PhysicalProperties.ANY;
}
}
return PhysicalProperties.TABLET_ID_SHUFFLE;
} else if (distributionInfo instanceof RandomDistributionInfo) {