@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 ; } }
mgr.put(rbp) ; Record r = rbp.getRecordBuffer().getHigh() ; r = bpt.getRecordFactory().createKeyOnly(r) ;
@Test public void recBufferPage02() { BlockMgr blkMgr = makeBlockMgr() ; blkMgr.beginUpdate() ; RecordBufferPageMgr rpm = new RecordBufferPageMgr(factory, blkMgr) ; int x = -99 ; { RecordBufferPage page1 = rpm.create() ; fill(page1.getRecordBuffer(), 10, 20, 30) ; x = page1.getId() ; rpm.put(page1) ; page1 = null ; } blkMgr.endUpdate() ; blkMgr.beginRead() ; { RecordBufferPage page2 = rpm.getRead(x) ; assertEquals(10, get(page2, 0)) ; assertEquals(20, get(page2, 1)) ; assertEquals(30, get(page2, 2)) ; rpm.release(page2) ; } blkMgr.endRead() ; }
@Test public void recBufferPage02() { BlockMgr blkMgr = makeBlockMgr() ; blkMgr.beginUpdate() ; RecordBufferPageMgr rpm = new RecordBufferPageMgr(factory, blkMgr) ; int x = -99 ; { RecordBufferPage page1 = rpm.create() ; fill(page1.getRecordBuffer(), 10, 20, 30) ; x = page1.getId() ; rpm.put(page1) ; page1 = null ; } blkMgr.endUpdate() ; blkMgr.beginRead() ; { RecordBufferPage page2 = rpm.getRead(x) ; assertEquals(10, get(page2, 0)) ; assertEquals(20, get(page2, 1)) ; assertEquals(30, get(page2, 2)) ; rpm.release(page2) ; } blkMgr.endRead() ; }