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 ju...@apache.org on 2013/09/23 22:23:06 UTC

svn commit: r1525683 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment: SegmentNodeState.java SegmentRootBuilder.java

Author: jukka
Date: Mon Sep 23 20:23:06 2013
New Revision: 1525683

URL: http://svn.apache.org/r1525683
Log:
OAK-1036: SegmentMK: Auto-flushing SegmentNodeBuilder

Add auto-flushing to SegmentRootBuilder.

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentRootBuilder.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java?rev=1525683&r1=1525682&r2=1525683&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentNodeState.java Mon Sep 23 20:23:06 2013
@@ -131,7 +131,7 @@ public class SegmentNodeState extends Ab
 
     @Override @Nonnull
     public NodeBuilder builder() {
-        return new SegmentRootBuilder(this);
+        return new SegmentRootBuilder(this, store);
     }
 
     @Override

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentRootBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentRootBuilder.java?rev=1525683&r1=1525682&r2=1525683&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentRootBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/SegmentRootBuilder.java Mon Sep 23 20:23:06 2013
@@ -25,19 +25,30 @@ class SegmentRootBuilder extends Segment
     private static final int UPDATE_LIMIT =
             Integer.getInteger("update.limit", 1000);
 
+    private final SegmentWriter writer;
+
     private long updateCount = 0;
 
-    SegmentRootBuilder(SegmentNodeState base) {
+    SegmentRootBuilder(SegmentNodeState base, SegmentStore store) {
         super(base);
+        this.writer = new SegmentWriter(store);
     }
 
     @Override
     protected void updated() {
         updateCount++;
         if (updateCount > UPDATE_LIMIT) {
-            // TODO: flush
-            updateCount = 0;
+            getNodeState();
         }
     }
 
+    @Override
+    public SegmentNodeState getNodeState() {
+        SegmentNodeState state = writer.writeNode(super.getNodeState());
+        writer.flush();
+        set(state);
+        updateCount = 0;
+        return state;
+    }
+
 }