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 2014/05/08 11:32:40 UTC
svn commit: r1593219 -
/directory/mavibot/branches/with-txns/mavibot/src/main/java/org/apache/directory/mavibot/btree/MavibotInspector.java
Author: elecharny
Date: Thu May 8 09:32:39 2014
New Revision: 1593219
URL: http://svn.apache.org/r1593219
Log:
o Added support for sub-btree check.
o commented the copiedPagesBtree check, as we have some issue with it atm (seems like the longArray serializer is not working as expected)
Modified:
directory/mavibot/branches/with-txns/mavibot/src/main/java/org/apache/directory/mavibot/btree/MavibotInspector.java
Modified: directory/mavibot/branches/with-txns/mavibot/src/main/java/org/apache/directory/mavibot/btree/MavibotInspector.java
URL: http://svn.apache.org/viewvc/directory/mavibot/branches/with-txns/mavibot/src/main/java/org/apache/directory/mavibot/btree/MavibotInspector.java?rev=1593219&r1=1593218&r2=1593219&view=diff
==============================================================================
--- directory/mavibot/branches/with-txns/mavibot/src/main/java/org/apache/directory/mavibot/btree/MavibotInspector.java (original)
+++ directory/mavibot/branches/with-txns/mavibot/src/main/java/org/apache/directory/mavibot/btree/MavibotInspector.java Thu May 8 09:32:39 2014
@@ -341,7 +341,7 @@ public class MavibotInspector
checkBtreeOfBtrees( recordManager, checkedPages );
// And the Copied Pages BTree
- checkBtree( recordManager, currentCopiedPagesBtreeOffset, checkedPages );
+ //checkBtree( recordManager, currentCopiedPagesBtreeOffset, checkedPages );
// We can now dump the checked pages
dumpCheckedPages( recordManager, checkedPages );
@@ -548,6 +548,14 @@ public class MavibotInspector
// Update the checkedPages
int[] checkedPagesArray = checkedPages.get( btreeName );
+
+ if ( checkedPagesArray == null )
+ {
+ // Add the new name in the checkedPage name if it's not already there
+ checkedPagesArray = createPageArray( recordManager );
+ checkedPages.put( btreeName, checkedPagesArray );
+ }
+
updateCheckedPages( checkedPagesArray, recordManager.pageSize, btreeInfoPagesIos );
updateCheckedPages( checkedPages.get( GLOBAL_PAGES_NAME ), recordManager.pageSize, btreeInfoPagesIos );
@@ -738,14 +746,30 @@ public class MavibotInspector
if ( nbValues < 0 )
{
- // process the sub-btree
+ // This is a sub-btree. Read the offset
+ long subBtreeOffset = byteBuffer.getLong();
+
+ // And process the sub-btree
+ checkBtree( recordManager, subBtreeOffset, checkedPages );
// Now, process the key
+ // The key length
+ byteBuffer.getInt();
+
+ // The key itself
btreeInfo.keySerializer.deserialize( byteBuffer );
}
else
{
- // Nothing to do...
+ // just deserialize the keys and values
+ // The value
+ int valueLength = byteBuffer.getInt();
+ btreeInfo.valueSerializer.deserialize( byteBuffer );
+
+ // the key
+ int keyLength = byteBuffer.getInt();
+
+ btreeInfo.keySerializer.deserialize( byteBuffer );
}
}
catch ( BufferUnderflowException bue )
@@ -1016,28 +1040,28 @@ public class MavibotInspector
int[] globalArray = checkedPages.get( GLOBAL_PAGES_NAME );
String result = dumpPageArray( recordManager, globalArray );
- String dump = String.format( "%1$-18s : %2$s", GLOBAL_PAGES_NAME, result );
+ String dump = String.format( "%1$-40s : %2$s", GLOBAL_PAGES_NAME, result );
System.out.println( dump );
// The free pages array
int[] freePagesArray = checkedPages.get( FREE_PAGES_NAME );
result = dumpPageArray( recordManager, freePagesArray );
- dump = String.format( "%1$-18s : %2$s", FREE_PAGES_NAME, result );
+ dump = String.format( "%1$-40s : %2$s", FREE_PAGES_NAME, result );
System.out.println( dump );
// The B-tree of B-trees pages array
int[] btreeOfBtreesArray = checkedPages.get( RecordManager.BTREE_OF_BTREES_NAME );
result = dumpPageArray( recordManager, btreeOfBtreesArray );
- dump = String.format( "%1$-18s : %2$s", RecordManager.BTREE_OF_BTREES_NAME, result );
+ dump = String.format( "%1$-40s : %2$s", RecordManager.BTREE_OF_BTREES_NAME, result );
System.out.println( dump );
// The Copied page B-tree pages array
int[] copiedPagesArray = checkedPages.get( RecordManager.COPIED_PAGE_BTREE_NAME );
result = dumpPageArray( recordManager, copiedPagesArray );
- dump = String.format( "%1$-18s : %2$s", RecordManager.COPIED_PAGE_BTREE_NAME, result );
+ dump = String.format( "%1$-40s : %2$s", RecordManager.COPIED_PAGE_BTREE_NAME, result );
System.out.println( dump );
// And now, all the other btree arrays
@@ -1052,7 +1076,7 @@ public class MavibotInspector
int[] btreePagesArray = checkedPages.get( btreeName );
result = dumpPageArray( recordManager, btreePagesArray );
- dump = String.format( "%1$-18s : %2$s", btreeName, result );
+ dump = String.format( "%1$-40s : %2$s", btreeName, result );
System.out.println( dump );
}
}
@@ -1253,19 +1277,38 @@ public class MavibotInspector
File f = new File( "/tmp/mavibotispector.db" );
RecordManager rm = new RecordManager( f.getAbsolutePath() );
- String name = "corpus";
-
- if ( !rm.getManagedTrees().contains( name ) )
+ String name1 = "corpus";
+ String name2 = "multiValues";
+ /*
+ if ( !rm.getManagedTrees().contains( name1 ) )
{
- rm.addBTree( name, StringSerializer.INSTANCE, StringSerializer.INSTANCE, true );
+ rm.addBTree( name1, StringSerializer.INSTANCE, StringSerializer.INSTANCE, true );
+ }
+ */
+ if ( !rm.getManagedTrees().contains( name2 ) )
+ {
+ rm.addBTree( name2, StringSerializer.INSTANCE, StringSerializer.INSTANCE, true );
}
-
- BTree<String, String> btree = rm.getManagedTree( name );
+ /*
+ // Load some elements in the single value btree
+ BTree<String, String> btree1 = rm.getManagedTree( name1 );
for ( int i = 0; i < 10; i++ )
{
- btree.insert( "" + i, "" + i );
+ btree1.insert( Integer.toString( i ), Integer.toString( i ) );
+ }
+ */
+
+ // Load some elements in the multi value btree
+ BTree<String, String> btree2 = rm.getManagedTree( name2 );
+
+ for ( int i = 0; i < 1; i++ )
+ {
+ for ( int j = 0; j < 10; j++)
+ {
+ btree2.insert( Integer.toString( i ), Integer.toString( j ) );
+ }
}
rm.close();