protected void propagateBulk(int level, List<ICachedPage> pagesToWrite) throws HyracksDataException { if (splitKey.getBuffer() == null) { return; interiorFrame.setPage(frontier.page); ITupleReference tuple = splitKey.getTuple(); int tupleBytes = tupleWriter.bytesRequired(tuple, 0, cmp.getKeyFieldCount()); int spaceNeeded = tupleBytes + slotSize + 4; if (spaceUsed + spaceNeeded > interiorMaxBytes) { ISplitKey copyKey = splitKey.duplicate(leafFrame.getTupleWriter().createTupleReference()); tuple = copyKey.getTuple(); splitKey.initData(splitKeySize); tupleWriter.writeTupleFields(frontier.lastTuple, 0, cmp.getKeyFieldCount(), splitKey.getBuffer().array(), 0); splitKey.getTuple().resetByTupleOffset(splitKey.getBuffer().array(), 0); frontier.page.setDiskPageId(BufferedFileHandle.getDiskPageId(getFileId(), finalPageId)); pagesToWrite.add(frontier.page); splitKey.setLeftPage(finalPageId);
splitKey.initData(splitKeySize); tupleWriter.writeTupleFields(leafFrontier.lastTuple, 0, cmp.getKeyFieldCount(), splitKey.getBuffer().array(), 0); splitKey.getTuple().resetByTupleOffset(splitKey.getBuffer().array(), 0); splitKey.setLeftPage(leafFrontier.pageId); splitKey.setRightPage(leafFrontier.pageId);
int splitKeySize = tupleWriter.bytesRequired(frameTuple, 0, keyValueProviders.length); splitKey.initData(splitKeySize); leftRTreeFrame.adjustMBR(); rTreeTupleWriterLeftFrame.writeTupleFields(leftRTreeFrame.getMBRTuples(), 0, rTreeSplitKey.getLeftPageBuffer(),
public BTreeBulkLoader(float fillFactor, boolean verifyInput) throws HyracksDataException { super(fillFactor); this.verifyInput = verifyInput; splitKey = new BTreeSplitKey(leafFrame.getTupleWriter().createTupleReference()); splitKey.getTuple().setFieldCount(cmp.getKeyFieldCount()); }
frameTuple.resetByTupleOffset(buf.array(), tupleOff); int splitKeySize = tupleWriter.bytesRequired(frameTuple, 0, cmp.getKeyFieldCount()); splitKey.initData(splitKeySize); tupleWriter.writeTupleFields(frameTuple, 0, cmp.getKeyFieldCount(), splitKey.getBuffer().array(), 0); splitKey.getTuple().resetByTupleOffset(splitKey.getBuffer().array(), 0);
int splitKeySize = tupleWriter.bytesRequired(frameTuple, 0, keyValueProviders.length); splitKey.initData(splitKeySize); leftRTreeFrame.adjustMBR(); rTreeTupleWriterleftRTreeFrame.writeTupleFields(leftRTreeFrame.getMBRTuples(), 0,
ISplitKey savedSplitKey = splitKey.duplicate(tupleWriter.createTupleReference()); frameTuple.resetByTupleOffset(buf.array(), tupleOff); int splitKeySize = tupleWriter.bytesRequired(frameTuple, 0, cmp.getKeyFieldCount()); splitKey.initData(splitKeySize); tupleWriter.writeTuple(frameTuple, splitKey.getBuffer(), 0); splitKey.getTuple().resetByTupleOffset(splitKey.getBuffer().array(), 0); targetTupleIndex = ((BTreeNSMInteriorFrame) targetFrame).findInsertTupleIndex(savedSplitKey.getTuple()); targetFrame.insert(savedSplitKey.getTuple(), targetTupleIndex);