public void addRoot(ITreeIndexFrame frame) { treeLevels = frame.getLevel() + 1; rootStats.add(frame); }
private boolean positionToNextLeaf(boolean skipCurrent) throws HyracksDataException { while (frame.getLevel() != 0 || skipCurrent || frame.getTupleCount() == 0) { if (++currentPageId > maxPageId) { break; } releasePage(); ICachedPage nextPage = acquireNextPage(); page = nextPage; frame.setPage(page); tupleIndex = 0; skipCurrent = false; } if (currentPageId <= maxPageId) { return true; } else { return false; } }
public byte getTreeHeight(ITreeIndexFrame frame) throws HyracksDataException { ICachedPage rootNode = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, rootPage), false); rootNode.acquireReadLatch(); try { frame.setPage(rootNode); return frame.getLevel(); } finally { rootNode.releaseReadLatch(); bufferCache.unpin(rootNode); } }
@Override public boolean isEmpty(ITreeIndexFrame frame, int rootPage) throws HyracksDataException { ICachedPage rootNode = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, rootPage), false); rootNode.acquireReadLatch(); try { frame.setPage(rootNode); return frame.getLevel() == 0 && frame.getTupleCount() == 0; } finally { rootNode.releaseReadLatch(); bufferCache.unpin(rootNode); } }
@Override public boolean isEmpty(ITreeIndexFrame frame, int rootPage) throws HyracksDataException { ICachedPage rootNode = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, rootPage), false); rootNode.acquireReadLatch(); try { frame.setPage(rootNode); return frame.getLevel() == 0 && frame.getTupleCount() == 0; } finally { rootNode.releaseReadLatch(); bufferCache.unpin(rootNode); } } }
try { frame.setPage(page); byte level = frame.getLevel(); while (level >= pagesByLevel.size()) { pagesByLevel.add(new IntArrayList(100, 100));
if (frame.getLevel() == 1) {