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/10 14:09:35 UTC
svn commit: r1747713 - in /jackrabbit/oak/trunk:
oak-run/src/main/java/org/apache/jackrabbit/oak/run/
oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/
oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/
oak-segment-tar/src/t...
Author: mduerig
Date: Fri Jun 10 14:09:35 2016
New Revision: 1747713
URL: http://svn.apache.org/viewvc?rev=1747713&view=rev
Log:
OAK-4463: Remove SegmentNodeStore.getSuperRoot()
Replace the remaining usage of that method with Revisions.getHeadState
Modified:
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/SegmentNodeStore.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/backup/FileStoreBackupTest.java
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=1747713&r1=1747712&r2=1747713&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 Fri Jun 10 14:09:35 2016
@@ -127,8 +127,7 @@ final class SegmentTarUtils {
fs = openReadOnlyFileStore(source);
}
closer.register(fs);
- NodeStore store = SegmentNodeStoreBuilders.builder(fs).build();
- FileStoreBackup.backup(store, target);
+ FileStoreBackup.backup(fs.getReader(), target);
} catch (Throwable e) {
throw closer.rethrow(e);
} finally {
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=1747713&r1=1747712&r2=1747713&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 Fri Jun 10 14:09:35 2016
@@ -19,29 +19,28 @@
package org.apache.jackrabbit.oak.backup;
-import static com.google.common.base.Preconditions.checkArgument;
import static org.apache.jackrabbit.oak.segment.file.FileStoreBuilder.fileStoreBuilder;
import java.io.File;
import java.io.IOException;
+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.SegmentBufferWriter;
import org.apache.jackrabbit.oak.segment.SegmentNodeState;
-import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
+import org.apache.jackrabbit.oak.segment.SegmentReader;
import org.apache.jackrabbit.oak.segment.SegmentWriter;
import org.apache.jackrabbit.oak.segment.WriterCacheManager;
import org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions;
import org.apache.jackrabbit.oak.segment.file.FileStore;
import org.apache.jackrabbit.oak.segment.file.FileStoreBuilder;
import org.apache.jackrabbit.oak.segment.file.tooling.BasicReadOnlyBlobStore;
-import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Stopwatch;
-import com.google.common.base.Suppliers;
-
public class FileStoreBackup {
private static final Logger log = LoggerFactory
@@ -50,9 +49,9 @@ public class FileStoreBackup {
public static boolean USE_FAKE_BLOBSTORE = Boolean
.getBoolean("oak.backup.UseFakeBlobStore");
- public static void backup(NodeStore store, File destination)
+ public static void backup(@Nonnull SegmentReader reader,
+ @Nonnull File destination)
throws IOException {
- checkArgument(store instanceof SegmentNodeStore);
Stopwatch watch = Stopwatch.createStarted();
SegmentGCOptions gcOptions = SegmentGCOptions.defaultGCOptions()
.setOffline();
@@ -64,14 +63,10 @@ public class FileStoreBackup {
}
builder.withGCOptions(gcOptions);
FileStore backup = builder.build();
- SegmentNodeState current = (SegmentNodeState) ((SegmentNodeStore) store)
- .getSuperRoot();
+ SegmentNodeState current = reader.readHeadState();
try {
int gen = 0;
- if (current instanceof SegmentNodeState) {
- gen = ((SegmentNodeState) current).getRecordId().getSegment()
- .getGcGeneration();
- }
+ gen = current.getRecordId().getSegment().getGcGeneration();
SegmentBufferWriter bufferWriter = new SegmentBufferWriter(backup,
backup.getTracker(), backup.getReader(), "b", gen);
SegmentWriter writer = new SegmentWriter(backup,
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=1747713&r1=1747712&r2=1747713&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 Fri Jun 10 14:09:35 2016
@@ -21,10 +21,9 @@ package org.apache.jackrabbit.oak.backup
import static com.google.common.base.Preconditions.checkNotNull;
import static java.lang.System.nanoTime;
+import static org.apache.jackrabbit.oak.management.ManagementOperation.Status.formatTime;
import static org.apache.jackrabbit.oak.management.ManagementOperation.done;
import static org.apache.jackrabbit.oak.management.ManagementOperation.newManagementOperation;
-import static org.apache.jackrabbit.oak.management.ManagementOperation.Status.formatTime;
-import static org.apache.jackrabbit.oak.backup.FileStoreRestore.restore;
import java.io.File;
import java.util.concurrent.Callable;
@@ -35,7 +34,9 @@ import javax.management.openmbean.Compos
import org.apache.jackrabbit.oak.api.jmx.FileStoreBackupRestoreMBean;
import org.apache.jackrabbit.oak.management.ManagementOperation;
-import org.apache.jackrabbit.oak.spi.state.NodeStore;
+import org.apache.jackrabbit.oak.segment.Revisions;
+import org.apache.jackrabbit.oak.segment.SegmentNodeStore;
+import org.apache.jackrabbit.oak.segment.SegmentReader;
/**
* Default implementation of {@link FileStoreBackupRestoreMBean} based on a file.
@@ -45,7 +46,9 @@ public class FileStoreBackupRestore impl
public static final String BACKUP_OP_NAME = "Backup";
public static final String RESTORE_OP_NAME = "Restore";
- private final NodeStore store;
+ private final SegmentNodeStore store;
+ private final Revisions revisions;
+ private final SegmentReader reader;
private final File file;
private final Executor executor;
@@ -58,10 +61,14 @@ public class FileStoreBackupRestore impl
* @param executor executor for running the back up or restore operation
*/
public FileStoreBackupRestore(
- @Nonnull NodeStore store,
+ @Nonnull SegmentNodeStore store,
+ @Nonnull Revisions revisions,
+ @Nonnull SegmentReader reader,
@Nonnull File file,
@Nonnull Executor executor) {
this.store = checkNotNull(store);
+ this.revisions = checkNotNull(revisions);
+ this.reader = checkNotNull(reader);
this.file = checkNotNull(file);
this.executor = checkNotNull(executor);
}
@@ -73,7 +80,7 @@ public class FileStoreBackupRestore impl
@Override
public String call() throws Exception {
long t0 = nanoTime();
- FileStoreBackup.backup(store, file);
+ FileStoreBackup.backup(reader, file);
return "Backup completed in " + formatTime(nanoTime() - t0);
}
});
@@ -94,7 +101,7 @@ public class FileStoreBackupRestore impl
@Override
public String call() throws Exception {
long t0 = nanoTime();
- FileStoreRestore.restore(file, store);
+ FileStoreRestore.restore(file);
return "Restore 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=1747713&r1=1747712&r2=1747713&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 Fri Jun 10 14:09:35 2016
@@ -25,6 +25,8 @@ import static org.apache.jackrabbit.oak.
import java.io.File;
import java.io.IOException;
+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.SegmentBufferWriter;
import org.apache.jackrabbit.oak.segment.SegmentNodeState;
@@ -32,13 +34,9 @@ import org.apache.jackrabbit.oak.segment
import org.apache.jackrabbit.oak.segment.WriterCacheManager;
import org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions;
import org.apache.jackrabbit.oak.segment.file.FileStore;
-import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Stopwatch;
-import com.google.common.base.Suppliers;
-
public class FileStoreRestore {
private static final Logger log = LoggerFactory
@@ -84,7 +82,7 @@ public class FileStoreRestore {
log.info("Restore finished in {}.", watch);
}
- public static void restore(File source, NodeStore store) {
+ public static void restore(File source) {
log.warn("Restore not available as an online operation.");
}
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=1747713&r1=1747712&r2=1747713&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 Fri Jun 10 14:09:35 2016
@@ -257,18 +257,6 @@ public class SegmentNodeStore implements
return head.get().getChildNode(ROOT);
}
- @Nonnull
- public NodeState getSuperRoot() {
- if (commitSemaphore.tryAcquire()) {
- try {
- refreshHead();
- } finally {
- commitSemaphore.release();
- }
- }
- return head.get();
- }
-
@Override
public NodeState merge(
@Nonnull NodeBuilder builder, @Nonnull CommitHook commitHook,
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=1747713&r1=1747712&r2=1747713&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 Fri Jun 10 14:09:35 2016
@@ -67,17 +67,17 @@ public class FileStoreBackupTest {
try {
init(store);
source.flush();
- FileStoreBackup.backup(store, destination);
+ FileStoreBackup.backup(source.getReader(), destination);
compare(source, destination);
addTestContent(store);
source.flush();
- FileStoreBackup.backup(store, destination);
+ FileStoreBackup.backup(source.getReader(), destination);
compare(source, destination);
source.compact();
FileStoreBackup.cleanup(source);
- FileStoreBackup.backup(store, destination);
+ FileStoreBackup.backup(source.getReader(), destination);
compare(source, destination);
} finally {
source.close();
@@ -91,7 +91,7 @@ public class FileStoreBackupTest {
.build();
init(store);
source.flush();
- FileStoreBackup.backup(store, destination);
+ FileStoreBackup.backup(source.getReader(), destination);
source.close();
FileStoreRestore.restore(destination, src);