This is an automated email from the ASF dual-hosted git repository.
yiguolei 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 685f87cad81 [fix](mtmv)The refresh method for MTMV is commit. If the
status is PAUSED, no more tasks should be generated (#46020)
685f87cad81 is described below
commit 685f87cad81b9fd987bd7127d06b432c0f80ad42
Author: zhangdong <[email protected]>
AuthorDate: Thu Jan 2 11:56:58 2025 +0800
[fix](mtmv)The refresh method for MTMV is commit. If the status is PAUSED,
no more tasks should be generated (#46020)
### What problem does this PR solve?
The refresh method for MTMV is commit. If the status is PAUSED, no more
tasks should be generated
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
The refresh method for MTMV is commit. If the status is PAUSED, no more
tasks should be generated
---
.../java/org/apache/doris/mtmv/MTMVJobManager.java | 7 ++++++
regression-test/data/mtmv_p0/test_commit_mtmv.out | 25 +++++++++++++++++++++-
.../suites/mtmv_p0/test_commit_mtmv.groovy | 24 ++++++++++++++++++++-
3 files changed, 54 insertions(+), 2 deletions(-)
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 a9dee132f64..7ea3d9dc05f 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
@@ -213,6 +213,13 @@ public class MTMVJobManager implements MTMVHookService {
public void onCommit(MTMV mtmv) throws DdlException, JobException {
MTMVJob job = getJobByMTMV(mtmv);
+ if (!job.getJobStatus().equals(JobStatus.RUNNING)) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("job status of async materialized view: [{}] is:
[{}], ignore this event.", mtmv.getName(),
+ job.getJobStatus());
+ }
+ return;
+ }
MTMVTaskContext mtmvTaskContext = new
MTMVTaskContext(MTMVTaskTriggerMode.COMMIT, Lists.newArrayList(),
false);
Env.getCurrentEnv().getJobManager().triggerJob(job.getJobId(),
mtmvTaskContext);
diff --git a/regression-test/data/mtmv_p0/test_commit_mtmv.out
b/regression-test/data/mtmv_p0/test_commit_mtmv.out
index fafb8f883a4..208638b4c10 100644
--- a/regression-test/data/mtmv_p0/test_commit_mtmv.out
+++ b/regression-test/data/mtmv_p0/test_commit_mtmv.out
@@ -15,16 +15,39 @@
-- !task2 --
{"triggerMode":"COMMIT","partitions":[],"isComplete":false}
--- !mv1_2 --
+-- !mv1_pause --
1 2017-01-15 1
+2 2017-02-15 2
+3 2017-03-15 3
+
+-- !mv1_resume --
+1 2017-01-15 1
+2 2017-02-15 2
+3 2017-03-15 3
+4 2017-01-15 4
+5 2017-01-15 5
+
+-- !mv2_resume --
+1 2017-01-15 1
+2 2017-02-15 2
+3 2017-03-15 3
+4 2017-01-15 4
+5 2017-01-15 5
+
+-- !mv1_2 --
1 2017-01-15 1
2 2017-02-15 2
3 2017-03-15 3
+4 2017-01-15 4
+5 2017-01-15 5
+6 2017-01-15 6
-- !mv2_2 --
1 2017-01-15 1
2 2017-02-15 2
3 2017-03-15 3
+4 2017-01-15 4
+5 2017-01-15 5
-- !mv1_init --
1 2017-01-15 1
diff --git a/regression-test/suites/mtmv_p0/test_commit_mtmv.groovy
b/regression-test/suites/mtmv_p0/test_commit_mtmv.groovy
index cd02dcd57d7..d8161a3fc92 100644
--- a/regression-test/suites/mtmv_p0/test_commit_mtmv.groovy
+++ b/regression-test/suites/mtmv_p0/test_commit_mtmv.groovy
@@ -64,13 +64,35 @@ suite("test_commit_mtmv") {
order_qt_mv2 "SELECT * FROM ${mvName2}"
order_qt_task2 "SELECT TaskContext from tasks('type'='mv') where
MvName='${mvName2}' order by CreateTime desc limit 1"
+ // PAUSE MTMV should not refresh
+ sql """
+ PAUSE MATERIALIZED VIEW JOB ON ${mvName1};
+ """
+ sql """
+ insert into ${tableName} values(4,"2017-01-15",4);
+ """
+ waitingMTMVTaskFinished(jobName1)
+ order_qt_mv1_pause "SELECT * FROM ${mvName1}"
+
+ // resume MTMV should refresh
+ sql """
+ RESUME MATERIALIZED VIEW JOB ON ${mvName1};
+ """
+ sql """
+ insert into ${tableName} values(5,"2017-01-15",5);
+ """
+ waitingMTMVTaskFinished(jobName1)
+ order_qt_mv1_resume "SELECT * FROM ${mvName1}"
+ waitingMTMVTaskFinished(jobName2)
+ order_qt_mv2_resume "SELECT * FROM ${mvName2}"
+
// on manual can not trigger by commit
sql """
alter MATERIALIZED VIEW ${mvName2} REFRESH ON MANUAL;
"""
sql """
- insert into ${tableName} values(1,"2017-01-15",1);;
+ insert into ${tableName} values(6,"2017-01-15",6);;
"""
waitingMTMVTaskFinished(jobName1)
order_qt_mv1_2 "SELECT * FROM ${mvName1}"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]