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 al...@apache.org on 2014/07/08 09:35:05 UTC
svn commit: r1608683 - in /jackrabbit/oak/branches/1.0: ./
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java
oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java
Author: alexparvulescu
Date: Tue Jul 8 07:35:05 2014
New Revision: 1608683
URL: http://svn.apache.org/r1608683
Log:
OAK-1921 Merged revision 1607737
Modified:
jackrabbit/oak/branches/1.0/ (props changed)
jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java
jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java
Propchange: jackrabbit/oak/branches/1.0/
------------------------------------------------------------------------------
Merged /jackrabbit/oak/trunk:r1607737
Modified: jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java?rev=1608683&r1=1608682&r2=1608683&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java (original)
+++ jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java Tue Jul 8 07:35:05 2014
@@ -18,14 +18,16 @@
*/
package org.apache.jackrabbit.oak.plugins.backup;
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
+
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
+import org.apache.jackrabbit.oak.plugins.segment.Compactor;
import org.apache.jackrabbit.oak.plugins.segment.SegmentNodeBuilder;
import org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState;
import org.apache.jackrabbit.oak.plugins.segment.file.FileStore;
-import org.apache.jackrabbit.oak.spi.state.ApplyDiff;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.slf4j.Logger;
@@ -56,27 +58,29 @@ public class FileStoreBackup {
FileStore backup = new FileStore(destination, MAX_FILE_SIZE, false);
try {
SegmentNodeState state = backup.getHead();
- SegmentNodeBuilder builder = state.builder();
-
+ NodeState before = null;
String beforeCheckpoint = state.getString("checkpoint");
if (beforeCheckpoint == null) {
// 3.1 no stored checkpoint, so do the initial full backup
- builder.setChildNode("root", current);
+ before = EMPTY_NODE;
} else {
// 3.2 try to retrieve the previously backed up checkpoint
- NodeState before = store.retrieve(beforeCheckpoint);
+ before = store.retrieve(beforeCheckpoint);
if (before == null) {
// the previous checkpoint is no longer available,
// so use the backed up state as the basis of the
// incremental backup diff
before = state.getChildNode("root");
}
- current.compareAgainstBaseState(
- before, new ApplyDiff(builder.child("root")));
}
- builder.setProperty("checkpoint", checkpoint);
+
+ Compactor compactor = new Compactor(backup.getTracker().getWriter());
+ SegmentNodeState after = compactor.compact(before, current);
// 4. commit the backup
+ SegmentNodeBuilder builder = state.builder();
+ builder.setProperty("checkpoint", checkpoint);
+ builder.setChildNode("root", after);
backup.setHead(state, builder.getNodeState());
} finally {
backup.close();
Modified: jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java?rev=1608683&r1=1608682&r2=1608683&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java (original)
+++ jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java Tue Jul 8 07:35:05 2014
@@ -64,7 +64,7 @@ public class FileStoreBackupTest {
@Test
public void testBackup() throws Exception {
- FileStore source = new FileStore(src, 256, false);
+ FileStore source = new FileStore(src, 8, false);
NodeStore store = new SegmentNodeStore(source);
init(store);
@@ -83,7 +83,7 @@ public class FileStoreBackupTest {
@Test
public void testRestore() throws Exception {
- FileStore source = new FileStore(src, 256, false);
+ FileStore source = new FileStore(src, 8, false);
NodeStore store = new SegmentNodeStore(source);
init(store);
@@ -110,7 +110,7 @@ public class FileStoreBackupTest {
private static void compare(NodeStore store, File destination)
throws IOException {
- FileStore backup = new FileStore(destination, 256, false);
+ FileStore backup = new FileStore(destination, 8, false);
assertEquals(store.getRoot(), new SegmentNodeStore(backup).getRoot());
backup.close();
}
@@ -147,7 +147,7 @@ public class FileStoreBackupTest {
}
for (File f : destination.listFiles()) {
- if(!f.getName().endsWith(".tar")){
+ if (!f.getName().endsWith(".tar")) {
continue;
}
assertTrue(f.getName() + " is missing from the backup",