Author: chetanm
Date: Sun Jun 19 16:09:00 2016
New Revision: 1749182

URL: http://svn.apache.org/viewvc?rev=1749182&view=rev
Log:
OAK-2065 - JMX stats for operations being performed in DocumentNodeStore

- BackgroundReadStats - Capture count of external change size and totoal read 
time
- BackgroundWriteState - Capture count of  total write time

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/BackgroundReadStats.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/BackgroundWriteStats.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/BackgroundReadStats.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/BackgroundReadStats.java?rev=1749182&r1=1749181&r2=1749182&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/BackgroundReadStats.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/BackgroundReadStats.java
 Sun Jun 19 16:09:00 2016
@@ -28,8 +28,8 @@ class BackgroundReadStats {
     long populateDiffCache;
     long lock;
     long dispatchChanges;
-
-    //TODO external diff size
+    long totalReadTime;
+    long numExternalChanges;
 
     @Override
     public String toString() {
@@ -44,6 +44,8 @@ class BackgroundReadStats {
                 ", diff: " + populateDiffCache +
                 ", lock:" + lock +
                 ", dispatch:" + dispatchChanges +
+                ", numExternalChanges:" + numExternalChanges +
+                ", totalReadTime:" + totalReadTime +
                 '}';
     }
 }

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/BackgroundWriteStats.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/BackgroundWriteStats.java?rev=1749182&r1=1749181&r2=1749182&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/BackgroundWriteStats.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/BackgroundWriteStats.java
 Sun Jun 19 16:09:00 2016
@@ -26,6 +26,7 @@ class BackgroundWriteStats {
     long lock;
     long write;
     long num;
+    long totalWriteTime;
 
     @Override
     public String toString() {
@@ -33,6 +34,7 @@ class BackgroundWriteStats {
                 ", split:" + split+
                 ", lock:" + lock +
                 ", write:" + write +
-                ", num:" + num;
+                ", num:" + num +
+                ", totalWriteTime:" + totalWriteTime;
     }
 }

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java?rev=1749182&r1=1749181&r2=1749182&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
 Sun Jun 19 16:09:00 2016
@@ -85,7 +85,6 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector;
 import org.apache.jackrabbit.oak.plugins.blob.ReferencedBlob;
 import org.apache.jackrabbit.oak.plugins.document.Branch.BranchCommit;
-import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats;
 import 
org.apache.jackrabbit.oak.plugins.document.persistentCache.PersistentCache;
 import 
org.apache.jackrabbit.oak.plugins.document.persistentCache.broadcast.DynamicBroadcastConfig;
 import 
org.apache.jackrabbit.oak.plugins.document.util.ReadOnlyDocumentStoreWrapperFactory;
@@ -1733,8 +1732,9 @@ public final class DocumentNodeStore
             BackgroundWriteStats stats = backgroundWrite();
             stats.split = splitTime;
             stats.clean = cleanTime;
+            stats.totalWriteTime = clock.getTime() - start;
             String msg = "Background operations stats ({})";
-            if (clock.getTime() - start > TimeUnit.SECONDS.toMillis(10)) {
+            if (stats.totalWriteTime > TimeUnit.SECONDS.toMillis(10)) {
                 // log as info if it took more than 10 seconds
                 LOG.info(msg, stats);
             } else {
@@ -1767,13 +1767,13 @@ public final class DocumentNodeStore
             long start = clock.getTime();
             // pull in changes from other cluster nodes
             BackgroundReadStats readStats = backgroundRead();
-            long readTime = clock.getTime() - start;
+            readStats.totalReadTime = clock.getTime() - start;
             String msg = "Background read operations stats (read:{} {})";
             if (clock.getTime() - start > TimeUnit.SECONDS.toMillis(10)) {
                 // log as info if it took more than 10 seconds
-                LOG.info(msg, readTime, readStats);
+                LOG.info(msg, readStats.totalReadTime, readStats);
             } else {
-                LOG.debug(msg, readTime, readStats);
+                LOG.debug(msg, readStats.totalReadTime, readStats);
             }
         }
     }
@@ -1899,6 +1899,7 @@ public final class DocumentNodeStore
                 } else {
                     try {
                         externalSort.sort();
+                        stats.numExternalChanges = externalSort.getSize();
                         stats.cacheStats = 
store.invalidateCache(pathToId(externalSort));
                         // OAK-3002: only invalidate affected items (using 
journal)
                         long origSize = docChildrenCache.size();


Reply via email to