Author: mduerig
Date: Fri Apr 22 14:34:39 2016
New Revision: 1740531
URL: http://svn.apache.org/viewvc?rev=1740531&view=rev
Log:
OAK-4277: Finalise de-duplication caches
Update issue references in FIXME tags to point to point to this issue
Modified:
jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java
jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java
jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
Modified:
jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java?rev=1740531&r1=1740530&r2=1740531&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java
Fri Apr 22 14:34:39 2016
@@ -38,14 +38,13 @@ import com.google.common.base.Suppliers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * FIXME OAK-3348 document
- */
-// FIXME OAK-3348 implement monitoring for this cache
-// FIXME OAK-3348 unit test
+// FIXME OAK-4277: Finalise de-duplication caches
+// implement monitoring for this cache
+// add unit tests
public class RecordCache<T> {
private static final Logger LOG =
LoggerFactory.getLogger(RecordCache.class);
- // FIXME OAK-3348 make this a feature flag
+ // FIXME OAK-4277: Finalise de-duplication caches
+ // make this configurable
private static final int RETENTION_THRESHOLD = 1;
private final ConcurrentMap<Integer, Supplier<Cache<T>>> generations =
newConcurrentMap();
@@ -170,7 +169,8 @@ public class RecordCache<T> {
@Override
public synchronized void put(T key, RecordId value, int cost) {
- // FIXME OAK-3348 Validate and optimise the eviction strategy.
+ // FIXME OAK-4277: Finalise de-duplication caches
+ // Validate and optimise the eviction strategy.
// Nodes with many children should probably get a boost to
// protecting them from preemptive eviction. Also it might be
// necessary to implement pinning (e.g. for checkpoints).
Modified:
jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java?rev=1740531&r1=1740530&r2=1740531&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/SegmentWriter.java
Fri Apr 22 14:34:39 2016
@@ -114,7 +114,8 @@ public class SegmentWriter {
private final RecordCache<String> nodeCache;
- // FIXME OAK-3348 Do we need a deduplication cache also for binaries?
+ // FIXME OAK-4277: Finalise de-duplication caches
+ // Do we need a deduplication cache also for binaries?
// Probably/preferably not as long binaries are already de-duplicated
// by rewriting its list of block ids and because we should recommend
// using a data store for big binaries.
@@ -145,11 +146,13 @@ public class SegmentWriter {
this(store, version, writeOperationHandler, new RecordCache<String>());
}
- // FIXME OAK-3348 There should be a cleaner way for adding the cached
nodes from the compactor
+ // FIXME OAK-4277: Finalise de-duplication caches
+ // There should be a cleaner way for adding the cached nodes from the
compactor
public void addCachedNodes(int generation, Cache<String> cache) {
nodeCache.put(cache, generation);
- // FIXME OAK-3348 find a better way to evict the cache from within the
cache itself
+ // FIXME OAK-4277: Finalise de-duplication caches
+ // Find a better way to evict the cache from within the cache itself
stringCache.clearUpTo(generation - 1);
templateCache.clearUpTo(generation - 1);
nodeCache.clearUpTo(generation - 1);
Modified:
jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java?rev=1740531&r1=1740530&r2=1740531&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-next/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
Fri Apr 22 14:34:39 2016
@@ -1015,7 +1015,8 @@ public class FileStore implements Segmen
gcMonitor.info("TarMK GC #{}: compaction started, strategy={}",
gcCount, compactionStrategy);
Stopwatch watch = Stopwatch.createStarted();
- // FIXME OAK-3348 Make the capacity and initial depth of the
deduplication cache configurable
+ // FIXME OAK-4277: Finalise de-duplication caches
+ // Make the capacity and initial depth of the deduplication cache
configurable
final DeduplicationCache<String> nodeCache = new
DeduplicationCache<String>(1000000, 20);
// FIXME OAK-3348 this way of compacting has not progress logging and
cannot be cancelled