private BTreeHeader<K, V> getBTreeHeader( String name ) { switch ( btreeType ) { case PERSISTED_SUB: return getBtreeHeader(); case BTREE_OF_BTREES: return recordManager.getNewBTreeHeader( RecordManager.BTREE_OF_BTREES_NAME ); case COPIED_PAGES_BTREE: return recordManager.getNewBTreeHeader( RecordManager.COPIED_PAGE_BTREE_NAME ); default: return recordManager.getBTreeHeader( name ); } }
private BTreeHeader<K, V> getNewBTreeHeader( String name ) { if ( btreeType == BTreeTypeEnum.PERSISTED_SUB ) { return getBtreeHeader(); } BTreeHeader<K, V> btreeHeader = recordManager.getNewBTreeHeader( getName() ); return btreeHeader; }
/** * Add a new <btree, revision> tuple into the B-tree of B-trees. * * @param name The B-tree name * @param revision The B-tree revision * @param btreeHeaderOffset The B-tree offset * @throws IOException If the update failed */ /* no qualifier */<K, V> void addInBtreeOfBtrees( String name, long revision, long btreeHeaderOffset ) throws IOException { checkOffset( btreeHeaderOffset ); NameRevision nameRevision = new NameRevision( name, revision ); btreeOfBtrees.insert( nameRevision, btreeHeaderOffset ); // Update the B-tree of B-trees offset currentBtreeOfBtreesOffset = getNewBTreeHeader( BTREE_OF_BTREES_NAME ).getBTreeHeaderOffset(); }