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)

Reply via email to