@Override public void resizePage(ICachedPage page, int multiplier, IExtraPageBlockHelper extraPageBlockHelper) throws HyracksDataException { bufferCache.resizePage(page, multiplier, extraPageBlockHelper); }
private void growCapacity(IExtraPageBlockHelper extraPageBlockHelper, IBufferCache bufferCache, int deltaPages) throws HyracksDataException { int framePagesOld = page.getFrameSizeMultiplier(); int newMultiplier = framePagesOld + deltaPages; // we need to get the old slot offsets before we grow int oldSlotEnd = slotManager.getSlotEndOff(); int oldSlotStart = slotManager.getSlotStartOff() + slotManager.getSlotSize(); bufferCache.resizePage(getPage(), newMultiplier, extraPageBlockHelper); buf = getPage().getBuffer(); // fixup the slots System.arraycopy(buf.array(), oldSlotEnd, buf.array(), slotManager.getSlotEndOff(), oldSlotStart - oldSlotEnd); // fixup total free space counter buf.putInt(TOTAL_FREE_SPACE_OFFSET, buf.getInt(TOTAL_FREE_SPACE_OFFSET) + (bufferCache.getPageSize() * deltaPages)); }
boolean largePage = false; if (leftNode.getBuffer().capacity() > newLeftNode.getBuffer().capacity()) { bufferCache.resizePage(newLeftNode, leftNode.getBuffer().capacity() / bufferCache.getPageSize(), ctx); largePage = true; bufferCache.resizePage(leftNode, 1, ctx); ctx.getInteriorFrame().setPage(leftNode); ctx.getInteriorFrame().setLargeFlag(false);