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