protected void addLevel() throws HyracksDataException { NodeFrontier frontier = new NodeFrontier(tupleWriter.createTupleReference()); frontier.page = bufferCache.confiscatePage(IBufferCache.INVALID_DPID); frontier.pageId = -1; frontier.lastTuple.setFieldCount(cmp.getKeyFieldCount()); interiorFrame.setPage(frontier.page); interiorFrame.initBuffer((byte) nodeFrontiers.size()); nodeFrontiers.add(frontier); }
@Override public void init(ITreeIndexFrameFactory interiorFrameFactory, ITreeIndexFrameFactory leafFrameFactory) throws HyracksDataException { currentPageId.set(1); ICachedPage page = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, 0), true); page.acquireWriteLatch(); page.releaseWriteLatch(false); bufferCache.unpin(page); page = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, currentPageId.get()), true); if (leafFrameFactory != null) { page.acquireWriteLatch(); ITreeIndexFrame leafFrame = leafFrameFactory.createFrame(); leafFrame.setPage(page); leafFrame.initBuffer((byte) 0); page.releaseWriteLatch(true); } bufferCache.unpin(page); }
public AbstractTreeIndexBulkLoader(float fillFactor) throws HyracksDataException { leafFrame = leafFrameFactory.createFrame(); interiorFrame = interiorFrameFactory.createFrame(); metaFrame = freePageManager.createMetadataFrame(); queue = bufferCache.createFIFOQueue(); if (!isEmptyTree(leafFrame)) { throw HyracksDataException.create(ErrorCode.CANNOT_BULK_LOAD_NON_EMPTY_TREE); } this.cmp = MultiComparator.create(cmpFactories); leafFrame.setMultiComparator(cmp); interiorFrame.setMultiComparator(cmp); tupleWriter = leafFrame.getTupleWriter(); NodeFrontier leafFrontier = new NodeFrontier(leafFrame.createTupleReference()); leafFrontier.pageId = freePageManager.takePage(metaFrame); leafFrontier.page = bufferCache.confiscatePage(BufferedFileHandle.getDiskPageId(fileId, leafFrontier.pageId)); interiorFrame.setPage(leafFrontier.page); interiorFrame.initBuffer((byte) 0); interiorMaxBytes = (int) (interiorFrame.getBuffer().capacity() * fillFactor); leafFrame.setPage(leafFrontier.page); leafFrame.initBuffer((byte) 0); leafMaxBytes = (int) (leafFrame.getBuffer().capacity() * fillFactor); slotSize = leafFrame.getSlotSize(); nodeFrontiers.add(leafFrontier); pagesToWrite = new ArrayList<>(); compressedPageWriter = bufferCache.getCompressedPageWriter(fileId); }
.confiscatePage(BufferedFileHandle.getDiskPageId(getFileId(), leafFrontier.pageId)); leafFrame.setPage(leafFrontier.page); leafFrame.initBuffer((byte) 0);
interiorFrame.initBuffer((byte) level);
leafFrame.initBuffer((byte) 0); ((IBTreeLeafFrame) leafFrame).setLargeFlag(true); } else { leafFrontier.page = bufferCache.confiscatePage(dpid); leafFrame.setPage(leafFrontier.page); leafFrame.initBuffer((byte) 0);
frontier.page = bufferCache.confiscatePage(BufferCache.INVALID_DPID); interiorFrame.setPage(frontier.page); interiorFrame.initBuffer((byte) level);
ITreeIndexFrame leafFrame = leafFrameFactory.createFrame(); leafFrame.setPage(rootNode); leafFrame.initBuffer((byte) 0); } finally { rootNode.releaseWriteLatch(true);