private PageBlockMgr<? extends BPTreePage> getPageBlockMgr() { if ( isLeaf ) return bpTree.getRecordsMgr() ; else return bpTree.getNodeManager() ; }
@Override public BlockMgr getBlockMgr() { return bpTree.getRecordsMgr().getBlockMgr() ; }
private PageBlockMgr<? extends BPTreePage> getPageBlockMgr() { if ( isLeaf ) return bpTree.getRecordsMgr() ; else return bpTree.getNodeManager() ; }
@Override public BlockMgr getBlockMgr() { return bpTree.getRecordsMgr().getBlockMgr() ; }
/** 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 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) ; }
final RecordBufferPageMgr mgr = bpt.getRecordsMgr().getRecordBufferPageMgr() ; Iterator<RecordBufferPage> iter = new RecordBufferPageLinker(new RecordBufferPagePacker(records, mgr)) ; if ( rebalance ) System.out.println("Before rebalance (data)") ; iter2 = summarizeDataBlocks(iter2, bpt.getRecordsMgr().getRecordBufferPageMgr()) ; iter2 = summarizeDataBlocks(iter2, bpt.getRecordsMgr().getRecordBufferPageMgr()) ;
final RecordBufferPageMgr mgr = bpt.getRecordsMgr().getRecordBufferPageMgr() ; Iterator<RecordBufferPage> iter = new RecordBufferPageLinker(new RecordBufferPagePacker(records, mgr)) ; if ( rebalance ) System.out.println("Before rebalance (data)") ; iter2 = summarizeDataBlocks(iter2, bpt.getRecordsMgr().getRecordBufferPageMgr()) ; iter2 = summarizeDataBlocks(iter2, bpt.getRecordsMgr().getRecordBufferPageMgr()) ;
@Override protected Record rebalance(int id1, Record r1, int id2, Record r2) { RecordBufferPageMgr mgr = bpt.getRecordsMgr().getRecordBufferPageMgr() ; RecordBufferPage page1 = mgr.getWrite(id1) ; RecordBufferPage page2 = mgr.getWrite(id2) ; // Wrong calculatation. for ( int i = page2.getCount() ; i < page1.getMaxSize() / 2 ; i++ ) { // shiftOneup(node1, node2) ; Record r = page1.getRecordBuffer().getHigh() ; page1.getRecordBuffer().removeTop() ; page2.getRecordBuffer().add(0, r) ; } mgr.put(page1) ; mgr.put(page2) ; Record splitPoint = page1.getRecordBuffer().getHigh() ; splitPoint = bpt.getRecordFactory().createKeyOnly(splitPoint) ; // Record splitPoint = node1.maxRecord() ; return splitPoint ; } }
BPlusTree bpt = BPlusTreeFactory.createNonTxn(bptParams, bptState, blkMgrNodes, blkMgrRecords) ; BPTreeRecordsMgr recordsMgr = bpt.getRecordsMgr() ;
@Override protected Record rebalance(int id1, Record r1, int id2, Record r2) { RecordBufferPageMgr mgr = bpt.getRecordsMgr().getRecordBufferPageMgr() ; RecordBufferPage page1 = mgr.getWrite(id1) ; RecordBufferPage page2 = mgr.getWrite(id2) ; // Wrong calculatation. for ( int i = page2.getCount() ; i < page1.getMaxSize() / 2 ; i++ ) { // shiftOneup(node1, node2) ; Record r = page1.getRecordBuffer().getHigh() ; page1.getRecordBuffer().removeTop() ; page2.getRecordBuffer().add(0, r) ; } mgr.put(page1) ; mgr.put(page2) ; Record splitPoint = page1.getRecordBuffer().getHigh() ; splitPoint = bpt.getRecordFactory().createKeyOnly(splitPoint) ; // Record splitPoint = node1.maxRecord() ; return splitPoint ; } }
BPlusTree bpt = BPlusTreeFactory.createNonTxn(bptParams, bptState, blkMgrNodes, blkMgrRecords) ; BPTreeRecordsMgr recordsMgr = bpt.getRecordsMgr() ;
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 {