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:43:04 UTC

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

Author: alexparvulescu
Date: Thu Jun 23 14:43:04 2016
New Revision: 1749907

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

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

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java?rev=1749907&r1=1749906&r2=1749907&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Compactor.java Thu Jun 23 14:43:04 2016
@@ -57,6 +57,14 @@ 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.");
+        }
+    }
+
     private final SegmentReader reader;
 
     private final BlobStore blobStore;
@@ -234,7 +242,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) {