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;
+ }
+
}