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();