Repository: oozie Updated Branches: refs/heads/master 252300c62 -> 373a52ff2
OOZIE-1801 ZKLocksService instrumentation should say how many locks this server has (rkanter) Project: http://git-wip-us.apache.org/repos/asf/oozie/repo Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/503134a7 Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/503134a7 Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/503134a7 Branch: refs/heads/master Commit: 503134a750b718ef6f29bb6f11de274753cd4bab Parents: 252300c Author: Robert Kanter <[email protected]> Authored: Tue May 27 13:45:33 2014 -0700 Committer: Robert Kanter <[email protected]> Committed: Tue May 27 13:45:33 2014 -0700 ---------------------------------------------------------------------- .../org/apache/oozie/service/MemoryLocksService.java | 2 +- .../java/org/apache/oozie/service/ZKLocksService.java | 13 ++++++++++++- release-log.txt | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/oozie/blob/503134a7/core/src/main/java/org/apache/oozie/service/MemoryLocksService.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/service/MemoryLocksService.java b/core/src/main/java/org/apache/oozie/service/MemoryLocksService.java index 110fe8d..f827c87 100644 --- a/core/src/main/java/org/apache/oozie/service/MemoryLocksService.java +++ b/core/src/main/java/org/apache/oozie/service/MemoryLocksService.java @@ -26,7 +26,7 @@ import org.apache.oozie.lock.MemoryLocks; * Service that provides in-memory locks. Assumes no other Oozie servers are using the database. */ public class MemoryLocksService implements Service, Instrumentable { - private static final String INSTRUMENTATION_GROUP = "locks"; + protected static final String INSTRUMENTATION_GROUP = "locks"; private MemoryLocks locks; /** http://git-wip-us.apache.org/repos/asf/oozie/blob/503134a7/core/src/main/java/org/apache/oozie/service/ZKLocksService.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/service/ZKLocksService.java b/core/src/main/java/org/apache/oozie/service/ZKLocksService.java index 17a9209..d03a899 100644 --- a/core/src/main/java/org/apache/oozie/service/ZKLocksService.java +++ b/core/src/main/java/org/apache/oozie/service/ZKLocksService.java @@ -18,6 +18,7 @@ package org.apache.oozie.service; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; import org.apache.curator.framework.recipes.locks.InterProcessMutex; import org.apache.curator.framework.recipes.locks.InterProcessReadWriteLock; import org.apache.oozie.ErrorCode; @@ -37,6 +38,7 @@ public class ZKLocksService extends MemoryLocksService implements Service, Instr private ZKUtils zk; private static XLog LOG = XLog.getLog(ZKLocksService.class); private static final String LOCKS_NODE = "/locks/"; + private final AtomicLong lockCount = new AtomicLong(); /** * Initialize the zookeeper locks service @@ -52,6 +54,7 @@ public class ZKLocksService extends MemoryLocksService implements Service, Instr catch (Exception ex) { throw new ServiceException(ErrorCode.E1700, ex.getMessage(), ex); } + lockCount.set(0); } /** @@ -73,7 +76,13 @@ public class ZKLocksService extends MemoryLocksService implements Service, Instr */ @Override public void instrument(Instrumentation instr) { - // nothing to instrument + // Similar to MemoryLocksService's instrumentation, though this is only the number of locks this Oozie server currently has + instr.addVariable(INSTRUMENTATION_GROUP, "locks", new Instrumentation.Variable<Long>() { + @Override + public Long getValue() { + return lockCount.get(); + } + }); } /** @@ -131,6 +140,7 @@ public class ZKLocksService extends MemoryLocksService implements Service, Instr private ZKLockToken(InterProcessMutex lock) { this.lock = lock; + lockCount.incrementAndGet(); } /** @@ -140,6 +150,7 @@ public class ZKLocksService extends MemoryLocksService implements Service, Instr public void release() { try { lock.release(); + lockCount.decrementAndGet(); } catch (Exception ex) { LOG.warn("Could not release lock: " + ex.getMessage(), ex); http://git-wip-us.apache.org/repos/asf/oozie/blob/503134a7/release-log.txt ---------------------------------------------------------------------- diff --git a/release-log.txt b/release-log.txt index 8769744..04cc79a 100644 --- a/release-log.txt +++ b/release-log.txt @@ -1,5 +1,6 @@ -- Oozie 4.1.0 release (trunk - unreleased) +OOZIE-1801 ZKLocksService instrumentation should say how many locks this server has (rkanter) OOZIE-1819 Avoid early queueing of CoordActionInputCheckXCommand (shwethags via rohini) OOZIE-1783 Sharelib purging only occurs at Oozie startup (rkanter) OOZIE-1689 HA support for OOZIE-7(Ability to view the log information corresponding to particular coordinator action) (puru via mona)
