/** * {@inheritDoc} */ /* no qualifier */void setRevision( long revision ) { transactionManager.getBTreeHeader( getName() ).setRevision( revision ); }
private void injectTuple( BTree<K, V> btree, InMemoryLeaf<K, V> leaf, int leafPos, Tuple<K, V> tuple ) { BTreeFactory.setKey( btree, leaf, leafPos, tuple.getKey() ); ValueHolder<V> valueHolder = new InMemoryValueHolder<V>( btree, tuple.getValue() ); BTreeFactory.setValue( btree, leaf, leafPos, valueHolder ); }
/** * Add a newly closd transaction into the closed transaction queue */ /* no qualifier */<K, V> void releaseTransaction( ReadTransaction<K, V> readTransaction ) { RevisionName revisionName = new RevisionName( readTransaction.getRevision(), readTransaction.getBtreeHeader().getBtree().getName() ); //closedTransactionsQueue.add( revisionName ); }
/* no qualifier */void setRootPage( Page<K, V> root ) { getBTreeHeader( getName() ).setRootPage( root ); }
/** * {@inheritDoc} */ public KeyCursor<K> browseKeys( ReadTransaction<K, K> transaction, ParentPos<K, K>[] stack, int depth ) throws IOException { stack[depth++] = new ParentPos( this, 0 ); Page<K, V> page = children[0].getValue(); return page.browseKeys( transaction, stack, depth ); }
/** * {@inheritDoc} */ /* no qualifier */void setNbElems( long nbElems ) { transactionManager.getBTreeHeader( getName() ).setNbElems( nbElems ); }
/** * @param btreeOffset the B-tree header Offset to set */ /* No qualifier*/void setBtreeHeaderOffset( long btreeHeaderOffset ) { getBTreeHeader( getName() ).setBTreeHeaderOffset( btreeHeaderOffset ); }
/** * @return the rootPageOffset */ /* No qualifier*/long getRootPageOffset() { return getBTreeHeader( getName() ).getRootPageOffset(); }
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 ); } }
/** * @return the btreeOffset */ /* No qualifier*/long getBtreeOffset() { return getBTreeHeader( getName() ).getBTreeHeaderOffset(); }
/** * {@inheritDoc} */ public K getRightMostKey() { int index = ( nbElems + 1 ) - 1; if ( children[index] != null ) { return children[index].getValue().getRightMostKey(); } return children[nbElems - 1].getValue().getRightMostKey(); }
/** * {@inheritDoc} */ public boolean contains( V checkedValue ) { // First, deserialize the value if it's still a byte[] checkAndDeserialize(); return super.contains( checkedValue ); }
/** * {@inheritDoc} */ public Tuple<K, V> findRightMost() throws EndOfFileExceededException, IOException { return children[nbElems].getValue().findRightMost(); }
/** * Update the array of seen pages. */ private static void updateCheckedPages( int[] checkedPages, int pageSize, PageIO... pageIos ) { for ( PageIO pageIO : pageIos ) { long offset = pageIO.getOffset(); setCheckedPage( rm, checkedPages, offset ); } }
/** * Get the current rootPage * * @return The rootPage */ public Page<K, V> getRootPage() { return getBtreeHeader().getRootPage(); }
/** * {@inheritDoc} */ public Tuple<K, V> findLeftMost() throws EndOfFileExceededException, IOException { return children[0].getValue().findLeftMost(); }
/** * {@inheritDoc} */ public K getRightMostKey() { int index = ( nbElems + 1 ) - 1; if ( children[index] != null ) { return children[index].getValue().getRightMostKey(); } return children[nbElems - 1].getValue().getRightMostKey(); }