From 8e873b38b0950b4c9864e2f4093abfe1c6bc14ca Mon Sep 17 00:00:00 2001 From: zhangdong <493738387@qq.com> Date: Thu, 19 Sep 2024 18:12:05 +0800 Subject: [PATCH] 1 --- .../java/org/apache/doris/alter/Alter.java | 8 -------- .../java/org/apache/doris/catalog/MTMV.java | 2 ++ .../org/apache/doris/mtmv/MTMVJobManager.java | 20 +++++++++---------- 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java b/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java index 672932f1877551..62c46cba5c02ca 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java +++ b/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java @@ -1004,8 +1004,6 @@ public void processAlterMTMV(AlterMTMV alterMTMV, boolean isReplay) { try { Database db = Env.getCurrentInternalCatalog().getDbOrDdlException(tbl.getDb()); mtmv = (MTMV) db.getTableOrMetaException(tbl.getTbl(), TableType.MATERIALIZED_VIEW); - - mtmv.writeMvLock(); switch (alterMTMV.getOpType()) { case ALTER_REFRESH_INFO: mtmv.alterRefreshInfo(alterMTMV.getRefreshInfo()); @@ -1018,8 +1016,6 @@ public void processAlterMTMV(AlterMTMV alterMTMV, boolean isReplay) { break; case ADD_TASK: mtmv.addTaskResult(alterMTMV.getTask(), alterMTMV.getRelation(), alterMTMV.getPartitionSnapshots()); - Env.getCurrentEnv().getMtmvService() - .refreshComplete(mtmv, alterMTMV.getRelation(), alterMTMV.getTask()); break; default: throw new RuntimeException("Unknown type value: " + alterMTMV.getOpType()); @@ -1032,10 +1028,6 @@ public void processAlterMTMV(AlterMTMV alterMTMV, boolean isReplay) { } catch (UserException e) { // if MTMV has been dropped, ignore this exception LOG.warn(e); - } finally { - if (mtmv != null) { - mtmv.writeMvUnlock(); - } } } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/MTMV.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/MTMV.java index f93ecc9475c643..7a14280af96f5d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/MTMV.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/MTMV.java @@ -204,6 +204,8 @@ public void addTaskResult(MTMVTask task, MTMVRelation relation, } this.jobInfo.addHistoryTask(task); this.refreshSnapshot.updateSnapshots(partitionSnapshots, getPartitionNames()); + Env.getCurrentEnv().getMtmvService() + .refreshComplete(this, relation, task); } finally { writeMvUnlock(); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobManager.java b/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobManager.java index 1ace738f1d0d9f..8ffcea423d7fab 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobManager.java +++ b/fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVJobManager.java @@ -48,6 +48,8 @@ import com.google.common.collect.Lists; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.util.List; @@ -55,6 +57,8 @@ * when do some operation, do something about job */ public class MTMVJobManager implements MTMVHookService { + private static final Logger LOG = LogManager.getLogger(MTMVJobManager.class); + public static final String MTMV_JOB_PREFIX = "inner_mtmv_"; /** @@ -124,16 +128,12 @@ private void setScheduleJobConfig(JobExecutionConfiguration jobExecutionConfigur */ @Override public void dropMTMV(MTMV mtmv) throws DdlException { - List jobs = Env.getCurrentEnv().getJobManager() - .queryJobs(JobType.MV, mtmv.getJobInfo().getJobName()); - if (!CollectionUtils.isEmpty(jobs)) { - try { - Env.getCurrentEnv().getJobManager() - .unregisterJob(jobs.get(0).getJobId()); - } catch (JobException e) { - e.printStackTrace(); - throw new DdlException(e.getMessage()); - } + try { + Env.getCurrentEnv().getJobManager() + .unregisterJob(mtmv.getJobInfo().getJobName(), false); + } catch (JobException e) { + LOG.warn("drop mtmv job failed, mtmvName: {}", mtmv.getName(), e); + throw new DdlException(e.getMessage()); } }