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/10/24 16:22:02 UTC
svn commit: r1766430 - in /jackrabbit/oak/trunk/oak-segment-tar/src:
main/java/org/apache/jackrabbit/oak/backup/impl/
main/java/org/apache/jackrabbit/oak/segment/
main/java/org/apache/jackrabbit/oak/segment/compaction/
main/java/org/apache/jackrabbit/o...
Author: mduerig
Date: Mon Oct 24 16:22:02 2016
New Revision: 1766430
URL: http://svn.apache.org/viewvc?rev=1766430&view=rev
Log:
OAK-4990: SegmentBufferWriter should not depend on SegmentTracker
Replace dependency on SegmentTracker with a supplier for the segment number
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreBackupImpl.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterPool.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriterBuilder.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/compaction/SegmentRevisionGCMBean.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/test/java/org/apache/jackrabbit/oak/segment/RecordTest.java
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreBackupImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreBackupImpl.java?rev=1766430&r1=1766429&r2=1766430&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreBackupImpl.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreBackupImpl.java Mon Oct 24 16:22:02 2016
@@ -69,7 +69,7 @@ public class FileStoreBackupImpl impleme
int gen = current.getRecordId().getSegmentId().getGcGeneration();
SegmentBufferWriter bufferWriter = new SegmentBufferWriter(
backup,
- backup.getTracker(),
+ backup.getTracker().getSegmentCounter(),
backup.getReader(),
"b",
gen
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java?rev=1766430&r1=1766429&r2=1766430&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/backup/impl/FileStoreRestoreImpl.java Mon Oct 24 16:22:02 2016
@@ -63,7 +63,7 @@ public class FileStoreRestoreImpl implem
int gen = head.getRecordId().getSegmentId().getGcGeneration();
SegmentBufferWriter bufferWriter = new SegmentBufferWriter(
store,
- store.getTracker(),
+ store.getTracker().getSegmentCounter(),
store.getReader(),
"r",
gen
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java?rev=1766430&r1=1766429&r2=1766430&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java Mon Oct 24 16:22:02 2016
@@ -43,6 +43,7 @@ import java.util.Set;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
+import com.google.common.base.Supplier;
import org.apache.jackrabbit.oak.segment.RecordNumbers.Entry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -115,7 +116,7 @@ public class SegmentBufferWriter impleme
private final SegmentStore store;
@Nonnull
- private final SegmentTracker tracker;
+ private final Supplier<Integer> segmentCounter;
@Nonnull
private final SegmentReader reader;
@@ -157,12 +158,12 @@ public class SegmentBufferWriter impleme
private boolean dirty;
public SegmentBufferWriter(@Nonnull SegmentStore store,
- @Nonnull SegmentTracker tracker,
+ @Nonnull Supplier<Integer> segmentCounter,
@Nonnull SegmentReader reader,
@CheckForNull String wid,
int generation) {
this.store = checkNotNull(store);
- this.tracker = checkNotNull(tracker);
+ this.segmentCounter = checkNotNull(segmentCounter);
this.reader = checkNotNull(reader);
this.wid = (wid == null
? "w-" + identityHashCode(this)
@@ -214,7 +215,7 @@ public class SegmentBufferWriter impleme
String metaInfo =
"{\"wid\":\"" + wid + '"' +
- ",\"sno\":" + tracker.getSegmentCount() +
+ ",\"sno\":" + segmentCounter.get() +
",\"t\":" + currentTimeMillis() + "}";
try {
segment = new Segment(store, reader, buffer, recordNumbers, segmentReferences, metaInfo);
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterPool.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterPool.java?rev=1766430&r1=1766429&r2=1766430&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterPool.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterPool.java Mon Oct 24 16:22:02 2016
@@ -191,7 +191,7 @@ public class SegmentBufferWriterPool imp
if (writer == null) {
writer = new SegmentBufferWriter(
store,
- tracker,
+ tracker.getSegmentCounter(),
reader,
getWriterId(wid),
gcGeneration.get()
@@ -200,7 +200,7 @@ public class SegmentBufferWriterPool imp
disposed.add(writer);
writer = new SegmentBufferWriter(
store,
- tracker,
+ tracker.getSegmentCounter(),
reader,
getWriterId(wid),
gcGeneration.get()
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java?rev=1766430&r1=1766429&r2=1766430&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java Mon Oct 24 16:22:02 2016
@@ -27,6 +27,8 @@ import java.util.concurrent.atomic.Atomi
import javax.annotation.Nonnull;
+import com.google.common.base.Supplier;
+
/**
* Tracker of references to segment identifiers and segment instances
* that are currently kept in memory and factory for creating {@link SegmentId}
@@ -77,8 +79,13 @@ public class SegmentTracker {
* Number of segment tracked since this tracker was instantiated
* @return count
*/
- int getSegmentCount() {
- return segmentCounter.get();
+ public Supplier<Integer> getSegmentCounter() {
+ return new Supplier<Integer>() {
+ @Override
+ public Integer get() {
+ return segmentCounter.get();
+ }
+ };
}
/**
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriterBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriterBuilder.java?rev=1766430&r1=1766429&r2=1766430&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriterBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriterBuilder.java Mon Oct 24 16:22:02 2016
@@ -193,7 +193,7 @@ public final class SegmentWriterBuilder
} else {
return new SegmentBufferWriter(
store,
- store.getTracker(),
+ store.getTracker().getSegmentCounter(),
store.getReader(),
name,
generation.get()
@@ -214,7 +214,7 @@ public final class SegmentWriterBuilder
} else {
return new SegmentBufferWriter(
store,
- store.getTracker(),
+ store.getTracker().getSegmentCounter(),
store.getReader(),
name,
generation.get()
@@ -235,7 +235,7 @@ public final class SegmentWriterBuilder
} else {
return new SegmentBufferWriter(
store,
- store.getTracker(),
+ store.getTracker().getSegmentCounter(),
store.getReader(),
name,
generation.get()
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/compaction/SegmentRevisionGCMBean.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/compaction/SegmentRevisionGCMBean.java?rev=1766430&r1=1766429&r2=1766430&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/compaction/SegmentRevisionGCMBean.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/compaction/SegmentRevisionGCMBean.java Mon Oct 24 16:22:02 2016
@@ -21,8 +21,6 @@ package org.apache.jackrabbit.oak.segmen
import static com.google.common.base.Preconditions.checkNotNull;
-import java.io.IOException;
-
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
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=1766430&r1=1766429&r2=1766430&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 Oct 24 16:22:02 2016
@@ -838,7 +838,8 @@ public class FileStore extends AbstractF
SegmentNodeState before = getHead();
final int newGeneration = getGcGeneration() + 1;
- SegmentBufferWriter bufferWriter = new SegmentBufferWriter(FileStore.this, tracker, segmentReader, "c", newGeneration);
+ SegmentBufferWriter bufferWriter = new SegmentBufferWriter(
+ FileStore.this, tracker.getSegmentCounter(), segmentReader, "c", newGeneration);
Supplier<Boolean> cancel = new CancelCompactionSupplier(FileStore.this);
SegmentNodeState after = compact(bufferWriter, before, cancel);
if (after == null) {
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordTest.java?rev=1766430&r1=1766429&r2=1766430&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordTest.java Mon Oct 24 16:22:02 2016
@@ -436,7 +436,7 @@ public class RecordTest {
NodeBuilder builder = EMPTY_NODE.builder();
SegmentBufferWriter bufferWriter = new SegmentBufferWriter(
store,
- store.getTracker(),
+ store.getTracker().getSegmentCounter(),
store.getReader(),
"test",
0