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/05/29 14:51:39 UTC
svn commit: r1796637 - in
/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade:
RepositorySidegrade.java nodestate/AbstractDecoratedNodeState.java
Author: tomekr
Date: Mon May 29 14:51:39 2017
New Revision: 1796637
URL: http://svn.apache.org/viewvc?rev=1796637&view=rev
Log:
OAK-6240: Sidegrade support for DocumentNodeStore to Secondary NodeStore
Optimize performance for the AbstractDecoratedNodeState#getProperty().
Don't enable the report wrapper for the previous root.
Modified:
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/nodestate/AbstractDecoratedNodeState.java
Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java?rev=1796637&r1=1796636&r2=1796637&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java Mon May 29 14:51:39 2017
@@ -362,10 +362,13 @@ public class RepositorySidegrade {
LOG.info("Applying diff to {}", checkpoint.getName());
tracePaths = false;
}
+
NodeState currentRoot = wrapSource(checkpointRoot, tracePaths, true);
- currentRoot.compareAgainstBaseState(previousRoot, new ApplyDiff(targetRoot));
+ NodeState baseRoot = previousRoot == EmptyNodeState.EMPTY_NODE ? previousRoot : wrapSource(previousRoot, false, true);
+ currentRoot.compareAgainstBaseState(baseRoot, new ApplyDiff(targetRoot));
+
target.merge(targetRoot, EmptyHook.INSTANCE, CommitInfo.EMPTY);
- previousRoot = currentRoot;
+ previousRoot = checkpointRoot;
Map<String, String> checkpointInfo = source.checkpointInfo(checkpoint.getName());
String newCheckpointName = target.checkpoint(checkpoint.getExpiryTime() - System.currentTimeMillis(), checkpointInfo);
@@ -384,8 +387,10 @@ public class RepositorySidegrade {
LOG.info("Applying diff to head");
tracePaths = false;
}
+
NodeState currentRoot = wrapSource(sourceRoot, tracePaths, true);
- currentRoot.compareAgainstBaseState(previousRoot, new ApplyDiff(targetRoot));
+ NodeState baseRoot = previousRoot == EmptyNodeState.EMPTY_NODE ? previousRoot : wrapSource(previousRoot, false, true);
+ currentRoot.compareAgainstBaseState(baseRoot, new ApplyDiff(targetRoot));
LOG.info("Rewriting checkpoint names in /:async {}", nameToRevision);
NodeBuilder async = targetRoot.getChildNode(":async");
Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/nodestate/AbstractDecoratedNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/nodestate/AbstractDecoratedNodeState.java?rev=1796637&r1=1796636&r2=1796637&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/nodestate/AbstractDecoratedNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/nodestate/AbstractDecoratedNodeState.java Mon May 29 14:51:39 2017
@@ -155,16 +155,16 @@ public abstract class AbstractDecoratedN
@Override
@CheckForNull
public PropertyState getProperty(@Nonnull String name) {
- if (delegate.hasProperty(name)) {
- return decorate(delegate.getProperty(name));
- } else {
+ PropertyState ps = delegate.getProperty(name);
+ if (ps == null) {
for (PropertyState p : getNewPropertyStates()) {
if (name.equals(p.getName())) {
- return p;
+ ps = p;
+ break;
}
}
- return null;
}
+ return ps;
}
@Override