public TreeIndexDiskOrderScanCursor(ITreeIndexFrame frame) { this.frame = frame; this.frameTuple = frame.createTupleReference(); }
public TreeTupleSorter(int fileId, IBinaryComparatorFactory[] comparatorFactories, ITreeIndexFrame leafFrame1, ITreeIndexFrame leafFrame2, IBufferCache bufferCache, int[] comparatorFields) { this.fileId = fileId; this.leafFrame1 = leafFrame1; this.leafFrame2 = leafFrame2; this.bufferCache = bufferCache; this.comparatorFields = comparatorFields; tPointers = new int[INITIAL_SIZE * 2]; frameTuple1 = leafFrame1.createTupleReference(); frameTuple2 = leafFrame2.createTupleReference(); currentTupleIndex = 0; cmp = MultiComparator.create(comparatorFactories); }
public static String printFrameTuples(ITreeIndexFrame frame, ISerializerDeserializer[] fieldSerdes) throws HyracksDataException { StringBuilder strBuilder = new StringBuilder(); ITreeIndexTupleReference tuple = frame.createTupleReference(); for (int i = 0; i < frame.getTupleCount(); i++) { tuple.resetByTupleIndex(frame, i); String tupleString = TupleUtils.printTuple(tuple, fieldSerdes); strBuilder.append(tupleString); if (i != frame.getTupleCount() - 1) { strBuilder.append(" | "); } } return strBuilder.toString(); } }
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); }