From d9d3ed77443a168db8de3bde720434af26e6b8a8 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 19:04:02 +0800 Subject: [PATCH] [Enhancement] Make default bucket num at least 16 when table is unpartitioned (backport #47005) (#47105) Signed-off-by: meegoo Co-authored-by: meegoo --- .../src/main/java/com/starrocks/catalog/CatalogUtils.java | 5 +++++ .../src/main/java/com/starrocks/common/FeConstants.java | 2 ++ .../java/com/starrocks/analysis/CTASAutoTabletTest.java | 7 ++++--- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/fe/fe-core/src/main/java/com/starrocks/catalog/CatalogUtils.java b/fe/fe-core/src/main/java/com/starrocks/catalog/CatalogUtils.java index bf2f25d8cd39b..b203c7c7a3af3 100644 --- a/fe/fe-core/src/main/java/com/starrocks/catalog/CatalogUtils.java +++ b/fe/fe-core/src/main/java/com/starrocks/catalog/CatalogUtils.java @@ -356,6 +356,11 @@ public static int calAvgBucketNumOfRecentPartitions(OlapTable olapTable, int rec if (olapTable.getPartitions().size() < recentPartitionNum || !enableAutoTabletDistribution) { bucketNum = CatalogUtils.calBucketNumAccordingToBackends(); + // If table is not partitioned, the bucketNum should be at least DEFAULT_UNPARTITIONED_TABLE_BUCKET_NUM + if (!olapTable.getPartitionInfo().isPartitioned()) { + bucketNum = bucketNum > FeConstants.DEFAULT_UNPARTITIONED_TABLE_BUCKET_NUM ? + bucketNum : FeConstants.DEFAULT_UNPARTITIONED_TABLE_BUCKET_NUM; + } return bucketNum; } diff --git a/fe/fe-core/src/main/java/com/starrocks/common/FeConstants.java b/fe/fe-core/src/main/java/com/starrocks/common/FeConstants.java index d16cf96bd3e85..b9688a505cbf0 100644 --- a/fe/fe-core/src/main/java/com/starrocks/common/FeConstants.java +++ b/fe/fe-core/src/main/java/com/starrocks/common/FeConstants.java @@ -87,6 +87,8 @@ public class FeConstants { // Max counter num of TOP K function public static final int MAX_COUNTER_NUM_OF_TOP_K = 100000; + public static final int DEFAULT_UNPARTITIONED_TABLE_BUCKET_NUM = 16; + public static final String DOCUMENT_SHOW_ALTER = "https://docs.starrocks.io/docs/sql-reference/sql-statements/data-manipulation/SHOW_ALTER"; public static final String DOCUMENT_SHOW_ALTER_MATERIALIZED_VIEW = diff --git a/fe/fe-core/src/test/java/com/starrocks/analysis/CTASAutoTabletTest.java b/fe/fe-core/src/test/java/com/starrocks/analysis/CTASAutoTabletTest.java index 3bd6f559d745e..91a5568af78ea 100644 --- a/fe/fe-core/src/test/java/com/starrocks/analysis/CTASAutoTabletTest.java +++ b/fe/fe-core/src/test/java/com/starrocks/analysis/CTASAutoTabletTest.java @@ -19,6 +19,7 @@ import com.starrocks.catalog.OlapTable; import com.starrocks.catalog.Partition; import com.starrocks.common.Config; +import com.starrocks.common.FeConstants; import com.starrocks.pseudocluster.PseudoCluster; import com.starrocks.server.GlobalStateMgr; import org.jetbrains.annotations.TestOnly; @@ -89,8 +90,8 @@ public void testCTASAutoTablet() throws Exception { } finally { db.readUnlock(); } - Assert.assertEquals(bucketNum1, 6); - Assert.assertEquals(bucketNum2, 6); - Assert.assertEquals(bucketNum3, 6); + Assert.assertEquals(bucketNum1, FeConstants.DEFAULT_UNPARTITIONED_TABLE_BUCKET_NUM); + Assert.assertEquals(bucketNum2, FeConstants.DEFAULT_UNPARTITIONED_TABLE_BUCKET_NUM); + Assert.assertEquals(bucketNum3, FeConstants.DEFAULT_UNPARTITIONED_TABLE_BUCKET_NUM); } }