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:20:55 UTC

svn commit: r1827282 - in /jackrabbit/oak/trunk/oak-segment-tar/src: main/java/org/apache/jackrabbit/oak/segment/ main/java/org/apache/jackrabbit/oak/segment/scheduler/ test/java/org/apache/jackrabbit/oak/segment/scheduler/

Author: adulceanu
Date: Tue Mar 20 09:20:55 2018
New Revision: 1827282

URL: http://svn.apache.org/viewvc?rev=1827282&view=rev
Log:
OAK-7337 - CommitsTracker data is always empty when exposed via JMX
Removed duplicate instantiation of SegmentNodeStoreStats in both SegmentNodeStore and LockBasedScheduler in favor of the former

Modified:
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStore.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedScheduler.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedSchedulerCheckpointTest.java
    jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedSchedulerTest.java

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStore.java?rev=1827282&r1=1827281&r2=1827282&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStore.java Tue Mar 20 09:20:55 2018
@@ -162,13 +162,10 @@ public class SegmentNodeStore implements
     private SegmentNodeStore(SegmentNodeStoreBuilder builder) {
         this.writer = builder.writer;
         this.blobStore = builder.blobStore;
-        
-        this.scheduler = LockBasedScheduler.builder(builder.revisions, builder.reader)
+        this.stats = new SegmentNodeStoreStats(builder.statsProvider);
+        this.scheduler = LockBasedScheduler.builder(builder.revisions, builder.reader, stats)
                 .dispatchChanges(builder.dispatchChanges)
-                .withStatisticsProvider(builder.statsProvider)
                 .build();
-        
-        this.stats = new SegmentNodeStoreStats(builder.statsProvider);
     }
 
     @Override

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedScheduler.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedScheduler.java?rev=1827282&r1=1827281&r2=1827282&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedScheduler.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedScheduler.java Tue Mar 20 09:20:55 2018
@@ -52,7 +52,6 @@ import org.apache.jackrabbit.oak.spi.com
 import org.apache.jackrabbit.oak.spi.commit.Observer;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
-import org.apache.jackrabbit.oak.stats.StatisticsProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -64,28 +63,17 @@ public class LockBasedScheduler implemen
 
         @Nonnull
         private final Revisions revisions;
-
+        
         @Nonnull
-        private StatisticsProvider statsProvider = StatisticsProvider.NOOP;
+        private final SegmentNodeStoreStats stats;
 
         private boolean dispatchChanges = true;
 
-        private LockBasedSchedulerBuilder(@Nonnull Revisions revisions, @Nonnull SegmentReader reader) {
+        private LockBasedSchedulerBuilder(@Nonnull Revisions revisions, @Nonnull SegmentReader reader,
+                @Nonnull SegmentNodeStoreStats stats) {
             this.revisions = revisions;
             this.reader = reader;
-        }
-
-        /**
-         * {@link StatisticsProvider} for collecting statistics related to
-         * SegmentStore
-         * 
-         * @param statisticsProvider
-         * @return this instance
-         */
-        @Nonnull
-        public LockBasedSchedulerBuilder withStatisticsProvider(@Nonnull StatisticsProvider statisticsProvider) {
-            this.statsProvider = checkNotNull(statisticsProvider);
-            return this;
+            this.stats = stats;
         }
 
         @Nonnull
@@ -105,8 +93,9 @@ public class LockBasedScheduler implemen
 
     }
 
-    public static LockBasedSchedulerBuilder builder(@Nonnull Revisions revisions, @Nonnull SegmentReader reader) {
-        return new LockBasedSchedulerBuilder(checkNotNull(revisions), checkNotNull(reader));
+    public static LockBasedSchedulerBuilder builder(@Nonnull Revisions revisions, @Nonnull SegmentReader reader,
+            @Nonnull SegmentNodeStoreStats stats) {
+        return new LockBasedSchedulerBuilder(checkNotNull(revisions), checkNotNull(reader), checkNotNull(stats));
     }
 
     private static final Logger log = LoggerFactory.getLogger(LockBasedScheduler.class);
@@ -166,9 +155,8 @@ public class LockBasedScheduler implemen
 
         this.reader = builder.reader;
         this.revisions = builder.revisions;
+        this.stats = builder.stats;
         this.head = new AtomicReference<SegmentNodeState>(reader.readHeadState(revisions));
-
-        this.stats = new SegmentNodeStoreStats(builder.statsProvider);
     }
 
     @Override

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedSchedulerCheckpointTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedSchedulerCheckpointTest.java?rev=1827282&r1=1827281&r2=1827282&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedSchedulerCheckpointTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedSchedulerCheckpointTest.java Tue Mar 20 09:20:55 2018
@@ -31,12 +31,13 @@ import java.util.concurrent.Semaphore;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import javax.annotation.Nonnull;
-
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreStats;
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.spi.commit.CommitHook;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.apache.jackrabbit.oak.stats.StatisticsProvider;
 import org.junit.Test;
 
 public class LockBasedSchedulerCheckpointTest {
@@ -48,7 +49,10 @@ public class LockBasedSchedulerCheckpoin
     public void testShortWait() throws Exception {
         MemoryStore ms = new MemoryStore();
         System.setProperty("oak.checkpoints.lockWaitTime", "1");
-        final LockBasedScheduler scheduler = LockBasedScheduler.builder(ms.getRevisions(), ms.getReader()).build();
+        StatisticsProvider statsProvider = StatisticsProvider.NOOP;
+        SegmentNodeStoreStats stats = new SegmentNodeStoreStats(statsProvider);
+        final LockBasedScheduler scheduler = LockBasedScheduler.builder(ms.getRevisions(), ms.getReader(), stats)
+                .build();
 
         final Semaphore semaphore = new Semaphore(0);
         final AtomicBoolean blocking = new AtomicBoolean(true);
@@ -99,7 +103,10 @@ public class LockBasedSchedulerCheckpoin
         final int blockTime = 1;
         MemoryStore ms = new MemoryStore();
         System.setProperty("oak.checkpoints.lockWaitTime", "2");
-        final LockBasedScheduler scheduler = LockBasedScheduler.builder(ms.getRevisions(), ms.getReader()).build();
+        StatisticsProvider statsProvider = StatisticsProvider.NOOP;
+        SegmentNodeStoreStats stats = new SegmentNodeStoreStats(statsProvider);
+        final LockBasedScheduler scheduler = LockBasedScheduler.builder(ms.getRevisions(), ms.getReader(), stats)
+                .build();
 
         final Semaphore semaphore = new Semaphore(0);
 

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedSchedulerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedSchedulerTest.java?rev=1827282&r1=1827281&r2=1827282&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedSchedulerTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedSchedulerTest.java Tue Mar 20 09:20:55 2018
@@ -35,11 +35,13 @@ import org.apache.jackrabbit.oak.commons
 import org.apache.jackrabbit.oak.segment.RecordId;
 import org.apache.jackrabbit.oak.segment.Revisions;
 import org.apache.jackrabbit.oak.segment.SegmentNodeState;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStoreStats;
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.apache.jackrabbit.oak.stats.StatisticsProvider;
 import org.junit.Test;
 
 public class LockBasedSchedulerTest {
@@ -59,7 +61,10 @@ public class LockBasedSchedulerTest {
     @Test
     public void testSimulatedRaceOnRevisions() throws Exception {
         final MemoryStore ms = new MemoryStore();
-        final LockBasedScheduler scheduler = LockBasedScheduler.builder(ms.getRevisions(), ms.getReader()).build();
+        StatisticsProvider statsProvider = StatisticsProvider.NOOP;
+        SegmentNodeStoreStats stats = new SegmentNodeStoreStats(statsProvider);
+        final LockBasedScheduler scheduler = LockBasedScheduler.builder(ms.getRevisions(), ms.getReader(), stats)
+                .build();
         
         final RecordId initialHead = ms.getRevisions().getHead();
         ExecutorService executorService = newFixedThreadPool(10);