OOZIE-1843 Bulk update for coord last modified time for CoordMaterializeTriggerService
Project: http://git-wip-us.apache.org/repos/asf/oozie/repo Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/bdd4ef5c Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/bdd4ef5c Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/bdd4ef5c Branch: refs/remotes/trunk Commit: bdd4ef5c1855436b94717a871a88b6cabe389a22 Parents: 1507cc2 Author: Purshotam Shah <[email protected]> Authored: Thu Sep 4 12:09:08 2014 -0700 Committer: Purshotam Shah <[email protected]> Committed: Thu Sep 4 12:09:08 2014 -0700 ---------------------------------------------------------------------- .../service/CoordMaterializeTriggerService.java | 21 +++++++++++++------- release-log.txt | 1 + 2 files changed, 15 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/oozie/blob/bdd4ef5c/core/src/main/java/org/apache/oozie/service/CoordMaterializeTriggerService.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/service/CoordMaterializeTriggerService.java b/core/src/main/java/org/apache/oozie/service/CoordMaterializeTriggerService.java index 7a688b1..ee1085a 100644 --- a/core/src/main/java/org/apache/oozie/service/CoordMaterializeTriggerService.java +++ b/core/src/main/java/org/apache/oozie/service/CoordMaterializeTriggerService.java @@ -25,8 +25,11 @@ import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.oozie.CoordinatorJobBean; import org.apache.oozie.command.coord.CoordMaterializeTransitionXCommand; +import org.apache.oozie.executor.jpa.BatchQueryExecutor; import org.apache.oozie.executor.jpa.CoordJobQueryExecutor; import org.apache.oozie.executor.jpa.JPAExecutorException; +import org.apache.oozie.executor.jpa.BatchQueryExecutor.UpdateEntry; +import org.apache.oozie.executor.jpa.BundleJobQueryExecutor.BundleJobQuery; import org.apache.oozie.executor.jpa.CoordJobQueryExecutor.CoordJobQuery; import org.apache.oozie.lock.LockToken; import org.apache.oozie.util.XCallable; @@ -136,8 +139,10 @@ public class CoordMaterializeTriggerService implements Service { /** * Recover coordinator jobs that should be materialized + * @throws JPAExecutorException */ - private void runCoordJobMatLookup() { + private void runCoordJobMatLookup() throws JPAExecutorException { + List<UpdateEntry> updateList = new ArrayList<UpdateEntry>(); XLog.Info.get().clear(); XLog LOG = XLog.getLog(getClass()); try { @@ -146,15 +151,19 @@ public class CoordMaterializeTriggerService implements Service { // get list of all jobs that have actions that should be materialized. int materializationLimit = Services.get().getConf() .getInt(CONF_MATERIALIZATION_SYSTEM_LIMIT, CONF_MATERIALIZATION_SYSTEM_LIMIT_DEFAULT); - materializeCoordJobs(currDate, materializationLimit, LOG); + materializeCoordJobs(currDate, materializationLimit, LOG, updateList); } catch (Exception ex) { LOG.error("Exception while attempting to materialize coordinator jobs, {0}", ex.getMessage(), ex); } + finally { + BatchQueryExecutor.getInstance().executeBatchInsertUpdateDelete(null, updateList, null); + } } - private void materializeCoordJobs(Date currDate, int limit, XLog LOG) throws JPAExecutorException { + private void materializeCoordJobs(Date currDate, int limit, XLog LOG, List<UpdateEntry> updateList) + throws JPAExecutorException { try { List<CoordinatorJobBean> materializeJobs = CoordJobQueryExecutor.getInstance().getList( CoordJobQuery.GET_COORD_JOBS_OLDER_FOR_MATERILZATION, currDate, limit); @@ -165,10 +174,8 @@ public class CoordMaterializeTriggerService implements Service { .incr(INSTRUMENTATION_GROUP, INSTR_MAT_JOBS_COUNTER, 1); queueCallable(new CoordMaterializeTransitionXCommand(coordJob.getId(), materializationWindow)); coordJob.setLastModifiedTime(new Date()); - // TODO In place of calling single query, we should call bulk update. - CoordJobQueryExecutor.getInstance().executeUpdate( - CoordJobQueryExecutor.CoordJobQuery.UPDATE_COORD_JOB_LAST_MODIFIED_TIME, coordJob); - + updateList.add(new UpdateEntry<CoordJobQuery>(CoordJobQuery.UPDATE_COORD_JOB_LAST_MODIFIED_TIME, + coordJob)); } } catch (JPAExecutorException jex) { http://git-wip-us.apache.org/repos/asf/oozie/blob/bdd4ef5c/release-log.txt ---------------------------------------------------------------------- diff --git a/release-log.txt b/release-log.txt index aeae768..922e4b3 100644 --- a/release-log.txt +++ b/release-log.txt @@ -1,5 +1,6 @@ -- Oozie 4.2.0 release (trunk - unreleased) +OOZIE-1843 Bulk update for coord last modified time for CoordMaterializeTriggerService (puru) OOZIE-1941 Bundle coordinator name can't be parameterized (puru) OOZIE-1966 Fix Headers in java code (shwethags via rkanter) OOZIE-1428 The delay time for requeue should be configurable (sree2k via rkanter)
