Author: mduerig
Date: Wed Nov 25 16:29:05 2015
New Revision: 1716471
URL: http://svn.apache.org/viewvc?rev=1716471&view=rev
Log:
OAK-1828: Improved SegmentWriter
Remove SegmentWriter.getTracker
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreRestore.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentWriter.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompactorTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/PartialCompactionMapTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentParserTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreIT.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java?rev=1716471&r1=1716470&r2=1716471&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java
Wed Nov 25 16:29:05 2015
@@ -77,7 +77,7 @@ public class FileStoreBackup {
}
}
- Compactor compactor = new
Compactor(backup.getTracker().getWriter());
+ Compactor compactor = new Compactor(backup);
SegmentNodeState after = compactor.compact(before, current);
// 4. commit the backup
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreRestore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreRestore.java?rev=1716471&r1=1716470&r2=1716471&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreRestore.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreRestore.java
Wed Nov 25 16:29:05 2015
@@ -25,7 +25,7 @@ import org.apache.jackrabbit.oak.api.Com
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.SegmentWriter;
+import org.apache.jackrabbit.oak.plugins.segment.SegmentStore;
import org.apache.jackrabbit.oak.plugins.segment.file.FileStore;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
@@ -53,20 +53,19 @@ public class FileStoreRestore {
// 2. init filestore
FileStore restore = new FileStore(source, MAX_FILE_SIZE, false);
- SegmentWriter writer = restore.getTracker().getWriter();
try {
SegmentNodeState state = restore.getHead();
- restore(state.getChildNode("root"), store, writer);
+ restore(state.getChildNode("root"), store, restore);
} finally {
restore.close();
}
}
private static void restore(NodeState source, NodeStore store,
- SegmentWriter writer) throws CommitFailedException {
+ SegmentStore restore) throws CommitFailedException {
long s = System.currentTimeMillis();
NodeState current = store.getRoot();
- RestoreCompactor compactor = new RestoreCompactor(writer);
+ RestoreCompactor compactor = new RestoreCompactor(restore);
SegmentNodeBuilder builder = compactor.process(current, source,
current);
store.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY);
log.debug("Restore finished in {} ms.", System.currentTimeMillis() -
s);
@@ -74,8 +73,8 @@ public class FileStoreRestore {
private static class RestoreCompactor extends Compactor {
- public RestoreCompactor(SegmentWriter writer) {
- super(writer);
+ public RestoreCompactor(SegmentStore store) {
+ super(store);
}
@Override
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java?rev=1716471&r1=1716470&r2=1716471&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java
Wed Nov 25 16:29:05 2015
@@ -99,13 +99,13 @@ public class Compactor {
*/
private final Supplier<Boolean> cancel;
- public Compactor(SegmentWriter writer) {
- this(writer, Suppliers.ofInstance(false));
+ public Compactor(SegmentStore store) {
+ this(store, Suppliers.ofInstance(false));
}
- public Compactor(SegmentWriter writer, Supplier<Boolean> cancel) {
- this.writer = writer;
- this.map = new InMemoryCompactionMap(writer.getTracker());
+ public Compactor(SegmentStore store, Supplier<Boolean> cancel) {
+ this.writer = store.getTracker().getWriter();
+ this.map = new InMemoryCompactionMap(store.getTracker());
this.cloneBinaries = false;
this.cancel = cancel;
}
@@ -120,7 +120,7 @@ public class Compactor {
if (compactionStrategy.getPersistCompactionMap()) {
this.map = new PersistedCompactionMap(store);
} else {
- this.map = new InMemoryCompactionMap(writer.getTracker());
+ this.map = new InMemoryCompactionMap(store.getTracker());
}
this.cloneBinaries = compactionStrategy.cloneBinaries();
if (compactionStrategy.isOfflineCompaction()) {
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentWriter.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentWriter.java?rev=1716471&r1=1716470&r2=1716471&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentWriter.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentWriter.java
Wed Nov 25 16:29:05 2015
@@ -142,10 +142,6 @@ public class SegmentWriter {
this.wid = wid;
}
- SegmentTracker getTracker() {
- return store.getTracker();
- }
-
public void flush() {
segmentBuilderPool.flush();
}
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompactorTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompactorTest.java?rev=1716471&r1=1716470&r2=1716471&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompactorTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/CompactorTest.java
Wed Nov 25 16:29:05 2015
@@ -16,7 +16,8 @@
*/
package org.apache.jackrabbit.oak.plugins.segment;
-import com.google.common.base.Supplier;
+import static org.junit.Assert.assertFalse;
+
import com.google.common.base.Suppliers;
import junit.framework.Assert;
import org.apache.jackrabbit.oak.Oak;
@@ -32,8 +33,6 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import static org.junit.Assert.assertFalse;
-
public class CompactorTest {
private SegmentStore segmentStore;
@@ -53,7 +52,7 @@ public class CompactorTest {
NodeStore store = new SegmentNodeStore(segmentStore);
init(store);
- Compactor compactor = new
Compactor(segmentStore.getTracker().getWriter());
+ Compactor compactor = new Compactor(segmentStore);
addTestContent(store, 0);
NodeState initial = store.getRoot();
@@ -74,7 +73,7 @@ public class CompactorTest {
// doesn't have the child named "b".
NodeStore store =
SegmentNodeStore.newSegmentNodeStore(segmentStore).create();
- Compactor compactor = new
Compactor(segmentStore.getTracker().getWriter(), Suppliers.ofInstance(true));
+ Compactor compactor = new Compactor(segmentStore,
Suppliers.ofInstance(true));
SegmentNodeState sns = compactor.compact(store.getRoot(),
addChild(store.getRoot(), "b"), store.getRoot());
assertFalse(sns.hasChildNode("b"));
}
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/PartialCompactionMapTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/PartialCompactionMapTest.java?rev=1716471&r1=1716470&r2=1716471&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/PartialCompactionMapTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/PartialCompactionMapTest.java
Wed Nov 25 16:29:05 2015
@@ -124,7 +124,7 @@ public class PartialCompactionMapTest {
if (usePersistedMap) {
return new PersistedCompactionMap(segmentStore);
} else {
- return new InMemoryCompactionMap(writer.getTracker());
+ return new InMemoryCompactionMap(segmentStore.getTracker());
}
}
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentParserTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentParserTest.java?rev=1716471&r1=1716470&r2=1716471&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentParserTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentParserTest.java
Wed Nov 25 16:29:05 2015
@@ -67,6 +67,7 @@ import org.junit.runners.Parameterized;
public class SegmentParserTest {
private final SegmentVersion segmentVersion;
+ private SegmentStore store;
private SegmentWriter writer;
@Parameterized.Parameters
@@ -152,7 +153,7 @@ public class SegmentParserTest {
@Before
public void setup() {
- SegmentStore store = mock(SegmentStore.class,
withSettings().stubOnly());
+ store = mock(SegmentStore.class, withSettings().stubOnly());
SegmentTracker tracker = new SegmentTracker(store);
when(store.getTracker()).thenReturn(tracker);
writer = new SegmentWriter(store, segmentVersion);
@@ -295,7 +296,7 @@ public class SegmentParserTest {
private Map<String, RecordId> createMap(int size, Random rnd) {
Map<String, RecordId> map = newHashMap();
for (int k = 0; k < size; k++) {
- map.put("k" + k, newRecordId(writer.getTracker(), rnd));
+ map.put("k" + k, newRecordId(store.getTracker(), rnd));
}
return map;
}
@@ -429,7 +430,7 @@ public class SegmentParserTest {
@Test
public void emptyList() {
- RecordId listId = newRecordId(writer.getTracker(), new Random());
+ RecordId listId = newRecordId(store.getTracker(), new Random());
ListInfo listInfo = new TestParser("emptyList").parseList(null,
listId, 0);
assertEquals(listId, listInfo.listId);
assertEquals(0, listInfo.count);
@@ -442,7 +443,7 @@ public class SegmentParserTest {
Random rnd = new Random();
List<RecordId> list = newArrayListWithCapacity(count);
for (int k = 0; k < count; k++) {
- list.add(newRecordId(writer.getTracker(), rnd));
+ list.add(newRecordId(store.getTracker(), rnd));
}
RecordId listId = writer.writeList(list);
ListInfo listInfo = new TestParser("nonEmptyList"){
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreIT.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreIT.java?rev=1716471&r1=1716470&r2=1716471&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreIT.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStoreIT.java
Wed Nov 25 16:29:05 2015
@@ -134,7 +134,7 @@ public class FileStoreIT {
assertTrue(store.setHead(base, head));
assertEquals("bar", store.getHead().getString("foo"));
- Compactor compactor = new Compactor(writer);
+ Compactor compactor = new Compactor(store);
SegmentNodeState compacted =
compactor.compact(EMPTY_NODE, head, EMPTY_NODE);
store.close();
@@ -163,7 +163,7 @@ public class FileStoreIT {
head = store.getHead();
assertTrue(store.size() > largeBinarySize);
writer = new SegmentWriter(store, V_11);
- compactor = new Compactor(writer);
+ compactor = new Compactor(store);
compacted = compactor.compact(EMPTY_NODE, head, EMPTY_NODE);
builder = head.builder();
builder.setChildNode("old", head); // reference to pre-compacted state