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

zhangzc pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit 7370489ed53c044841955d9481a6fe00035aa697
Author: Zhichao Zhang <zhan...@apache.org>
AuthorDate: Wed Aug 11 12:04:00 2021 +0800

    KYLIN-4903 cache parent datasource to accelerate next layer's cuboid 
building
    
    Fix bug
---
 .../org/apache/kylin/engine/spark/job/BuildLayoutWithUpdate.java   | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git 
a/kylin-spark-project/kylin-spark-engine/src/main/scala/org/apache/kylin/engine/spark/job/BuildLayoutWithUpdate.java
 
b/kylin-spark-project/kylin-spark-engine/src/main/scala/org/apache/kylin/engine/spark/job/BuildLayoutWithUpdate.java
index 91024b9..5309489 100644
--- 
a/kylin-spark-project/kylin-spark-engine/src/main/scala/org/apache/kylin/engine/spark/job/BuildLayoutWithUpdate.java
+++ 
b/kylin-spark-project/kylin-spark-engine/src/main/scala/org/apache/kylin/engine/spark/job/BuildLayoutWithUpdate.java
@@ -75,8 +75,9 @@ public class BuildLayoutWithUpdate {
 
     public void submit(JobEntity job, KylinConfig config) {
 
-        //if job's BuildSourceInfo is empty, it means this is a merge job, no 
parent dataset to persist
-        if (persistParentDataset && job.getBuildSourceInfo() != null && 
job.getBuildSourceInfo().getToBuildCuboids().size() > 1) {
+        // if job's BuildSourceInfo is null, it means this is a merge job or 
optimize job,
+        // no parent dataset to be persisted
+        if (persistParentDataset && job.getBuildSourceInfo() != null) {
             //when reuse parent dataset is enabled, ensure parent dataset is 
registered
             
if(!layout2DataSet.containsKey(job.getBuildSourceInfo().getLayoutId())){
                 logger.error("persist parent dataset is enabled, but parent 
dataset not registered");
@@ -102,7 +103,7 @@ public class BuildLayoutWithUpdate {
                     throwable = t;
                 } finally {
                     //unpersist parent dataset
-                    if (persistParentDataset && job.getBuildSourceInfo() != 
null && job.getBuildSourceInfo().getToBuildCuboids().size() > 1) {
+                    if (persistParentDataset && job.getBuildSourceInfo() != 
null) {
                         long remain = 
toBuildCuboidSize.get(job.getBuildSourceInfo().getLayoutId()).decrementAndGet();
                         if (remain == 0) {
                             
toBuildCuboidSize.remove(job.getBuildSourceInfo().getLayoutId());

Reply via email to