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/05/23 11:55:14 UTC
svn commit: r1745162 - in
/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment:
Segment.java SegmentTracker.java
Author: mduerig
Date: Mon May 23 11:55:14 2016
New Revision: 1745162
URL: http://svn.apache.org/viewvc?rev=1745162&view=rev
Log:
OAK-4394: Remove deprecated string cache
Remove the old and deprecated strings cache
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentTracker.java
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java?rev=1745162&r1=1745161&r2=1745162&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Segment.java Mon May 23 11:55:14 2016
@@ -144,16 +144,6 @@ public class Segment {
*/
private final SegmentId[] refids;
- /**
- * String records read from segment. Used to avoid duplicate
- * copies and repeated parsing of the same strings.
- *
- * @deprecated Superseded by {@link #stringCache} unless
- * {@link SegmentTracker#DISABLE_STRING_CACHE} is {@code true}.
- */
- @Deprecated
- private final ConcurrentMap<Integer, String> strings;
-
private final Function<Integer, String> loadString = new Function<Integer, String>() {
@Nullable
@Override
@@ -163,7 +153,7 @@ public class Segment {
};
/**
- * Cache for string records or {@code null} if {@link #strings} is used for caching
+ * Cache for string records
*/
private final StringCache stringCache;
@@ -213,13 +203,8 @@ public class Segment {
Preconditions.checkArgument(isValid(version));
this.tracker = checkNotNull(tracker);
this.id = checkNotNull(id);
- if (tracker.getStringCache() == null) {
- strings = newConcurrentMap();
- stringCache = null;
- } else {
- strings = null;
- stringCache = tracker.getStringCache();
- }
+
+ stringCache = tracker.getStringCache();
if (DISABLE_TEMPLATE_CACHE) {
templates = null;
} else {
@@ -264,13 +249,7 @@ public class Segment {
this.tracker = checkNotNull(tracker);
this.id = tracker.newDataSegmentId();
this.info = info;
- if (tracker.getStringCache() == null) {
- strings = newConcurrentMap();
- stringCache = null;
- } else {
- strings = null;
- stringCache = tracker.getStringCache();
- }
+ stringCache = tracker.getStringCache();
if (DISABLE_TEMPLATE_CACHE) {
templates = null;
} else {
@@ -520,18 +499,9 @@ public class Segment {
}
private String readString(int offset) {
- if (stringCache != null) {
- long msb = id.getMostSignificantBits();
- long lsb = id.getLeastSignificantBits();
- return stringCache.getString(msb, lsb, offset, loadString);
- } else {
- String string = strings.get(offset);
- if (string == null) {
- string = loadString(offset);
- strings.putIfAbsent(offset, string); // only keep the first copy
- }
- return string;
- }
+ long msb = id.getMostSignificantBits();
+ long lsb = id.getLeastSignificantBits();
+ return stringCache.getString(msb, lsb, offset, loadString);
}
private String loadString(int offset) {
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=1745162&r1=1745161&r2=1745162&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 May 23 11:55:14 2016
@@ -20,7 +20,7 @@ package org.apache.jackrabbit.oak.segmen
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.collect.Sets.newHashSet;
-import static java.lang.Boolean.getBoolean;
+import static java.lang.Long.getLong;
import java.security.SecureRandom;
import java.util.Set;
@@ -51,12 +51,6 @@ public class SegmentTracker {
private static final Logger log =
LoggerFactory.getLogger(SegmentTracker.class);
- /**
- * Disable the {@link #stringCache} if {@code true} and fall back to
- * the previous {@link Segment#strings} caching mechanism.
- */
- private static final boolean DISABLE_STRING_CACHE = getBoolean("oak.segment.disableStringCache");
-
static final String STRING_CACHE_SIZE = "oak.segment.stringCache";
private static final long MSB_MASK = ~(0xfL << 12);
@@ -118,14 +112,7 @@ public class SegmentTracker {
this.store = store;
this.writer = new SegmentWriter(store, version,
new SegmentBufferWriterPool(store, version, "sys"));
- StringCache c;
- if (DISABLE_STRING_CACHE) {
- c = null;
- } else {
- long cache = Long.getLong(STRING_CACHE_SIZE, (long) cacheSizeMB);
- c = new StringCache(cache * MB);
- }
- stringCache = c;
+ stringCache = new StringCache(getLong(STRING_CACHE_SIZE, (long) cacheSizeMB) * MB);
segmentCache = CacheLIRS.<SegmentId, Segment>newBuilder()
.module("SegmentTracker")
.maximumWeight((long) cacheSizeMB * MB)
@@ -168,9 +155,7 @@ public class SegmentTracker {
@CheckForNull
public CacheStats getStringCacheStats() {
- return stringCache == null
- ? null
- : stringCache.getStats();
+ return stringCache.getStats();
}
public SegmentWriter getWriter() {
@@ -186,9 +171,7 @@ public class SegmentTracker {
*/
public synchronized void clearCache() {
segmentCache.invalidateAll();
- if (stringCache != null) {
- stringCache.clear();
- }
+ stringCache.clear();
}
/**