@Override public BlockMgr getBlockMgr() { return bpTree.getRecordsMgr().getBlockMgr() ; }
@Override public BlockMgr getBlockMgr() { return bpTree.getRecordsMgr().getBlockMgr() ; }
@Override public void sync() { if ( nodeManager.getBlockMgr() != null ) nodeManager.getBlockMgr().sync() ; if ( recordsMgr.getBlockMgr() != null ) recordsMgr.getBlockMgr().sync() ; }
@Override public void sync() { if ( nodeManager.getBlockMgr() != null ) nodeManager.getBlockMgr().sync() ; if ( recordsMgr.getBlockMgr() != null ) recordsMgr.getBlockMgr().sync() ; }
/** Debugging */ public static BPlusTree addTracking(BPlusTree bpTree) { BufferChannel mgrRoot = null ; BlockMgr mgr1 = bpTree.getNodeManager().getBlockMgr() ; BlockMgr mgr2 = bpTree.getRecordsMgr().getBlockMgr() ; mgr1 = BlockTracker.track(mgr1) ; mgr2 = BlockTracker.track(mgr2) ; return BPlusTreeFactory.rebuild(bpTree, mgrRoot, mgr1, mgr2) ; }
/** Debugging */ public static BPlusTree addLogging(BPlusTree bpTree) { BufferChannel mgrRoot = null ; BlockMgr mgr1 = bpTree.getNodeManager().getBlockMgr() ; BlockMgr mgr2 = bpTree.getRecordsMgr().getBlockMgr() ; mgr1 = new BlockMgrLogger(mgr1, false) ; mgr2 = new BlockMgrLogger(mgr2, false) ; return BPlusTreeFactory.rebuild(bpTree, mgrRoot, mgr1, mgr2) ; }
/** Debugging */ public static BPlusTree addLogging(BPlusTree bpTree) { BufferChannel mgrRoot = null ; BlockMgr mgr1 = bpTree.getNodeManager().getBlockMgr() ; BlockMgr mgr2 = bpTree.getRecordsMgr().getBlockMgr() ; mgr1 = new BlockMgrLogger(mgr1, false) ; mgr2 = new BlockMgrLogger(mgr2, false) ; return BPlusTreeFactory.rebuild(bpTree, mgrRoot, mgr1, mgr2) ; }
/** Debugging */ public static BPlusTree addTracking(BPlusTree bpTree) { BufferChannel mgrRoot = null ; BlockMgr mgr1 = bpTree.getNodeManager().getBlockMgr() ; BlockMgr mgr2 = bpTree.getRecordsMgr().getBlockMgr() ; mgr1 = BlockTracker.track(mgr1) ; mgr2 = BlockTracker.track(mgr2) ; return BPlusTreeFactory.rebuild(bpTree, mgrRoot, mgr1, mgr2) ; }
if ( nodeManager.getBlockMgr().isEmpty() != recordsMgr.getBlockMgr().isEmpty() ) throw new BPTreeException( "Node block manager empty = "+nodeManager.getBlockMgr().isEmpty()+ " // "+ "Records block manager empty = "+recordsMgr.getBlockMgr().isEmpty()) ; recordsMgr.getBlockMgr().sync() ; return rootIdx ;
if ( nodeManager.getBlockMgr().isEmpty() != recordsMgr.getBlockMgr().isEmpty() ) throw new BPTreeException( "Node block manager empty = "+nodeManager.getBlockMgr().isEmpty()+ " // "+ "Records block manager empty = "+recordsMgr.getBlockMgr().isEmpty()) ; recordsMgr.getBlockMgr().sync() ; return rootIdx ;
@Override protected ByteBuffer _commitPrepare(TxnId txnId, BptTxnState state) { nodeManager.getBlockMgr().sync(); recordsMgr.getBlockMgr().sync(); long nodeLimit = nodeManager.allocLimit() ; long recordsLimit = recordsMgr.allocLimit() ; // But don't write it yet. stateManager.setState(state.getRoot(), nodeLimit, recordsLimit); return stateManager.getState() ; }
@Override final boolean promote() { if ( bprRecordsMgr.isWritable(getId()) ) return false ; // reset() will be called if necessary. boolean promoteInPlace = (bpTree == null) ? true : bpTree.state().modifiableRecordsBlock(getId()) ; if ( promoteInPlace ) { bprRecordsMgr.promoteInPlace(this) ; if ( getBackingBlock().isReadOnly() ) bprRecordsMgr.getBlockMgr().promote(getBackingBlock()) ; return false ; } else { Block oldBlock = getBackingBlock() ; boolean b = bprRecordsMgr.promoteDuplicate(this) ; if ( b ) bprRecordsMgr.getBlockMgr().release(oldBlock) ; return b ; } }
@Override protected ByteBuffer _commitPrepare(TxnId txnId, BptTxnState state) { nodeManager.getBlockMgr().sync(); recordsMgr.getBlockMgr().sync(); long nodeLimit = nodeManager.allocLimit() ; long recordsLimit = recordsMgr.allocLimit() ; // But don't write it yet. stateManager.setState(state.getRoot(), nodeLimit, recordsLimit); return stateManager.getState() ; }
@Override final boolean promote() { if ( bprRecordsMgr.isWritable(getId()) ) return false ; // reset() will be called if necessary. boolean promoteInPlace = (bpTree == null) ? true : bpTree.state().modifiableRecordsBlock(getId()) ; if ( promoteInPlace ) { bprRecordsMgr.promoteInPlace(this) ; if ( getBackingBlock().isReadOnly() ) bprRecordsMgr.getBlockMgr().promote(getBackingBlock()) ; return false ; } else { Block oldBlock = getBackingBlock() ; boolean b = bprRecordsMgr.promoteDuplicate(this) ; if ( b ) bprRecordsMgr.getBlockMgr().release(oldBlock) ; return b ; } }
if ( !bpTree.getRecordsMgr().getBlockMgr().valid(ptrs.get(i)) ) BPT.error("Node: %d: Dangling ptr (records) in block @%d :: %s", id, i, this) ; } else {
if ( !bpTree.getRecordsMgr().getBlockMgr().valid(ptrs.get(i)) ) BPT.error("Node: %d: Dangling ptr (records) in block @%d :: %s", id, i, this) ; } else {