You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2013/09/09 10:24:29 UTC

svn commit: r1520990 - /directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java

Author: elecharny
Date: Mon Sep  9 08:24:28 2013
New Revision: 1520990

URL: http://svn.apache.org/r1520990
Log:
Added some counters

Modified:
    directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java

Modified: directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java?rev=1520990&r1=1520989&r2=1520990&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java (original)
+++ directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/RecordManager.java Mon Sep  9 08:24:28 2013
@@ -82,6 +82,9 @@ public class RecordManager
     public AtomicLong nbFreedPages = new AtomicLong( 0 );
     public AtomicLong nbCreatedPages = new AtomicLong( 0 );
     public AtomicLong nbReusedPages = new AtomicLong( 0 );
+    public AtomicLong nbUpdateRMHeader = new AtomicLong( 0 );
+    public AtomicLong nbUpdateBTreeHeader = new AtomicLong( 0 );
+    public AtomicLong nbUpdatePageIOs = new AtomicLong( 0 );
 
     /** The offset of the end of the file */
     private long endOfFileOffset;
@@ -596,18 +599,18 @@ public class RecordManager
                 if ( btree.isAllowDuplicates() )
                 {
                     byte flag = byteBuffer.get();
-                    
-                    if( flag == 0 )
+
+                    if ( flag == 0 )
                     {
                         V singleValue = btree.getValueSerializer().deserialize( byteBuffer );
                         valueHolder = new MultipleMemoryHolder( btree, singleValue );
                     }
-                    else if( flag == 1 )
+                    else if ( flag == 1 )
                     {
                         long value = OFFSET_SERIALIZER.deserialize( byteBuffer );
-                            
+
                         BTree<K, V> dupValueContainer = loadDupsBTree( value );
-                        
+
                         valueHolder = new MultipleMemoryHolder( btree, dupValueContainer );
                     }
                     else
@@ -1165,20 +1168,21 @@ public class RecordManager
                     {
                         MultipleMemoryHolder<K, V> mvHolder = ( MultipleMemoryHolder<K, V> ) ( ( Leaf<K, V> ) page )
                             .getValue( pos );
-                        if( mvHolder.isSingleValue() )
+                        if ( mvHolder.isSingleValue() )
                         {
                             buffer = btree.getValueSerializer().serialize( mvHolder.getValue( btree ) );
-                            
+
                             //FIXME find a better way to avoid the copying
-                            byte[] tmp = new byte[ buffer.length + 1 ];
+                            byte[] tmp = new byte[buffer.length + 1];
                             tmp[0] = 0; // single value flag
                             System.arraycopy( buffer, 0, tmp, 1, buffer.length );
                             buffer = tmp;
                         }
                         else
                         {
-                            long duplicateContainerOffset = ( ( BTree<K, V> ) mvHolder.getValue( btree ) ).getBtreeOffset();
-                            buffer = new byte[ 8 + 1 ];
+                            long duplicateContainerOffset = ( ( BTree<K, V> ) mvHolder.getValue( btree ) )
+                                .getBtreeOffset();
+                            buffer = new byte[8 + 1];
                             buffer[0] = 1; // sub-tree flag
                             buffer = LongSerializer.serialize( buffer, 1, duplicateContainerOffset );
                         }
@@ -1265,6 +1269,8 @@ public class RecordManager
 
         LOG.debug( "Update RM header, FF : {}, LF : {}", firstFreePage, lastFreePage );
         fileChannel.write( HEADER_BUFFER, 0 );
+
+        nbUpdateRMHeader.incrementAndGet();
     }
 
 
@@ -1306,6 +1312,8 @@ public class RecordManager
 
         flushPages( pageIos );
 
+        nbUpdateBTreeHeader.incrementAndGet();
+
         if ( LOG_CHECK.isDebugEnabled() )
         {
             check();
@@ -1340,6 +1348,8 @@ public class RecordManager
                 //fileChannel.force( false );
             }
 
+            nbUpdatePageIOs.incrementAndGet();
+
             pageIo.getData().rewind();
         }
     }
@@ -1711,6 +1721,7 @@ public class RecordManager
         PageIO[] pageIos = serializePage( btree, newRevision, newPage );
 
         LOG.debug( "Write data for '{}' btree ", btree.getName() );
+
         // Write the page on disk
         flushPages( pageIos );