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/02/21 18:19:13 UTC

svn commit: r1448727 - /jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java

Author: jukka
Date: Thu Feb 21 17:19:13 2013
New Revision: 1448727

URL: http://svn.apache.org/r1448727
Log:
OAK-632: SegmentMK: Efficient updates of flat nodes

Add a flat node size check to verify that the whole node doesn't need to be changed

Modified:
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java?rev=1448727&r1=1448726&r2=1448727&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentSizeTest.java Thu Feb 21 17:19:13 2013
@@ -142,6 +142,30 @@ public class SegmentSizeTest {
         assertEquals(136, getAmortizedSize(builder));
     }
 
+    @Test
+    public void testFlatNodeUpdate() {
+        SegmentStore store = new MemoryStore();
+        SegmentReader reader = new SegmentReader(store);
+        SegmentWriter writer = new SegmentWriter(store, reader);
+
+        NodeBuilder builder = MemoryNodeState.EMPTY_NODE.builder();
+        for (int i = 0; i < 1000; i++) {
+            builder.child("child" + i);
+        }
+
+        RecordId id = writer.writeNode(builder.getNodeState());
+        writer.flush();
+        Segment segment = store.readSegment(id.getSegmentId());
+        assertEquals(26040, segment.getData().length);
+
+        builder = new SegmentNodeState(reader, id).builder();
+        builder.child("child1000");
+        id = writer.writeNode(builder.getNodeState());
+        writer.flush();
+        segment = store.readSegment(id.getSegmentId());
+        assertEquals(576, segment.getData().length);
+    }
+
     private int getSize(NodeBuilder builder) {
         SegmentStore store = new MemoryStore();
         SegmentWriter writer = new SegmentWriter(store, new SegmentReader(store));