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 2016/06/23 14:36:39 UTC

svn commit: r1749899 - /jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java

Author: alexparvulescu
Date: Thu Jun 23 14:36:39 2016
New Revision: 1749899

URL: http://svn.apache.org/viewvc?rev=1749899&view=rev
Log:
OAK-4493 Offline compaction persisted mode
 - fix for segmentmk

Modified:
    jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java

Modified: jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java?rev=1749899&r1=1749898&r2=1749899&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java (original)
+++ jackrabbit/oak/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/Compactor.java Thu Jun 23 14:36:39 2016
@@ -56,6 +56,15 @@ public class Compactor {
     /** Logger instance */
     private static final Logger log = LoggerFactory.getLogger(Compactor.class);
 
+    private static boolean eagerFlush = Boolean
+            .getBoolean("oak.compaction.eagerFlush");
+
+    static {
+        if (eagerFlush) {
+            log.debug("Eager flush enabled.");
+        }
+    }
+
     /**
      * Locks down the RecordId persistence structure
      */
@@ -245,7 +254,12 @@ public class Compactor {
 
             progress.onNode();
             try {
-                NodeBuilder child = EMPTY_NODE.builder();
+                NodeBuilder child;
+                if (eagerFlush) {
+                    child = builder.setChildNode(name);
+                } else {
+                    child = EMPTY_NODE.builder();
+                }
                 boolean success =  new CompactDiff(child, path, name).diff(EMPTY_NODE, after);
                 if (success) {
                     SegmentNodeState state = writer.writeNode(child.getNodeState());