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/06/15 10:33:06 UTC
svn commit: r1748542 - in /jackrabbit/oak/trunk:
oak-run/src/main/java/org/apache/jackrabbit/oak/checkpoint/
oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/
oak-run/src/main/java/org/apache/jackrabbit/oak/run/
oak-segment-tar/src/main/java/or...
Author: mduerig
Date: Wed Jun 15 10:33:05 2016
New Revision: 1748542
URL: http://svn.apache.org/viewvc?rev=1748542&view=rev
Log:
OAK-4472: Decouple SegmentReader from Revisions
Replace SegmentReader.getHeadState() with SegmentReader.getHeadState(Revisions)
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/checkpoint/SegmentTarCheckpoints.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SegmentTarUtils.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreBackup.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreBackupRestore.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreRestore.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentGraph.java
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/SegmentReader.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/file/tooling/RevisionHistory.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
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/backup/FileStoreBackupTest.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentGraphTest.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/FileStoreIT.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/TarRevisionsTest.java
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentTarFactory.java
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/checkpoint/SegmentTarCheckpoints.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/checkpoint/SegmentTarCheckpoints.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/checkpoint/SegmentTarCheckpoints.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/checkpoint/SegmentTarCheckpoints.java Wed Jun 15 10:33:05 2016
@@ -46,7 +46,7 @@ class SegmentTarCheckpoints extends Chec
@Override
public List<CP> list() {
List<CP> list = Lists.newArrayList();
- NodeState ns = store.getReader().readHeadState().getChildNode("checkpoints");
+ NodeState ns = store.getHead().getChildNode("checkpoints");
for (ChildNodeEntry cne : ns.getChildNodeEntries()) {
NodeState cneNs = cne.getNodeState();
list.add(new CP(cne.getName(),
@@ -57,7 +57,7 @@ class SegmentTarCheckpoints extends Chec
@Override
public long removeAll() {
- SegmentNodeState head = store.getReader().readHeadState();
+ SegmentNodeState head = store.getHead();
NodeBuilder builder = head.builder();
NodeBuilder cps = builder.getChildNode("checkpoints");
@@ -72,7 +72,7 @@ class SegmentTarCheckpoints extends Chec
@Override
public long removeUnreferenced() {
- SegmentNodeState head = store.getReader().readHeadState();
+ SegmentNodeState head = store.getHead();
String ref = getReferenceCheckpoint(head.getChildNode("root"));
@@ -96,7 +96,7 @@ class SegmentTarCheckpoints extends Chec
@Override
public int remove(String cp) {
- SegmentNodeState head = store.getReader().readHeadState();
+ SegmentNodeState head = store.getHead();
NodeBuilder builder = head.builder();
NodeBuilder cpn = builder.getChildNode("checkpoints")
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java Wed Jun 15 10:33:05 2016
@@ -170,7 +170,7 @@ class SegmentTarExplorerBackend implemen
@Override
public NodeState getHead() {
- return store.getReader().readHeadState();
+ return store.getHead();
}
@Override
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SegmentTarUtils.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SegmentTarUtils.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SegmentTarUtils.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/SegmentTarUtils.java Wed Jun 15 10:33:05 2016
@@ -128,7 +128,7 @@ final class SegmentTarUtils {
fs = openReadOnlyFileStore(source);
}
closer.register(fs);
- FileStoreBackup.backup(fs.getReader(), target);
+ FileStoreBackup.backup(fs.getReader(), fs.getRevisions(), target);
} catch (Throwable e) {
throw closer.rethrow(e);
} finally {
@@ -485,7 +485,7 @@ final class SegmentTarUtils {
if (hasrefs) {
System.out.println("SegmentNodeState references to " + f);
List<String> paths = new ArrayList<String>();
- filterNodeStates(uuids, paths, store.getReader().readHeadState(), "/");
+ filterNodeStates(uuids, paths, store.getHead(), "/");
for (String p : paths) {
System.out.println(" " + p);
}
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreBackup.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreBackup.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreBackup.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreBackup.java Wed Jun 15 10:33:05 2016
@@ -29,6 +29,7 @@ import javax.annotation.Nonnull;
import com.google.common.base.Stopwatch;
import com.google.common.base.Suppliers;
import org.apache.jackrabbit.oak.segment.Compactor;
+import org.apache.jackrabbit.oak.segment.Revisions;
import org.apache.jackrabbit.oak.segment.SegmentBufferWriter;
import org.apache.jackrabbit.oak.segment.SegmentNodeState;
import org.apache.jackrabbit.oak.segment.SegmentReader;
@@ -50,6 +51,7 @@ public class FileStoreBackup {
.getBoolean("oak.backup.UseFakeBlobStore");
public static void backup(@Nonnull SegmentReader reader,
+ @Nonnull Revisions revisions,
@Nonnull File destination)
throws IOException {
Stopwatch watch = Stopwatch.createStarted();
@@ -63,7 +65,7 @@ public class FileStoreBackup {
}
builder.withGCOptions(gcOptions);
FileStore backup = builder.build();
- SegmentNodeState current = reader.readHeadState();
+ SegmentNodeState current = reader.readHeadState(revisions);
try {
int gen = 0;
gen = current.getRecordId().getSegment().getGcGeneration();
@@ -76,7 +78,7 @@ public class FileStoreBackup {
backup.getBlobStore(), Suppliers.ofInstance(false),
gcOptions);
compactor.setContentEqualityCheck(true);
- SegmentNodeState head = backup.getReader().readHeadState();
+ SegmentNodeState head = backup.getHead();
SegmentNodeState after = compactor.compact(head, current, head);
if (after != null) {
backup.getRevisions().setHead(head.getRecordId(),
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreBackupRestore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreBackupRestore.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreBackupRestore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreBackupRestore.java Wed Jun 15 10:33:05 2016
@@ -80,7 +80,7 @@ public class FileStoreBackupRestore impl
@Override
public String call() throws Exception {
long t0 = nanoTime();
- FileStoreBackup.backup(reader, file);
+ FileStoreBackup.backup(reader, revisions, file);
return "Backup completed in " + formatTime(nanoTime() - t0);
}
});
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreRestore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreRestore.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreRestore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/FileStoreRestore.java Wed Jun 15 10:33:05 2016
@@ -57,9 +57,9 @@ public class FileStoreRestore {
Stopwatch watch = Stopwatch.createStarted();
FileStore store = fileStoreBuilder(destination).build();
- SegmentNodeState current = store.getReader().readHeadState();
+ SegmentNodeState current = store.getHead();
try {
- SegmentNodeState head = restore.getReader().readHeadState();
+ SegmentNodeState head = restore.getHead();
int gen = head.getRecordId().getSegment().getGcGeneration();
SegmentBufferWriter bufferWriter = new SegmentBufferWriter(store,
store.getTracker(), store.getReader(), "r", gen);
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java Wed Jun 15 10:33:05 2016
@@ -47,9 +47,6 @@ public class CachingSegmentReader implem
@Nonnull
private final Supplier<SegmentWriter> writer;
- @Nonnull
- private final Revisions revisions;
-
@CheckForNull
private final BlobStore blobStore;
@@ -64,18 +61,15 @@ public class CachingSegmentReader implem
* @param writer A {@code Supplier} for a the {@code SegmentWriter} used by the segment
* builders returned from {@link NodeState#builder()} to write ahead changes.
* {@code writer.get()} must not return {@code null}.
- * @param revisions {@code Revisions} instance of the underlying {@link SegmentStore}.
* @param blobStore {@code BlobStore} instance of the underlying {@link SegmentStore}, or
* {@code null} if none.
* @param stringCacheMB the size of the string cache in MBs or {@code 0} for no cache.
*/
public CachingSegmentReader(
@Nonnull Supplier<SegmentWriter> writer,
- @Nonnull Revisions revisions,
@Nullable BlobStore blobStore,
long stringCacheMB) {
this.writer = checkNotNull(writer);
- this.revisions = checkNotNull(revisions);
this.blobStore = blobStore;
stringCache = new StringCache(getLong(STRING_CACHE_MB, stringCacheMB) * 1024 * 1024);
}
@@ -130,7 +124,7 @@ public class CachingSegmentReader implem
@Nonnull
@Override
- public SegmentNodeState readHeadState() {
+ public SegmentNodeState readHeadState(@Nonnull Revisions revisions) {
return readNode(revisions.getHead());
}
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentGraph.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentGraph.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentGraph.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentGraph.java Wed Jun 15 10:33:05 2016
@@ -160,7 +160,7 @@ public final class SegmentGraph {
checkNotNull(epoch);
PrintWriter writer = new PrintWriter(checkNotNull(out));
try {
- SegmentNodeState root = checkNotNull(fileStore).getReader().readHeadState();
+ SegmentNodeState root = checkNotNull(fileStore).getHead();
Predicate<UUID> filter = pattern == null
? Predicates.<UUID>alwaysTrue()
: createRegExpFilter(pattern, fileStore);
@@ -232,7 +232,7 @@ public final class SegmentGraph {
public static Graph<UUID> parseSegmentGraph(
@Nonnull ReadOnlyStore fileStore,
@Nonnull Predicate<UUID> filter) throws IOException {
- SegmentNodeState root = checkNotNull(fileStore).getReader().readHeadState();
+ SegmentNodeState root = checkNotNull(fileStore).getHead();
HashSet<UUID> roots = newHashSet(root.getRecordId().asUUID());
return parseSegmentGraph(fileStore, roots, filter, Functions.<UUID>identity());
}
@@ -285,7 +285,7 @@ public final class SegmentGraph {
@Nonnull
public static Graph<String> parseGCGraph(@Nonnull final ReadOnlyStore fileStore)
throws IOException {
- SegmentNodeState root = checkNotNull(fileStore).getReader().readHeadState();
+ SegmentNodeState root = checkNotNull(fileStore).getHead();
HashSet<UUID> roots = newHashSet(root.getRecordId().asUUID());
return parseSegmentGraph(fileStore, roots, Predicates.<UUID>alwaysTrue(), new Function<UUID, String>() {
@Override @Nullable
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=1748542&r1=1748541&r2=1748542&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 Wed Jun 15 10:33:05 2016
@@ -187,7 +187,7 @@ public class SegmentNodeStore implements
this.reader = builder.reader;
this.writer = builder.writer;
this.blobStore = builder.blobStore;
- this.head = new AtomicReference<SegmentNodeState>(reader.readHeadState());
+ this.head = new AtomicReference<SegmentNodeState>(reader.readHeadState(revisions));
this.changeDispatcher = new ChangeDispatcher(getRoot());
}
@@ -247,7 +247,7 @@ public class SegmentNodeStore implements
* permit from the {@link #commitSemaphore}.
*/
private void refreshHead() {
- SegmentNodeState state = reader.readHeadState();
+ SegmentNodeState state = reader.readHeadState(revisions);
if (!state.getRecordId().equals(head.get().getRecordId())) {
head.set(state);
changeDispatcher.contentChanged(state.getChildNode(ROOT), null);
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=1748542&r1=1748541&r2=1748542&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 Wed Jun 15 10:33:05 2016
@@ -63,11 +63,12 @@ public interface SegmentReader {
SegmentNodeState readNode(@Nonnull RecordId id);
/**
- * Read the current head state
+ * Read the current head state based on the head of {@code revisions}
+ * @param revisions
* @throws SegmentNotFoundException see class comment for exception semantics
*/
@Nonnull
- SegmentNodeState readHeadState();
+ SegmentNodeState readHeadState(@Nonnull Revisions revisions);
/**
* Read the property identified by {@code id} and {@code template}
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=1748542&r1=1748541&r2=1748542&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 Wed Jun 15 10:33:05 2016
@@ -254,11 +254,11 @@ public class FileStore implements Segmen
// FIXME OAK-4451: Implement a proper template cache: inject caches
// from the outside so we can get rid of the cache stat accessors
if (builder.getCacheSize() < 0) {
- this.segmentReader = new CachingSegmentReader(getWriter, revisions, blobStore, 0);
+ this.segmentReader = new CachingSegmentReader(getWriter, blobStore, 0);
} else if (builder.getCacheSize() > 0) {
- this.segmentReader = new CachingSegmentReader(getWriter, revisions, blobStore, (long) builder.getCacheSize());
+ this.segmentReader = new CachingSegmentReader(getWriter, blobStore, (long) builder.getCacheSize());
} else {
- this.segmentReader = new CachingSegmentReader(getWriter, revisions, blobStore, (long) DEFAULT_STRING_CACHE_MB);
+ this.segmentReader = new CachingSegmentReader(getWriter, blobStore, (long) DEFAULT_STRING_CACHE_MB);
}
Supplier<Integer> getGeneration = new Supplier<Integer>() {
@@ -608,7 +608,7 @@ public class FileStore implements Segmen
* @return compaction gain estimate
*/
CompactionGainEstimate estimateCompactionGain(Supplier<Boolean> stop) {
- CompactionGainEstimate estimate = new CompactionGainEstimate(segmentReader.readHeadState(), count(), stop);
+ CompactionGainEstimate estimate = new CompactionGainEstimate(getHead(), count(), stop);
fileStoreLock.readLock().lock();
try {
for (TarReader reader : readers) {
@@ -878,7 +878,7 @@ public class FileStore implements Segmen
gcListener.info("TarMK GC #{}: compaction started, gc options={}", GC_COUNT, gcOptions);
Stopwatch watch = Stopwatch.createStarted();
- SegmentNodeState before = segmentReader.readHeadState();
+ SegmentNodeState before = getHead();
long existing = before.getChildNode(SegmentNodeStore.CHECKPOINTS)
.getChildNodeCount(Long.MAX_VALUE);
if (existing > 1) {
@@ -914,7 +914,7 @@ public class FileStore implements Segmen
gcListener.info("TarMK GC #{}: compaction detected concurrent commits while compacting. " +
"Compacting these commits. Cycle {} of {}",
GC_COUNT, cycles, gcOptions.getRetryCount());
- SegmentNodeState head = segmentReader.readHeadState();
+ SegmentNodeState head = getHead();
after = compact(bufferWriter, head, cancel);
if (after == null) {
gcListener.info("TarMK GC #{}: compaction cancelled.", GC_COUNT);
@@ -1058,6 +1058,19 @@ public class FileStore implements Segmen
return revisions;
}
+ /**
+ * Convenience method for accessing the root node for the current head.
+ * This is equivalent to
+ * <pre>
+ * fileStore.getReader().readHeadState(fileStore.getRevisions())
+ * </pre>
+ * @return the current head node state
+ */
+ @Nonnull
+ public SegmentNodeState getHead() {
+ return segmentReader.readHeadState(revisions);
+ }
+
@Override
public void close() {
// Flag the store as shutting / shut down
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/RevisionHistory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/RevisionHistory.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/RevisionHistory.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/RevisionHistory.java Wed Jun 15 10:33:05 2016
@@ -83,7 +83,7 @@ public class RevisionHistory {
@Nullable @Override
public HistoryElement apply(String revision) {
store.setRevision(revision);
- NodeState node = getNode(store.getReader().readHeadState(), path);
+ NodeState node = getNode(store.getHead(), path);
return new HistoryElement(revision, node);
}
});
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=1748542&r1=1748541&r2=1748542&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 Wed Jun 15 10:33:05 2016
@@ -63,7 +63,7 @@ public class HttpStore implements Segmen
};
@Nonnull
private final SegmentReader segmentReader = new CachingSegmentReader(
- getWriter, revisions, null, DEFAULT_STRING_CACHE_MB);
+ getWriter, null, DEFAULT_STRING_CACHE_MB);
private final SegmentIdFactory segmentIdFactory = new SegmentIdFactory() {
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=1748542&r1=1748541&r2=1748542&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 Wed Jun 15 10:33:05 2016
@@ -79,7 +79,7 @@ public class MemoryStore implements Segm
return getWriter();
}
};
- this.segmentReader = new CachingSegmentReader(getWriter, revisions, null, 16);
+ this.segmentReader = new CachingSegmentReader(getWriter, null, 16);
this.segmentWriter = segmentWriterBuilder("sys").withWriterPool().build(this);
revisions.bind(this);
segmentWriter.flush();
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/backup/FileStoreBackupTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/backup/FileStoreBackupTest.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/backup/FileStoreBackupTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/backup/FileStoreBackupTest.java Wed Jun 15 10:33:05 2016
@@ -67,17 +67,17 @@ public class FileStoreBackupTest {
try {
init(store);
source.flush();
- FileStoreBackup.backup(source.getReader(), destination);
+ FileStoreBackup.backup(source.getReader(), source.getRevisions(), destination);
compare(source, destination);
addTestContent(store);
source.flush();
- FileStoreBackup.backup(source.getReader(), destination);
+ FileStoreBackup.backup(source.getReader(), source.getRevisions(), destination);
compare(source, destination);
source.compact();
FileStoreBackup.cleanup(source);
- FileStoreBackup.backup(source.getReader(), destination);
+ FileStoreBackup.backup(source.getReader(), source.getRevisions(), destination);
compare(source, destination);
} finally {
source.close();
@@ -91,7 +91,7 @@ public class FileStoreBackupTest {
.build();
init(store);
source.flush();
- FileStoreBackup.backup(source.getReader(), destination);
+ FileStoreBackup.backup(source.getReader(), source.getRevisions(), destination);
source.close();
FileStoreRestore.restore(destination, src);
@@ -132,8 +132,7 @@ public class FileStoreBackupTest {
private static void compare(FileStore store, File destination)
throws IOException {
FileStore backup = fileStoreBuilder(destination).build();
- assertEquals(store.getReader().readHeadState(), backup.getReader()
- .readHeadState());
+ assertEquals(store.getHead(), backup.getHead());
backup.close();
}
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CompactionAndCleanupIT.java Wed Jun 15 10:33:05 2016
@@ -611,7 +611,7 @@ public class CompactionAndCleanupIT {
public void cleanupCyclicGraph() throws IOException, ExecutionException, InterruptedException {
FileStore fileStore = fileStoreBuilder(getFileStoreFolder()).build();
final SegmentWriter writer = fileStore.getWriter();
- final SegmentNodeState oldHead = fileStore.getReader().readHeadState();
+ final SegmentNodeState oldHead = fileStore.getHead();
final SegmentNodeState child = run(new Callable<SegmentNodeState>() {
@Override
@@ -635,11 +635,11 @@ public class CompactionAndCleanupIT {
fileStore = fileStoreBuilder(getFileStoreFolder()).build();
- traverse(fileStore.getReader().readHeadState());
+ traverse(fileStore.getHead());
fileStore.cleanup();
// Traversal after cleanup might result in an SNFE
- traverse(fileStore.getReader().readHeadState());
+ traverse(fileStore.getHead());
fileStore.close();
}
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentGraphTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentGraphTest.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentGraphTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentGraphTest.java Wed Jun 15 10:33:05 2016
@@ -68,7 +68,7 @@ public class SegmentGraphTest {
public void setup() throws IOException {
FileStore store = fileStoreBuilder(getStoreFolder()).build();
try {
- SegmentNodeState root = store.getReader().readHeadState();
+ SegmentNodeState root = store.getHead();
segments.add(getSegmentId(root));
SegmentWriter w1 = segmentWriterBuilder("writer1").build(store);
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/FileStoreIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/FileStoreIT.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/FileStoreIT.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/FileStoreIT.java Wed Jun 15 10:33:05 2016
@@ -80,7 +80,7 @@ public class FileStoreIT {
store.close();
store = fileStoreBuilder(getFileStoreFolder()).withMaxFileSize(1).withMemoryMapping(memoryMapping).build();
- SegmentNodeState base = store.getReader().readHeadState();
+ SegmentNodeState base = store.getHead();
SegmentNodeBuilder builder = base.builder();
byte[] data = new byte[10 * 1024 * 1024];
new Random().nextBytes(data);
@@ -108,7 +108,7 @@ public class FileStoreIT {
RandomAccessFile data0 = new RandomAccessFile(new File(getFileStoreFolder(), "data00000a.tar"), "r");
long pos0 = data0.length();
- SegmentNodeState base = store.getReader().readHeadState();
+ SegmentNodeState base = store.getHead();
SegmentNodeBuilder builder = base.builder();
builder.setProperty("step", "a");
store.getRevisions().setHead(base.getRecordId(), builder.getNodeState().getRecordId());
@@ -116,14 +116,14 @@ public class FileStoreIT {
long pos1 = data0.length();
data0.close();
- base = store.getReader().readHeadState();
+ base = store.getHead();
builder = base.builder();
builder.setProperty("step", "b");
store.getRevisions().setHead(base.getRecordId(), builder.getNodeState().getRecordId());
store.close();
store = fileStoreBuilder(getFileStoreFolder()).withMaxFileSize(1).withMemoryMapping(false).build();
- assertEquals("b", store.getReader().readHeadState().getString("step"));
+ assertEquals("b", store.getHead().getString("step"));
store.close();
RandomAccessFile file = new RandomAccessFile(
@@ -132,7 +132,7 @@ public class FileStoreIT {
file.close();
store = fileStoreBuilder(getFileStoreFolder()).withMaxFileSize(1).withMemoryMapping(false).build();
- assertEquals("a", store.getReader().readHeadState().getString("step"));
+ assertEquals("a", store.getHead().getString("step"));
store.close();
file = new RandomAccessFile(
@@ -141,7 +141,7 @@ public class FileStoreIT {
file.close();
store = fileStoreBuilder(getFileStoreFolder()).withMaxFileSize(1).withMemoryMapping(false).build();
- assertFalse(store.getReader().readHeadState().hasProperty("step"));
+ assertFalse(store.getHead().hasProperty("step"));
store.close();
}
@@ -207,7 +207,7 @@ public class FileStoreIT {
public void nonBlockingROStore() throws IOException {
FileStore store = fileStoreBuilder(getFileStoreFolder()).withMaxFileSize(1).withMemoryMapping(false).build();
store.flush(); // first 1kB
- SegmentNodeState base = store.getReader().readHeadState();
+ SegmentNodeState base = store.getHead();
SegmentNodeBuilder builder = base.builder();
builder.setProperty("step", "a");
store.getRevisions().setHead(base.getRecordId(), builder.getNodeState().getRecordId());
@@ -229,7 +229,7 @@ public class FileStoreIT {
public void setRevisionTest() throws IOException {
try (FileStore store = fileStoreBuilder(getFileStoreFolder()).build()) {
RecordId id1 = store.getRevisions().getHead();
- SegmentNodeState base = store.getReader().readHeadState();
+ SegmentNodeState base = store.getHead();
SegmentNodeBuilder builder = base.builder();
builder.setProperty("step", "a");
store.getRevisions().setHead(base.getRecordId(), builder.getNodeState().getRecordId());
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/TarRevisionsTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/TarRevisionsTest.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/TarRevisionsTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/TarRevisionsTest.java Wed Jun 15 10:33:05 2016
@@ -144,7 +144,7 @@ public class TarRevisionsTest {
SegmentNodeState rootB = addChild(reader.readNode(headId), "a");
assertTrue(revisions.setHead(headId, rootA.getRecordId()));
assertFalse(revisions.setHead(headId, rootB.getRecordId()));
- assertEquals(rootA, reader.readHeadState());
+ assertEquals(rootA, reader.readHeadState(revisions));
}
@Test
Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentTarFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentTarFactory.java?rev=1748542&r1=1748541&r2=1748542&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentTarFactory.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentTarFactory.java Wed Jun 15 10:33:05 2016
@@ -74,7 +74,7 @@ public class SegmentTarFactory implement
@Override
public NodeState getSuperRoot() {
- return fs.getReader().readHeadState();
+ return fs.getHead();
}
});
}