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 ad...@apache.org on 2018/03/20 09:21:14 UTC
svn commit: r1827283 - in
/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment:
CommitsTracker.java SegmentNodeStoreStats.java
SegmentNodeStoreStatsMBean.java
Author: adulceanu
Date: Tue Mar 20 09:21:14 2018
New Revision: 1827283
URL: http://svn.apache.org/viewvc?rev=1827283&view=rev
Log:
OAK-7337 - CommitsTracker data is always empty when exposed via JMX
Made commitsCountMapMaxSize configurable via JMX
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CommitsTracker.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreStats.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreStatsMBean.java
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CommitsTracker.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CommitsTracker.java?rev=1827283&r1=1827282&r2=1827283&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CommitsTracker.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CommitsTracker.java Tue Mar 20 09:21:14 2018
@@ -39,18 +39,11 @@ import com.googlecode.concurrentlinkedha
* This class delegates thread-safety to its underlying state variables.
*/
class CommitsTracker {
- private static final int DEFAULT_COMMITS_COUNT_MAP_SIZE = 20;
- private static final boolean DEFAULT_COLLECT_STACK_TRACES = true;
-
private volatile boolean collectStackTraces;
private final ConcurrentMap<String, String> queuedWritersMap;
private final ConcurrentMap<String, Long> commitsCountMap;
- CommitsTracker() {
- this(DEFAULT_COMMITS_COUNT_MAP_SIZE, DEFAULT_COLLECT_STACK_TRACES);
- }
-
CommitsTracker(int commitsCountMapMaxSize, boolean collectStackTraces) {
this.collectStackTraces = collectStackTraces;
this.commitsCountMap = new ConcurrentLinkedHashMap.Builder<String, Long>()
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreStats.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreStats.java?rev=1827283&r1=1827282&r2=1827283&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreStats.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreStats.java Tue Mar 20 09:21:14 2018
@@ -44,24 +44,28 @@ import org.apache.jackrabbit.oak.stats.S
import org.apache.jackrabbit.oak.stats.TimerStats;
public class SegmentNodeStoreStats implements SegmentNodeStoreStatsMBean, SegmentNodeStoreMonitor {
+ private static final boolean DEFAULT_COLLECT_STACK_TRACES = true;
+ private static final int DEFAULT_COMMITS_COUNT_MAP_SIZE = 20;
+
public static final String COMMITS_COUNT = "COMMITS_COUNT";
public static final String COMMIT_QUEUE_SIZE = "COMMIT_QUEUE_SIZE";
public static final String COMMIT_TIME = "COMMIT_TIME";
public static final String QUEUEING_TIME = "QUEUEING_TIME";
private final StatisticsProvider statisticsProvider;
- private final CommitsTracker commitsTracker;
private final MeterStats commitsCount;
private final CounterStats commitQueueSize;
private final TimerStats commitTime;
private final TimerStats queueingTime;
- private boolean collectStackTraces;
+ private volatile CommitsTracker commitsTracker;
+ private boolean collectStackTraces = DEFAULT_COLLECT_STACK_TRACES;
+ private int commitsCountMapMaxSize = DEFAULT_COMMITS_COUNT_MAP_SIZE;
public SegmentNodeStoreStats(StatisticsProvider statisticsProvider) {
this.statisticsProvider = statisticsProvider;
- this.commitsTracker = new CommitsTracker();
+ this.commitsTracker = new CommitsTracker(commitsCountMapMaxSize, collectStackTraces);
this.commitsCount = statisticsProvider.getMeter(COMMITS_COUNT, StatsOptions.DEFAULT);
this.commitQueueSize = statisticsProvider.getCounterStats(COMMIT_QUEUE_SIZE, StatsOptions.DEFAULT);
this.commitTime = statisticsProvider.getTimer(COMMIT_TIME, StatsOptions.DEFAULT);
@@ -171,11 +175,20 @@ public class SegmentNodeStoreStats imple
public boolean isCollectStackTraces() {
return collectStackTraces;
}
+
+ public int getCommitsCountMapMaxSize() {
+ return commitsCountMapMaxSize;
+ }
+
+ public void setCommitsCountMapMaxSize(int commitsCountMapMaxSize) {
+ this.commitsCountMapMaxSize = commitsCountMapMaxSize;
+ commitsTracker = new CommitsTracker(commitsCountMapMaxSize, collectStackTraces);
+ }
private TimeSeries getTimeSeries(String name) {
return statisticsProvider.getStats().getTimeSeries(name, true);
}
-
+
private static CompositeData mapToCompositeData(CompositeType compositeType, Map<String, Object> data) {
try {
return new CompositeDataSupport(compositeType, data);
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreStatsMBean.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreStatsMBean.java?rev=1827283&r1=1827282&r2=1827283&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreStatsMBean.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreStatsMBean.java Tue Mar 20 09:21:14 2018
@@ -70,4 +70,17 @@ public interface SegmentNodeStoreStatsMB
* @return collectStackTraces status flag
*/
boolean isCollectStackTraces();
+
+ /**
+ * Modifies the maximum number of writing threads to be recorded.
+ * Changing the default value will reset the overall collection process.
+ *
+ * @param commitsCountMapSize the new size
+ */
+ void setCommitsCountMapMaxSize(int commitsCountMapMaxSize);
+
+ /**
+ * @return maximum number of writing threads to be recorded
+ */
+ int getCommitsCountMapMaxSize();
}