Author: kayyagari
Date: Sat Jun  8 18:42:35 2013
New Revision: 1491028

URL: http://svn.apache.org/r1491028
Log:
removed the offset btree

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

Modified: 
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/RecordManager.java
URL: 
http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/RecordManager.java?rev=1491028&r1=1491027&r2=1491028&view=diff
==============================================================================
--- 
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/RecordManager.java
 (original)
+++ 
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/RecordManager.java
 Sat Jun  8 18:42:35 2013
@@ -40,7 +40,6 @@ import org.apache.mavibot.btree.serializ
 import org.apache.mavibot.btree.serializer.IntSerializer;
 import org.apache.mavibot.btree.serializer.LongArraySerializer;
 import org.apache.mavibot.btree.serializer.LongSerializer;
-import org.apache.mavibot.btree.serializer.StringSerializer;
 import org.apache.mavibot.btree.util.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -143,10 +142,6 @@ public class RecordManager
 
     private static final String COPIED_PAGE_BTREE_NAME = "_copiedPageBTree_";
 
-    private static final String OFFSET_BTREE_NAME = "_offsetBTree_";
-
-    private BTree<String, Long> offsetBTree;
-
     /** A flag set to true if we want to keep old revisions */
     private boolean keepRevisions;
 
@@ -297,15 +292,11 @@ public class RecordManager
         revisionBTree = new BTree<RevisionName, Long>( REVISION_BTREE_NAME, 
new RevisionNameSerializer(),
             new LongSerializer() );
 
-        offsetBTree = new BTree<String, Long>( OFFSET_BTREE_NAME, new 
StringSerializer(),
-            new LongSerializer() );
-
         // Inject these BTrees into the RecordManager
         try
         {
             manage( copiedPageBTree );
             manage( revisionBTree );
-            manage( offsetBTree );
         }
         catch ( BTreeAlreadyManagedException btame )
         {
@@ -370,30 +361,23 @@ public class RecordManager
             loadBTree( pageIos, revisionBTree );
             nextBtreeOffset = revisionBTree.getNextBTreeOffset();
 
-            pageIos = readPages( nextBtreeOffset, Long.MAX_VALUE );
-
-            offsetBTree = BTreeFactory.createBTree();
-            offsetBTree.setBtreeOffset( nextBtreeOffset );
-
-            loadBTree( pageIos, offsetBTree );
-
             // Then process the next ones
-            //            for ( int i = 2; i < nbBtree; i++ )
-            //            {
-            //                // Create the BTree
-            //                BTree<?, ?> btree = BTreeFactory.createBTree();
-            //                btree.setBtreeOffset( nextBtreeOffset );
-            //
-            //                // Read the associated pages
-            //                pageIos = readPages( nextBtreeOffset, 
Long.MAX_VALUE );
-            //
-            //                // Load the BTree
-            //                loadBTree( pageIos, btree );
-            //                nextBtreeOffset = btree.getNextBTreeOffset();
-            //
-            //                // Store it into the managedBtrees map
-            //                managedBTrees.put( btree.getName(), btree );
-            //            }
+            for ( int i = 2; i < nbBtree; i++ )
+            {
+                // Create the BTree
+                BTree<?, ?> btree = BTreeFactory.createBTree();
+                btree.setBtreeOffset( nextBtreeOffset );
+    
+                // Read the associated pages
+                pageIos = readPages( nextBtreeOffset, Long.MAX_VALUE );
+    
+                // Load the BTree
+                loadBTree( pageIos, btree );
+                nextBtreeOffset = btree.getNextBTreeOffset();
+    
+                // Store it into the managedBtrees map
+                managedBTrees.put( btree.getName(), btree );
+            }
 
             // We are done ! Let's finish with the last initilization parts
             endOfFileOffset = fileChannel.size();
@@ -606,8 +590,22 @@ public class RecordManager
 
                 if ( btree.isAllowDuplicates() )
                 {
-                    String value = StringSerializer.INSTANCE.deserialize( 
byteBuffer );
-                    BTree dupValueContainer = getManagedTree( value );
+                    long value = OFFSET_SERIALIZER.deserialize( byteBuffer );
+                    // And the Revision BTree
+                    pageIos = readPages( value, Long.MAX_VALUE );
+
+                    BTree dupValueContainer = BTreeFactory.createBTree();
+
+                    try
+                    {
+                        loadBTree( pageIos, revisionBTree );
+                    }
+                    catch( Exception e )
+                    {
+                        // should not happen
+                        throw new RuntimeException( e );
+                    }
+
                     valueHolder = new DuplicateKeyMemoryHolder( btree, 
dupValueContainer );
                 }
                 else
@@ -993,8 +991,6 @@ public class RecordManager
 
         lastAddedBTreeOffset = btreeOffset;
 
-        offsetBTree.insert( name, btreeOffset, 0 );
-
         // Last, not least, update the number of managed BTrees in the header
         updateRecordManagerHeader();
     }
@@ -1096,8 +1092,8 @@ public class RecordManager
                     if ( btree.isAllowDuplicates() )
                     {
                         DuplicateKeyMemoryHolder value = ( 
DuplicateKeyMemoryHolder ) ( ( Leaf ) page ).getValue( pos );
-                        String duplicateContainerName = ( ( BTree ) 
value.getValue( btree ) ).getName();
-                        buffer = StringSerializer.INSTANCE.serialize( 
duplicateContainerName );
+                        long duplicateContainerOffset = ( ( BTree ) 
value.getValue( btree ) ).getBtreeOffset();
+                        buffer = OFFSET_SERIALIZER.serialize( 
duplicateContainerOffset );
                     }
                     else
                     {
@@ -1946,7 +1942,7 @@ public class RecordManager
      */
     public int getNbManagedTrees()
     {
-        return nbBtree - 3;
+        return nbBtree - 2;
     }
 
 
@@ -1961,7 +1957,6 @@ public class RecordManager
 
         btrees.remove( COPIED_PAGE_BTREE_NAME );
         btrees.remove( REVISION_BTREE_NAME );
-        btrees.remove( OFFSET_BTREE_NAME );
 
         return btrees;
     }
@@ -1976,14 +1971,12 @@ public class RecordManager
      */
     /* No qualifier */void storeRootPage( BTree btree, Page rootPage ) throws 
IOException
     {
-        if ( ( btree == copiedPageBTree ) || ( btree == revisionBTree ) || ( 
btree == offsetBTree ) )
+        if ( !isKeepRevisions() )
         {
             return;
         }
-
-        offsetBTree.insert( btree.getName(), rootPage.getOffset(), 0 );
-
-        if ( !isKeepRevisions() )
+        
+        if ( ( btree == copiedPageBTree ) || ( btree == revisionBTree ) )
         {
             return;
         }
@@ -2030,46 +2023,7 @@ public class RecordManager
      */
     public BTree getManagedTree( String name )
     {
-        if ( name.startsWith( "1.3.6.1.4.1.18060.0.4.1.2.50" ) )
-        {
-            LOG.debug( "" );
-        }
-
-        BTree tree = managedBTrees.get( name );
-
-        if ( tree == null )
-        {
-            try
-            {
-                if ( !offsetBTree.hasKey( name ) )
-                {
-                    return null;
-                }
-
-                long treeOffset = offsetBTree.get( name );
-
-                // Create the BTree
-                BTree<?, ?> btree = BTreeFactory.createBTree();
-                btree.setBtreeOffset( treeOffset );
-
-                // Read the associated pages
-                PageIO[] pageIos = readPages( treeOffset, Long.MAX_VALUE );
-
-                // Load the BTree
-                loadBTree( pageIos, btree );
-
-                // Store it into the managedBtrees map
-                managedBTrees.put( btree.getName(), btree );
-
-                return btree;
-            }
-            catch ( Exception e )
-            {
-                throw new RuntimeException( e );
-            }
-        }
-
-        return tree;
+        return managedBTrees.get( name );
     }
 
 
@@ -2087,7 +2041,7 @@ public class RecordManager
     /* Package protected */void addFreePages( BTree btree, List<Page> pages ) 
throws EndOfFileExceededException,
         IOException
     {
-        if ( ( btree == copiedPageBTree ) || ( btree == revisionBTree ) || ( 
btree == offsetBTree ) )
+        if ( ( btree == copiedPageBTree ) || ( btree == revisionBTree ) )
         {
             return;
         }
@@ -2237,6 +2191,7 @@ public class RecordManager
         config.setValueSerializer( valueSerializer );
         config.setAllowDuplicates( allowDuplicates );
         config.setType( BTreeTypeEnum.MANAGED );
+        config.setPageSize( 8 );
 
         BTree btree = new BTree( config );
         manage( btree );



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to