@Override public void initBuffer(byte level) { super.initBuffer(level); buf.putInt(RIGHT_LEAF_OFFSET, -1); }
public int getFreeContiguousSpace() { return buf.capacity() - getFreeSpaceOff() - (getTupleCount() * slotManager.getSlotSize()); }
@Override public int getMaxTupleSize(int pageSize) { return (pageSize - getPageHeaderSize()) / 2; }
@Override public void initBuffer(byte level) { buf.putLong(PAGE_LSN_OFFSET, 0); // TODO: might to set to a different lsn // during creation buf.putInt(Constants.TUPLE_COUNT_OFFSET, 0); resetSpaceParams(); buf.put(Constants.LEVEL_OFFSET, level); buf.put(FLAG_OFFSET, (byte) 0); }
public ITupleReference getRightmostTuple() { int tupleCount = getTupleCount(); if (tupleCount == 0) { return null; } else { frameTuple.resetByTupleIndex(this, tupleCount - 1); return frameTuple; } } }
@Override public String printHeader() { StringBuilder strBuilder = new StringBuilder(super.printHeader()); strBuilder.append("nextLeafOff: " + NEXT_LEAF_OFFSET + "\n"); return strBuilder.toString(); } }
@Override public FrameOpSpaceStatus hasSpaceUpdate(ITupleReference newTuple, int oldTupleIndex) { frameTuple.resetByTupleIndex(this, oldTupleIndex); int oldTupleBytes = frameTuple.getTupleSize(); int newTupleBytes = tupleWriter.bytesRequired(newTuple); return hasSpaceUpdate(oldTupleBytes, newTupleBytes); }
@Override public FrameOpSpaceStatus hasSpaceInsert(ITupleReference tuple) throws HyracksDataException { int tupleSize = getBytesRequiredToWriteTuple(tuple); if (isLargeTuple(tupleSize)) { // when do we want to overload this frame instead of creating a new one? // If we have fewer than two tuples in the frame, grow the current page return getTupleCount() < 2 ? FrameOpSpaceStatus.EXPAND : FrameOpSpaceStatus.INSUFFICIENT_SPACE; } else { return super.hasSpaceInsert(tuple); } }
@Override public boolean compact() { resetSpaceParams(); int tupleCount = buf.getInt(Constants.TUPLE_COUNT_OFFSET); int freeSpace = buf.getInt(Constants.FREE_SPACE_OFFSET);
public ITupleReference getLeftmostTuple() { int tupleCount = getTupleCount(); if (tupleCount == 0) { return null; } else { frameTuple.resetByTupleIndex(this, 0); return frameTuple; } }
@Override public void initBuffer(byte level) { super.initBuffer(level); buf.putInt(NEXT_LEAF_OFFSET, -1); }
protected void resetSpaceParams() { buf.putInt(Constants.FREE_SPACE_OFFSET, getPageHeaderSize()); buf.putInt(TOTAL_FREE_SPACE_OFFSET, buf.capacity() - getPageHeaderSize()); }
@Override public void initBuffer(byte level) { super.initBuffer(level); buf.putLong(PAGE_NSN_OFFSET, 0); buf.putInt(RIGHT_PAGE_OFFSET, -1); }