You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by ca...@apache.org on 2023/06/03 00:25:31 UTC
[doris] branch master updated: [fix](dynamic_partition) fix dead lock when modify dynamic partition property for olap table (#20390)
This is an automated email from the ASF dual-hosted git repository.
caiconghui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 6958a8f92f [fix](dynamic_partition) fix dead lock when modify dynamic partition property for olap table (#20390)
6958a8f92f is described below
commit 6958a8f92fdc10b73e458b5caf415c8e8d0d8e60
Author: caiconghui <55...@users.noreply.github.com>
AuthorDate: Sat Jun 3 08:25:20 2023 +0800
[fix](dynamic_partition) fix dead lock when modify dynamic partition property for olap table (#20390)
Co-authored-by: caiconghui1 <ca...@jd.com>
---
.../java/org/apache/doris/common/util/DynamicPartitionUtil.java | 6 ------
.../src/main/java/org/apache/doris/datasource/InternalCatalog.java | 2 ++
.../java/org/apache/doris/catalog/DynamicPartitionTableTest.java | 2 ++
3 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java b/fe/fe-core/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java
index 69046917e1..552ff2decb 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java
@@ -475,12 +475,6 @@ public class DynamicPartitionUtil {
if (olapTable.getTableProperty() != null
&& olapTable.getTableProperty().getDynamicPartitionProperty() != null) {
if (olapTable.getTableProperty().getDynamicPartitionProperty().getEnable()) {
- if (!isReplay) {
- // execute create partition first time only in master of FE, So no need execute
- // when it's replay
- Env.getCurrentEnv().getDynamicPartitionScheduler()
- .executeDynamicPartitionFirstTime(dbId, olapTable.getId());
- }
Env.getCurrentEnv().getDynamicPartitionScheduler()
.registerDynamicPartitionTable(dbId, olapTable.getId());
} else {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
index 9199c5fedf..961b3399be 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
@@ -2323,6 +2323,8 @@ public class InternalCatalog implements CatalogIf<Database> {
LOG.info("successfully create table[{};{}]", tableName, tableId);
// register or remove table from DynamicPartition after table created
DynamicPartitionUtil.registerOrRemoveDynamicPartitionTable(db.getId(), olapTable, false);
+ Env.getCurrentEnv().getDynamicPartitionScheduler()
+ .executeDynamicPartitionFirstTime(db.getId(), olapTable.getId());
Env.getCurrentEnv().getDynamicPartitionScheduler()
.createOrUpdateRuntimeInfo(tableId, DynamicPartitionScheduler.LAST_UPDATE_TIME,
TimeUtils.getCurrentFormatTime());
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/DynamicPartitionTableTest.java b/fe/fe-core/src/test/java/org/apache/doris/catalog/DynamicPartitionTableTest.java
index 825f50a233..3609e56592 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/DynamicPartitionTableTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/DynamicPartitionTableTest.java
@@ -703,11 +703,13 @@ public class DynamicPartitionTableTest {
// history_partition_num too large, but because start is -10, so modify ok
String alter3 = "alter table test.dynamic_partition3 set ('dynamic_partition.history_partition_num' = '1000')";
ExceptionChecker.expectThrowsNoException(() -> alterTable(alter3));
+ Env.getCurrentEnv().getDynamicPartitionScheduler().executeDynamicPartitionFirstTime(db.getId(), tbl.getId());
Assert.assertEquals(14, tbl.getPartitionNames().size());
// set start and history_partition_num properly.
String alter4 = "alter table test.dynamic_partition3 set ('dynamic_partition.history_partition_num' = '100', 'dynamic_partition.start' = '-20')";
ExceptionChecker.expectThrowsNoException(() -> alterTable(alter4));
+ Env.getCurrentEnv().getDynamicPartitionScheduler().executeDynamicPartitionFirstTime(db.getId(), tbl.getId());
Assert.assertEquals(24, tbl.getPartitionNames().size());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org