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 to...@apache.org on 2017/02/20 11:14:59 UTC
svn commit: r1783743 - in /jackrabbit/oak/branches/1.6/oak-core/src:
main/java/org/apache/jackrabbit/oak/plugins/document/
main/java/org/apache/jackrabbit/oak/plugins/document/mongo/
main/java/org/apache/jackrabbit/oak/plugins/document/util/ test/java/...
Author: tomekr
Date: Mon Feb 20 11:14:58 2017
New Revision: 1783743
URL: http://svn.apache.org/viewvc?rev=1783743&view=rev
Log:
OAK-5703: The replica set info gets invalid cluster id
Modified:
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/RevisionListener.java
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java
jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java
jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java
Modified: jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java?rev=1783743&r1=1783742&r2=1783743&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java (original)
+++ jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java Mon Feb 20 11:14:58 2017
@@ -1048,7 +1048,7 @@ public final class NodeDocument extends
}
if (store instanceof RevisionListener) {
- ((RevisionListener) store).updateAccessedRevision(lastRevision);
+ ((RevisionListener) store).updateAccessedRevision(lastRevision, nodeStore.getClusterId());
}
return new DocumentNodeState(nodeStore, path, readRevision, props, hasChildren(), lastRevision);
Modified: jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/RevisionListener.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/RevisionListener.java?rev=1783743&r1=1783742&r2=1783743&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/RevisionListener.java (original)
+++ jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/RevisionListener.java Mon Feb 20 11:14:58 2017
@@ -22,6 +22,6 @@ package org.apache.jackrabbit.oak.plugin
*/
public interface RevisionListener {
- void updateAccessedRevision(RevisionVector revision);
+ void updateAccessedRevision(RevisionVector revision, int currentClusterId);
}
Modified: jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java?rev=1783743&r1=1783742&r2=1783743&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java (original)
+++ jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java Mon Feb 20 11:14:58 2017
@@ -149,7 +149,7 @@ public class MongoDocumentStore implemen
private RevisionVector mostRecentAccessedRevisions;
- final LocalChanges localChanges;
+ LocalChanges localChanges;
private final long maxReplicationLagMillis;
@@ -249,11 +249,9 @@ public class MongoDocumentStore implemen
localChanges = null;
} else {
replicaInfo = new ReplicaSetInfo(clock, db, builder.getMongoUri(), estimationPullFrequencyMS, maxReplicationLagMillis, builder.getExecutor());
- Thread replicaInfoThread = new Thread(replicaInfo, "MongoDocumentStore replica set info provider (" + builder.getClusterId() + ")");
+ Thread replicaInfoThread = new Thread(replicaInfo, "MongoDocumentStore replica set info provider");
replicaInfoThread.setDaemon(true);
replicaInfoThread.start();
- localChanges = new LocalChanges(builder.getClusterId());
- replicaInfo.addListener(localChanges);
}
// indexes:
@@ -1325,12 +1323,14 @@ public class MongoDocumentStore implemen
NodeDocument cachedDoc = nodesCache.getIfPresent(parentId);
secondarySafe = cachedDoc != null && !cachedDoc.hasBeenModifiedSince(replicationSafeLimit);
}
- } else {
+ } else if (localChanges != null) {
secondarySafe = true;
secondarySafe &= collection == Collection.NODES;
secondarySafe &= documentId == null || !localChanges.mayContain(documentId);
secondarySafe &= parentId == null || !localChanges.mayContainChildrenOf(parentId);
secondarySafe &= mostRecentAccessedRevisions == null || replicaInfo.isMoreRecentThan(mostRecentAccessedRevisions);
+ } else { // localChanges not initialized yet
+ secondarySafe = false;
}
ReadPreference readPreference;
@@ -1666,7 +1666,12 @@ public class MongoDocumentStore implemen
}
@Override
- public synchronized void updateAccessedRevision(RevisionVector revisions) {
+ public synchronized void updateAccessedRevision(RevisionVector revisions, int clusterId) {
+ if (localChanges == null && replicaInfo != null) {
+ localChanges = new LocalChanges(clusterId);
+ replicaInfo.addListener(localChanges);
+ }
+
RevisionVector previousValue = mostRecentAccessedRevisions;
if (mostRecentAccessedRevisions == null) {
mostRecentAccessedRevisions = revisions;
Modified: jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java?rev=1783743&r1=1783742&r2=1783743&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java (original)
+++ jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java Mon Feb 20 11:14:58 2017
@@ -215,9 +215,9 @@ public final class LeaseCheckDocumentSto
}
@Override
- public void updateAccessedRevision(RevisionVector revision) {
+ public void updateAccessedRevision(RevisionVector revision, int currentClusterId) {
if (delegate instanceof RevisionListener) {
- ((RevisionListener) delegate).updateAccessedRevision(revision);
+ ((RevisionListener) delegate).updateAccessedRevision(revision, currentClusterId);
}
}
Modified: jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java?rev=1783743&r1=1783742&r2=1783743&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java (original)
+++ jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java Mon Feb 20 11:14:58 2017
@@ -430,10 +430,10 @@ public class LoggingDocumentStoreWrapper
}
@Override
- public void updateAccessedRevision(RevisionVector revision) {
+ public void updateAccessedRevision(RevisionVector revision, int currentClusterId) {
logMethod("updateAccessedRevision", revision);
if (store instanceof RevisionListener) {
- ((RevisionListener) store).updateAccessedRevision(revision);
+ ((RevisionListener) store).updateAccessedRevision(revision, currentClusterId);
}
}
}
Modified: jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java?rev=1783743&r1=1783742&r2=1783743&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java (original)
+++ jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java Mon Feb 20 11:14:58 2017
@@ -162,9 +162,9 @@ public class SynchronizingDocumentStoreW
}
@Override
- public synchronized void updateAccessedRevision(RevisionVector revision) {
+ public synchronized void updateAccessedRevision(RevisionVector revision, int currentClusterId) {
if (store instanceof RevisionListener) {
- ((RevisionListener) store).updateAccessedRevision(revision);
+ ((RevisionListener) store).updateAccessedRevision(revision, currentClusterId);
}
}
}
Modified: jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java?rev=1783743&r1=1783742&r2=1783743&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java (original)
+++ jackrabbit/oak/branches/1.6/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java Mon Feb 20 11:14:58 2017
@@ -412,11 +412,11 @@ public class TimingDocumentStoreWrapper
}
@Override
- public void updateAccessedRevision(RevisionVector revision) {
+ public void updateAccessedRevision(RevisionVector revision, int currentClusterId) {
try {
long start = now();
if (base instanceof RevisionListener) {
- ((RevisionListener) base).updateAccessedRevision(revision);
+ ((RevisionListener) base).updateAccessedRevision(revision, currentClusterId);
}
updateAndLogTimes("updateAccessedRevision", start, 0, 0);
} catch (Exception e) {
Modified: jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java?rev=1783743&r1=1783742&r2=1783743&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java (original)
+++ jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java Mon Feb 20 11:14:58 2017
@@ -240,9 +240,9 @@ public class CountingDocumentStore imple
}
@Override
- public void updateAccessedRevision(RevisionVector revision) {
+ public void updateAccessedRevision(RevisionVector revision, int currentClusterId) {
if (delegate instanceof RevisionListener) {
- ((RevisionListener) delegate).updateAccessedRevision(revision);
+ ((RevisionListener) delegate).updateAccessedRevision(revision, currentClusterId);
}
}
}
Modified: jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java?rev=1783743&r1=1783742&r2=1783743&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java (original)
+++ jackrabbit/oak/branches/1.6/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java Mon Feb 20 11:14:58 2017
@@ -173,9 +173,9 @@ public class DocumentStoreWrapper implem
}
@Override
- public void updateAccessedRevision(RevisionVector revision) {
+ public void updateAccessedRevision(RevisionVector revision, int currentClusterId) {
if (store instanceof RevisionListener) {
- ((RevisionListener) store).updateAccessedRevision(revision);
+ ((RevisionListener) store).updateAccessedRevision(revision, currentClusterId);
}
}
}