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;