You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ni...@apache.org on 2020/01/03 07:32:26 UTC

[kylin] branch master updated: delete /execute_output metadata when deleting a job

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 7d87032  delete /execute_output metadata when deleting a job
7d87032 is described below

commit 7d87032c42c1cde38621c705e84467785d3bb349
Author: Changji Guo <35...@users.noreply.github.com>
AuthorDate: Fri Jan 3 14:03:25 2020 +0800

    delete /execute_output metadata when deleting a job
---
 .../java/org/apache/kylin/job/dao/ExecutableDao.java    | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/core-job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java b/core-job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
index 6a63ff4..3774908 100644
--- a/core-job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
+++ b/core-job/src/main/java/org/apache/kylin/job/dao/ExecutableDao.java
@@ -378,14 +378,31 @@ public class ExecutableDao {
 
     public void deleteJob(String uuid) throws PersistentException {
         try {
+            ExecutablePO executablePO = getJob(uuid);
             store.deleteResource(pathOfJob(uuid));
             executableDigestMap.remove(uuid);
+            removeJobOutput(executablePO);
         } catch (IOException e) {
             logger.error("error delete job:" + uuid, e);
             throw new PersistentException(e);
         }
     }
 
+    private void removeJobOutput(ExecutablePO executablePO) {
+        List<String> toDeletePaths = Lists.newArrayList();
+        try {
+            toDeletePaths.add(pathOfJobOutput(executablePO.getUuid()));
+            for (ExecutablePO task : executablePO.getTasks()) {
+                toDeletePaths.add(pathOfJobOutput(task.getUuid()));
+            }
+            for (String path : toDeletePaths) {
+                store.deleteResource(path);
+            }
+        } catch (Exception e) {
+            logger.warn("error delete job output:" + executablePO.getUuid(), e);
+        }
+    }
+
     public ExecutableOutputPO getJobOutput(String uuid) throws PersistentException {
         ExecutableOutputPO result = null;
         try {