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 19:24:13 UTC

svn commit: r1745246 - in /jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment: ./ file/ http/ memory/

Author: mduerig
Date: Mon May 23 19:24:12 2016
New Revision: 1745246

URL: http://svn.apache.org/viewvc?rev=1745246&view=rev
Log:
OAK-4373: Refactor SegmentTracker
Bind segment store to segment reader instead of passing it via its individual method calls

Modified:
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentReader.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentReaderImpl.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Template.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/SegmentNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java?rev=1745246&r1=1745245&r2=1745246&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeState.java Mon May 23 19:24:12 2016
@@ -82,14 +82,14 @@ public class SegmentNodeState extends Re
         if (template == null) {
             // no problem if updated concurrently,
             // as each concurrent thread will just get the same value
-            template = store.getReader().readTemplate(store, getTemplateId());
+            template = store.getReader().readTemplate(getTemplateId());
         }
         return template;
     }
 
     MapRecord getChildNodeMap() {
         Segment segment = getSegment();
-        return store.getReader().readMap(store, segment.readRecordId(getOffset(0, 2)));
+        return store.getReader().readMap(segment.readRecordId(getOffset(0, 2)));
     }
 
     /**

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java?rev=1745246&r1=1745245&r2=1745246&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentParser.java Mon May 23 19:24:12 2016
@@ -428,12 +428,12 @@ public class SegmentParser {
         RecordId templateId = segment.readRecordId(offset);
         onTemplate(nodeId, templateId);
 
-        Template template = store.getReader().readTemplate(store, templateId);
+        Template template = store.getReader().readTemplate(templateId);
 
         // Recurses into child nodes in this segment
         if (template.getChildName() == MANY_CHILD_NODES) {
             RecordId childMapId = segment.readRecordId(offset + RECORD_ID_BYTES);
-            MapRecord childMap = store.getReader().readMap(store, childMapId);
+            MapRecord childMap = store.getReader().readMap(childMapId);
             onMap(nodeId, childMapId, childMap);
             for (ChildNodeEntry childNodeEntry : childMap.getEntries()) {
                 NodeState child = childNodeEntry.getNodeState();

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentReader.java?rev=1745246&r1=1745245&r2=1745246&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentReader.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentReader.java Mon May 23 19:24:12 2016
@@ -28,10 +28,10 @@ public interface SegmentReader {
     String readString(@Nonnull RecordId id);
 
     @Nonnull
-    MapRecord readMap(@Nonnull SegmentStore store, @Nonnull RecordId id);
+    MapRecord readMap(@Nonnull RecordId id);
 
     @Nonnull
-    Template readTemplate(@Nonnull SegmentStore store, @Nonnull RecordId id);
+    Template readTemplate(@Nonnull RecordId id);
 
     // FIXME OAK-4373 remove from this interface
     @Nonnull

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentReaderImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentReaderImpl.java?rev=1745246&r1=1745245&r2=1745246&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentReaderImpl.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentReaderImpl.java Mon May 23 19:24:12 2016
@@ -19,6 +19,7 @@
 
 package org.apache.jackrabbit.oak.segment;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import static java.lang.Long.getLong;
 
 import javax.annotation.Nonnull;
@@ -36,17 +37,22 @@ public class SegmentReaderImpl implement
 
     public static final String STRING_CACHE_MB = "oak.segment.stringCacheMB";
 
+    @Nonnull
+    private final SegmentStore store;
+
     /**
      * Cache for string records
      */
+    @Nonnull
     private final StringCache stringCache;
 
-    public SegmentReaderImpl(long stringCacheMB) {
+    public SegmentReaderImpl(@Nonnull SegmentStore store, long stringCacheMB) {
+        this.store = checkNotNull(store);
         stringCache = new StringCache(getLong(STRING_CACHE_MB, stringCacheMB) * 1024 * 1024);
     }
 
-    public SegmentReaderImpl() {
-        this(DEFAULT_STRING_CACHE_MB);
+    public SegmentReaderImpl(@Nonnull SegmentStore store) {
+        this(store, DEFAULT_STRING_CACHE_MB);
     }
 
     @Nonnull
@@ -66,13 +72,13 @@ public class SegmentReaderImpl implement
 
     @Nonnull
     @Override
-    public MapRecord readMap(@Nonnull SegmentStore store, @Nonnull RecordId id) {
+    public MapRecord readMap(@Nonnull RecordId id) {
         return new MapRecord(store, id);
     }
 
     @Nonnull
     @Override
-    public Template readTemplate(@Nonnull SegmentStore store, @Nonnull RecordId id) {
+    public Template readTemplate(@Nonnull RecordId id) {
         int offset = id.getOffset();
         if (id.getSegment().templates == null) {
             return id.getSegment().readTemplate(offset);

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Template.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Template.java?rev=1745246&r1=1745245&r2=1745246&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Template.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Template.java Mon May 23 19:24:12 2016
@@ -206,7 +206,7 @@ public class Template {
         Segment segment = recordId.getSegment();
         int offset = recordId.getOffset() + 2 * RECORD_ID_BYTES;
         RecordId childNodesId = segment.readRecordId(offset);
-        return store.getReader().readMap(store, childNodesId);
+        return store.getReader().readMap(childNodesId);
     }
 
     public NodeState getChildNode(String name, RecordId recordId) {

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=1745246&r1=1745245&r2=1745246&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 19:24:12 2016
@@ -445,11 +445,11 @@ public class FileStore implements Segmen
             this.segmentCache = new SegmentCache(DEFAULT_STRING_CACHE_MB);
         }
         if (builder.cacheSize < 0) {
-            this.segmentReader = new SegmentReaderImpl(0);
+            this.segmentReader = new SegmentReaderImpl(this, 0);
         } else if (builder.cacheSize > 0) {
-            this.segmentReader = new SegmentReaderImpl(builder.cacheSize);
+            this.segmentReader = new SegmentReaderImpl(this, builder.cacheSize);
         } else {
-            this.segmentReader = new SegmentReaderImpl();
+            this.segmentReader = new SegmentReaderImpl(this);
         }
         this.segmentWriter = new SegmentWriter(this,
                 new SegmentBufferWriterPool(this, version, "sys", new Supplier<Integer>() {

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=1745246&r1=1745245&r2=1745246&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 19:24:12 2016
@@ -59,7 +59,7 @@ public class HttpStore implements Segmen
             new SegmentBufferWriterPool(this, LATEST_VERSION, "sys"));
 
     @Nonnull
-    private final SegmentReader segmentReader = new SegmentReaderImpl();
+    private final SegmentReader segmentReader = new SegmentReaderImpl(this);
 
     private final URL base;
 

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=1745246&r1=1745245&r2=1745246&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 19:24:12 2016
@@ -56,7 +56,7 @@ public class MemoryStore implements Segm
             new SegmentBufferWriterPool(this, LATEST_VERSION, "sys"));
 
     @Nonnull
-    private final SegmentReader segmentReader = new SegmentReaderImpl(16);
+    private final SegmentReader segmentReader = new SegmentReaderImpl(this, 16);
 
     private SegmentNodeState head;