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