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 2015/05/12 09:49:36 UTC
svn commit: r1678889 - in /jackrabbit/oak/branches/1.2: ./
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/
oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oa...
Author: alexparvulescu
Date: Tue May 12 07:49:36 2015
New Revision: 1678889
URL: http://svn.apache.org/r1678889
Log:
OAK-2861 TARMK Cold Standby better binary decoding
- reverted too eager merge
Modified:
jackrabbit/oak/branches/1.2/ (props changed)
jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentTracker.java
jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java
jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClient.java
jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/codec/ReplyDecoder.java
jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/store/StandbyStore.java
jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/store/StandbyStoreService.java
Propchange: jackrabbit/oak/branches/1.2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue May 12 07:49:36 2015
@@ -1,3 +1,3 @@
/jackrabbit/oak/branches/1.0:1665962
-/jackrabbit/oak/trunk:1672350,1672468,1672537,1672603,1672642,1672644,1672834-1672835,1673351,1673410,1673414,1673436,1673644,1673662-1673664,1673669,1673695,1674046,1674065,1674075,1674107,1674228,1674880,1675055,1675332,1675354,1675357,1675593,1676198,1676237,1676407,1676458,1676539,1676670,1676725,1677939,1678173,1678758
+/jackrabbit/oak/trunk:1672350,1672468,1672537,1672603,1672642,1672644,1672834-1672835,1673351,1673410,1673414,1673436,1673644,1673662-1673664,1673669,1673695,1674046,1674065,1674075,1674107,1674228,1674880,1675055,1675332,1675354,1675357,1675593,1676198,1676237,1676407,1676458,1676539,1676670,1676725,1677939,1678173
/jackrabbit/trunk:1345480
Modified: jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentTracker.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentTracker.java?rev=1678889&r1=1678888&r2=1678889&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentTracker.java (original)
+++ jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentTracker.java Tue May 12 07:49:36 2015
@@ -19,6 +19,7 @@ package org.apache.jackrabbit.oak.plugin
import static com.google.common.collect.Lists.newLinkedList;
import static com.google.common.collect.Queues.newArrayDeque;
import static com.google.common.collect.Sets.newHashSet;
+import static com.google.common.collect.Sets.newIdentityHashSet;
import java.security.SecureRandom;
import java.util.LinkedList;
@@ -28,6 +29,7 @@ import java.util.concurrent.atomic.Atomi
import javax.annotation.Nonnull;
+import com.google.common.collect.Sets;
import org.apache.jackrabbit.oak.plugins.blob.ReferenceCollector;
import org.apache.jackrabbit.oak.plugins.segment.compaction.CompactionStrategy;
import org.slf4j.Logger;
@@ -254,9 +256,4 @@ public class SegmentTracker {
}
}
- public synchronized void clearCache() {
- segments.clear();
- currentSize = 0;
- }
-
}
Modified: jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java?rev=1678889&r1=1678888&r2=1678889&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java (original)
+++ jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java Tue May 12 07:49:36 2015
@@ -651,10 +651,7 @@ public class FileStore implements Segmen
id.getMostSignificantBits(),
id.getLeastSignificantBits()));
}
- gcMonitor.info("getReferencedSegmentIds {}", ids);
-
writer.cleanup(ids);
- gcMonitor.info("collectReferences {}", ids);
CompactionMap cm = tracker.getCompactionMap();
List<TarReader> list = newArrayListWithCapacity(readers.size());
Modified: jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClient.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClient.java?rev=1678889&r1=1678888&r2=1678889&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClient.java (original)
+++ jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClient.java Tue May 12 07:49:36 2015
@@ -43,7 +43,6 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.jackrabbit.oak.plugins.segment.SegmentStore;
-import org.apache.jackrabbit.oak.plugins.segment.SegmentStoreProvider;
import org.apache.jackrabbit.oak.plugins.segment.standby.codec.RecordIdDecoder;
import org.apache.jackrabbit.oak.plugins.segment.standby.jmx.ClientStandbyStatusMBean;
import org.apache.jackrabbit.oak.plugins.segment.standby.jmx.StandbyStatusMBean;
@@ -88,10 +87,10 @@ public final class StandbyClient impleme
public StandbyClient(String host, int port, SegmentStore store,
boolean secure, int readTimeoutMs) throws SSLException {
- this(host, port, store, null, secure, readTimeoutMs, false);
+ this(host, port, store, secure, readTimeoutMs, false);
}
- public StandbyClient(String host, int port, SegmentStore store, SegmentStoreProvider storeProvider,
+ public StandbyClient(String host, int port, SegmentStore store,
boolean secure, int readTimeoutMs, boolean autoClean)
throws SSLException {
this.state = STATUS_INITIALIZING;
@@ -104,7 +103,7 @@ public final class StandbyClient impleme
}
this.readTimeoutMs = readTimeoutMs;
this.autoClean = autoClean;
- this.store = new StandbyStore(store, storeProvider);
+ this.store = new StandbyStore(store);
String s = System.getProperty(CLIENT_ID_PROPERTY_NAME);
this.observer = new CommunicationObserver((s == null || s.length() == 0) ? UUID.randomUUID().toString() : s);
Modified: jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/codec/ReplyDecoder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/codec/ReplyDecoder.java?rev=1678889&r1=1678888&r2=1678889&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/codec/ReplyDecoder.java (original)
+++ jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/codec/ReplyDecoder.java Tue May 12 07:49:36 2015
@@ -113,18 +113,8 @@ public class ReplyDecoder extends Replay
long msb = in.readLong();
long lsb = in.readLong();
long hash = in.readLong();
-
- // #readBytes throws a 'REPLAY' exception if there are not enough bytes
- // available for reading
- ByteBuf data = in.readBytes(len - 25);
- byte[] segment;
- if (data.hasArray()) {
- segment = data.array();
- } else {
- segment = new byte[len - 25];
- in.readBytes(segment);
- }
-
+ byte[] segment = new byte[len - 25];
+ in.readBytes(segment);
Hasher hasher = Hashing.murmur3_32().newHasher();
long check = hasher.putBytes(segment).hash().padToLong();
if (hash == check) {
@@ -145,17 +135,8 @@ public class ReplyDecoder extends Replay
String id = new String(bid, Charset.forName("UTF-8"));
long hash = in.readLong();
- // #readBytes throws a 'REPLAY' exception if there are not enough bytes
- // available for reading
- ByteBuf data = in.readBytes(length);
- byte[] blob;
- if (data.hasArray()) {
- blob = data.array();
- } else {
- blob = new byte[length];
- data.readBytes(blob);
- }
-
+ byte[] blob = new byte[length];
+ in.readBytes(blob);
Hasher hasher = Hashing.murmur3_32().newHasher();
long check = hasher.putBytes(blob).hash().padToLong();
if (hash == check) {
Modified: jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/store/StandbyStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/store/StandbyStore.java?rev=1678889&r1=1678888&r2=1678889&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/store/StandbyStore.java (original)
+++ jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/store/StandbyStore.java Tue May 12 07:49:36 2015
@@ -33,11 +33,9 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.segment.SegmentId;
import org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState;
import org.apache.jackrabbit.oak.plugins.segment.SegmentStore;
-import org.apache.jackrabbit.oak.plugins.segment.SegmentStoreProvider;
import org.apache.jackrabbit.oak.plugins.segment.SegmentTracker;
import org.apache.jackrabbit.oak.plugins.segment.file.FileStore;
import org.apache.jackrabbit.oak.spi.blob.BlobStore;
-import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -49,14 +47,10 @@ public class StandbyStore implements Seg
private final SegmentStore delegate;
- private final SegmentStoreProvider storeProvider;
-
private RemoteSegmentLoader loader;
- public StandbyStore(SegmentStore delegate,
- SegmentStoreProvider storeProvider) {
+ public StandbyStore(SegmentStore delegate) {
this.delegate = delegate;
- this.storeProvider = storeProvider;
}
@Override
@@ -246,38 +240,10 @@ public class StandbyStore implements Seg
return -1;
}
- private void refreshStoreProviderRoot() {
- if (storeProvider != null && storeProvider instanceof NodeStore) {
- int i = 0;
- SegmentNodeState root = null;
- while (!delegate.getHead().equals(root) && i < 50) {
- root = (SegmentNodeState) ((NodeStore) storeProvider).getRoot();
- i++;
- }
- log.debug(
- "#refreshStoreProviderRoot called, refreshed {} time(s).",
- i);
- } else {
- log.debug("#refreshStoreProviderRoot ignored {}", storeProvider);
- }
- }
-
public void cleanup() {
if (delegate instanceof FileStore) {
try {
- FileStore store = (FileStore) delegate;
-
- store.getTracker().clearCache();
- store.getTracker().getWriter().dropCache();
- store.getTracker().getWriter().flush();
-
- tracker.clearCache();
- tracker.getWriter().dropCache();
- tracker.getWriter().flush();
-
- refreshStoreProviderRoot();
-
- store.cleanup();
+ ((FileStore) delegate).cleanup();
} catch (IOException e) {
log.error("Error running cleanup", e);
}
Modified: jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/store/StandbyStoreService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/store/StandbyStoreService.java?rev=1678889&r1=1678888&r2=1678889&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/store/StandbyStoreService.java (original)
+++ jackrabbit/oak/branches/1.2/oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/store/StandbyStoreService.java Tue May 12 07:49:36 2015
@@ -150,7 +150,7 @@ public class StandbyStoreService {
int readTimeout = PropertiesUtil.toInteger(props.get(READ_TIMEOUT), READ_TIMEOUT_DEFAULT);
boolean clean = PropertiesUtil.toBoolean(props.get(AUTO_CLEAN), AUTO_CLEAN_DEFAULT);
- sync = new StandbyClient(host, port, segmentStore, storeProvider, secure, readTimeout, clean);
+ sync = new StandbyClient(host, port, segmentStore, secure, readTimeout, clean);
Dictionary<Object, Object> dictionary = new Hashtable<Object, Object>();
dictionary.put("scheduler.period", interval);
dictionary.put("scheduler.concurrent", false);