You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by xx...@apache.org on 2021/07/19 09:52:57 UTC

[kylin] branch kylin-on-parquet-v2 updated: KYLIN-5031 Fix last_build_job_id of segment is null when the semgent status is RUNNING or ERROR

This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a commit to branch kylin-on-parquet-v2
in repository https://gitbox.apache.org/repos/asf/kylin.git


The following commit(s) were added to refs/heads/kylin-on-parquet-v2 by this push:
     new a9ad60a  KYLIN-5031 Fix last_build_job_id of segment is null when the semgent status is RUNNING or ERROR
a9ad60a is described below

commit a9ad60ae86b35f52302160bb50b47a2bc6c87bec
Author: lichuang <li...@youzan.com>
AuthorDate: Thu Jul 8 20:57:43 2021 +0800

    KYLIN-5031 Fix last_build_job_id of segment is null when the semgent status is RUNNING or ERROR
---
 .../src/main/java/org/apache/kylin/rest/service/JobService.java   | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java b/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java
index ee0a229..d5b926f 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java
@@ -42,6 +42,7 @@ import org.apache.kylin.common.zookeeper.KylinServerDiscovery;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.CubeSegment;
+import org.apache.kylin.cube.CubeUpdate;
 import org.apache.kylin.cube.model.CubeBuildTypeEnum;
 import org.apache.kylin.engine.EngineFactory;
 import org.apache.kylin.engine.mr.CubingJob;
@@ -257,9 +258,9 @@ public class JobService extends BasicService implements InitializingBean {
                     src = new SourcePartition(tsRange, segRange, sourcePartitionOffsetStart, sourcePartitionOffsetEnd);
 //                    src = source.enrichSourcePartitionBeforeBuild(cube, src);
                 }
-
                 newSeg = getCubeManager().appendSegment(cube, src);
                 job = EngineFactory.createBatchCubingJob(newSeg, submitter, priorityOffset);
+
             } else if (buildType == CubeBuildTypeEnum.MERGE) {
                 newSeg = getCubeManager().mergeSegments(cube, tsRange, segRange, force);
                 job = EngineFactory.createBatchMergeJob(newSeg, submitter);
@@ -269,6 +270,11 @@ public class JobService extends BasicService implements InitializingBean {
             } else {
                 throw new BadRequestException(String.format(Locale.ROOT, msg.getINVALID_BUILD_TYPE(), buildType));
             }
+            newSeg.setLastBuildJobID(job.getId());
+            CubeInstance cubeCopy = cube.latestCopyForWrite();
+            CubeUpdate update = new CubeUpdate(cubeCopy);
+            update.setToUpdateSegs(newSeg);
+            getCubeManager().updateCube(update);
 
             getExecutableManager().addJob(job);