You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2015/03/26 17:09:20 UTC
svn commit: r1669362 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/
oak-core/src/main/java/org/apache/jackrabbit/oak/stats/ oak-jcr/src/...
Author: mduerig
Date: Thu Mar 26 16:09:20 2015
New Revision: 1669362
URL: http://svn.apache.org/r1669362
Log:
OAK-2596: more (jmx) instrumentation for observation queue
Initial implementation based on JCR-3859 and a Jackrabbit 2.9-SNAPSHOT
Removed:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/stats/TimeSeriesMax.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/stats/TimeSeriesStatsUtil.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreGCMonitor.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/stats/RepositoryStats.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/stats/StatisticManager.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java?rev=1669362&r1=1669361&r2=1669362&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java Thu Mar 26 16:09:20 2015
@@ -63,8 +63,8 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStateDiff;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
-import org.apache.jackrabbit.oak.stats.TimeSeriesStatsUtil;
import org.apache.jackrabbit.stats.TimeSeriesRecorder;
+import org.apache.jackrabbit.stats.TimeSeriesStatsUtil;
import org.apache.jackrabbit.util.ISO8601;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -514,6 +514,7 @@ public class AsyncIndexUpdate implements
return ps != null ? ps.getValue(Type.STRING) : null;
}
+ @Override
public void pause() {
log.debug("Pausing the async indexer");
this.isPaused = true;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreGCMonitor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreGCMonitor.java?rev=1669362&r1=1669361&r2=1669362&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreGCMonitor.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreGCMonitor.java Thu Mar 26 16:09:20 2015
@@ -21,7 +21,7 @@ package org.apache.jackrabbit.oak.plugin
import static com.google.common.base.Preconditions.checkNotNull;
import static java.text.DateFormat.getDateTimeInstance;
-import static org.apache.jackrabbit.oak.stats.TimeSeriesStatsUtil.asCompositeData;
+import static org.apache.jackrabbit.stats.TimeSeriesStatsUtil.asCompositeData;
import static org.slf4j.helpers.MessageFormatter.arrayFormat;
import java.io.PrintWriter;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/stats/RepositoryStats.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/stats/RepositoryStats.java?rev=1669362&r1=1669361&r2=1669362&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/stats/RepositoryStats.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/stats/RepositoryStats.java Thu Mar 26 16:09:20 2015
@@ -40,6 +40,7 @@ import javax.management.openmbean.Compos
import org.apache.jackrabbit.api.stats.RepositoryStatistics;
import org.apache.jackrabbit.api.stats.TimeSeries;
import org.apache.jackrabbit.oak.api.jmx.RepositoryStatsMBean;
+import org.apache.jackrabbit.stats.TimeSeriesStatsUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/stats/StatisticManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/stats/StatisticManager.java?rev=1669362&r1=1669361&r2=1669362&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/stats/StatisticManager.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/stats/StatisticManager.java Thu Mar 26 16:09:20 2015
@@ -20,6 +20,7 @@
package org.apache.jackrabbit.oak.stats;
import static org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerMBean;
+import static org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.scheduleWithFixedDelay;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.atomic.AtomicLong;
@@ -31,6 +32,7 @@ import org.apache.jackrabbit.oak.spi.whi
import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
import org.apache.jackrabbit.stats.QueryStatImpl;
import org.apache.jackrabbit.stats.RepositoryStatisticsImpl;
+import org.apache.jackrabbit.stats.TimeSeriesMax;
import org.apache.jackrabbit.stats.jmx.QueryStatManager;
/**
@@ -52,12 +54,18 @@ public class StatisticManager {
public StatisticManager(Whiteboard whiteboard, ScheduledExecutorService executor) {
queryStat.setEnabled(true);
repoStats = new RepositoryStatisticsImpl(executor);
- maxQueueLength = new TimeSeriesMax(executor);
+ maxQueueLength = new TimeSeriesMax();
registration = new CompositeRegistration(
registerMBean(whiteboard, QueryStatManagerMBean.class, new QueryStatManager(queryStat),
"QueryStat", "Oak Query Statistics"),
registerMBean(whiteboard, RepositoryStatsMBean.class, new RepositoryStats(repoStats, maxQueueLength),
- RepositoryStats.TYPE, "Oak Repository Statistics"));
+ RepositoryStats.TYPE, "Oak Repository Statistics"),
+ scheduleWithFixedDelay(whiteboard, new Runnable() {
+ @Override
+ public void run() {
+ maxQueueLength.recordOneSecond();
+ }
+ }, 1));
}
/**
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java?rev=1669362&r1=1669361&r2=1669362&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java Thu Mar 26 16:09:20 2015
@@ -24,6 +24,7 @@ import static org.apache.jackrabbit.api.
import static org.apache.jackrabbit.oak.plugins.observation.filter.VisibleFilter.VISIBLE_FILTER;
import static org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerMBean;
import static org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerObserver;
+import static org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.scheduleWithFixedDelay;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
@@ -54,7 +55,7 @@ import org.apache.jackrabbit.oak.spi.whi
import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
import org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardExecutor;
import org.apache.jackrabbit.oak.stats.StatisticManager;
-import org.apache.jackrabbit.oak.stats.TimeSeriesMax;
+import org.apache.jackrabbit.stats.TimeSeriesMax;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -148,7 +149,14 @@ class ChangeProcessor implements Observe
public void unregister() {
executor.stop();
}
- });
+ },
+ scheduleWithFixedDelay(whiteboard, new Runnable() {
+ @Override
+ public void run() {
+ tracker.recordOneSecond();
+ }
+ }, 1)
+ );
}
private BackgroundObserver createObserver(final WhiteboardExecutor executor) {
@@ -159,6 +167,7 @@ class ChangeProcessor implements Observe
@Override
protected void added(int queueSize) {
maxQueueLength.recordValue(queueSize);
+ tracker.recordQueueLength(queueSize);
if (queueSize == queueLength) {
if (commitRateLimiter != null) {