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 2016/05/23 15:25:09 UTC
svn commit: r1745216 - in
/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment:
SegmentStore.java SegmentTracker.java file/FileStore.java
http/HttpStore.java memory/MemoryStore.java
Author: mduerig
Date: Mon May 23 15:25:09 2016
New Revision: 1745216
URL: http://svn.apache.org/viewvc?rev=1745216&view=rev
Log:
OAK-4373: Refactor SegmentTracker
Nullability annotations, FIXMEs
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStore.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/http/HttpStore.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStore.java?rev=1745216&r1=1745215&r2=1745216&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentStore.java Mon May 23 15:25:09 2016
@@ -31,10 +31,13 @@ import org.apache.jackrabbit.oak.spi.blo
*/
public interface SegmentStore {
+ @Nonnull
SegmentTracker getTracker();
+ @Nonnull
SegmentWriter getWriter();
+ @Nonnull
SegmentReader getReader();
/**
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java?rev=1745216&r1=1745215&r2=1745216&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java Mon May 23 15:25:09 2016
@@ -52,6 +52,7 @@ public class SegmentTracker {
/**
* The random number source for generating new segment identifiers.
*/
+ @Nonnull
private final SecureRandom random = new SecureRandom();
/**
@@ -63,11 +64,13 @@ public class SegmentTracker {
* (when there are no matching identifiers) or a list of weak references
* to the matching identifiers.
*/
+ @Nonnull
private final SegmentIdTable[] tables = new SegmentIdTable[32];
/**
* Number of segment tracked since this tracker was instantiated
*/
+ @Nonnull
private final AtomicInteger segmentCounter = new AtomicInteger();
public SegmentTracker(@Nonnull SegmentStore store) {
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java?rev=1745216&r1=1745215&r2=1745216&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java Mon May 23 15:25:09 2016
@@ -126,10 +126,13 @@ public class FileStore implements Segmen
static final boolean MEMORY_MAPPING_DEFAULT =
"64".equals(System.getProperty("sun.arch.data.model", "32"));
+ @Nonnull
private final SegmentTracker tracker;
+ @Nonnull
private final SegmentWriter segmentWriter;
+ @Nonnull
private final SegmentReader segmentReader;
private final File directory;
@@ -544,6 +547,8 @@ public class FileStore implements Segmen
persistedHead = new AtomicReference<>(null);
}
+ // FIXME OAK-3468 Replace BackgroundThread with Scheduler
+ // Externalise these background operations
if (!readOnly) {
flushThread = BackgroundThread.run(
"TarMK flush thread [" + directory + "]", 5000, // 5s interval
@@ -596,6 +601,7 @@ public class FileStore implements Segmen
log.debug("TarMK readers {}", this.readers);
}
+ @Nonnull
private static RecordId writeNode(NodeState root, SegmentWriter writer,
SegmentBufferWriter bufferWriter)
throws IOException {
@@ -1252,16 +1258,19 @@ public class FileStore implements Segmen
}
@Override
+ @Nonnull
public SegmentTracker getTracker() {
return tracker;
}
@Override
+ @Nonnull
public SegmentWriter getWriter() {
return segmentWriter;
}
@Override
+ @Nonnull
public SegmentReader getReader() {
return segmentReader;
}
@@ -1367,6 +1376,7 @@ public class FileStore implements Segmen
}
@Override
+ @Nonnull
public Segment readSegment(final SegmentId id) {
try {
return segmentCache.geSegment(id, new Callable<Segment>() {
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/http/HttpStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/http/HttpStore.java?rev=1745216&r1=1745215&r2=1745216&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/http/HttpStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/http/HttpStore.java Mon May 23 15:25:09 2016
@@ -32,6 +32,7 @@ import java.net.URLConnection;
import java.nio.ByteBuffer;
import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
import com.google.common.io.ByteStreams;
import org.apache.jackrabbit.oak.api.Blob;
@@ -50,11 +51,14 @@ import org.apache.jackrabbit.oak.spi.blo
public class HttpStore implements SegmentStore {
+ @Nonnull
private final SegmentTracker tracker = new SegmentTracker(this);
+ @Nonnull
private final SegmentWriter segmentWriter = new SegmentWriter(this,
new SegmentBufferWriterPool(this, LATEST_VERSION, "sys"));
+ @Nonnull
private final SegmentReader segmentReader = new SegmentReaderImpl();
private final URL base;
@@ -69,16 +73,19 @@ public class HttpStore implements Segmen
}
@Override
+ @Nonnull
public SegmentTracker getTracker() {
return tracker;
}
@Override
+ @Nonnull
public SegmentWriter getWriter() {
return segmentWriter;
}
@Override
+ @Nonnull
public SegmentReader getReader() {
return segmentReader;
}
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java?rev=1745216&r1=1745215&r2=1745216&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java Mon May 23 15:25:09 2016
@@ -48,11 +48,14 @@ import org.apache.jackrabbit.oak.spi.sta
*/
public class MemoryStore implements SegmentStore {
+ @Nonnull
private final SegmentTracker tracker = new SegmentTracker(this);
+ @Nonnull
private final SegmentWriter segmentWriter = new SegmentWriter(this,
new SegmentBufferWriterPool(this, LATEST_VERSION, "sys"));
+ @Nonnull
private final SegmentReader segmentReader = new SegmentReaderImpl(16);
private SegmentNodeState head;
@@ -73,16 +76,19 @@ public class MemoryStore implements Segm
}
@Override
+ @Nonnull
public SegmentTracker getTracker() {
return tracker;
}
@Override
+ @Nonnull
public SegmentWriter getWriter() {
return segmentWriter;
}
@Override
+ @Nonnull
public SegmentReader getReader() {
return segmentReader;
}