int fileId = bufferCache.openFile(fileRef); treeIndexStats.begin(); int maxPageId = freePageManager.getMaxPageId(metaFrame); for (int pageId = 0; pageId <= maxPageId; pageId++) { ICachedPage page = bufferCache.pin(BufferedFileHandle.getDiskPageId(fileId, pageId), false);
private void diskOrderScan(ITreeIndexCursor icursor, RTreeOpContext ctx) throws HyracksDataException { TreeIndexDiskOrderScanCursor cursor = (TreeIndexDiskOrderScanCursor) icursor; ctx.reset(); MultiComparator cmp = MultiComparator.create(cmpFactories); SearchPredicate searchPred = new SearchPredicate(null, cmp); int currentPageId = bulkloadLeafStart; int maxPageId = freePageManager.getMaxPageId(ctx.getMetaFrame()); ICachedPage page = bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), currentPageId), false); page.acquireReadLatch(); try { cursor.setBufferCache(bufferCache); cursor.setFileId(getFileId()); cursor.setCurrentPageId(currentPageId); cursor.setMaxPageId(maxPageId); ctx.getCursorInitialState().setOriginialKeyComparator(ctx.getCmp()); ctx.getCursorInitialState().setPage(page); cursor.open(ctx.getCursorInitialState(), searchPred); } catch (Exception e) { page.releaseReadLatch(); bufferCache.unpin(page); throw HyracksDataException.create(e); } }
private void diskOrderScan(ITreeIndexCursor icursor, BTreeOpContext ctx) throws HyracksDataException { TreeIndexDiskOrderScanCursor cursor = (TreeIndexDiskOrderScanCursor) icursor; ctx.reset(); RangePredicate diskOrderScanPred = new RangePredicate(null, null, true, true, ctx.getCmp(), ctx.getCmp()); int maxPageId = freePageManager.getMaxPageId(ctx.getMetaFrame()); int currentPageId = bulkloadLeafStart; ICachedPage page = bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), currentPageId), false); try { cursor.setBufferCache(bufferCache); cursor.setFileId(getFileId()); cursor.setCurrentPageId(currentPageId); cursor.setMaxPageId(maxPageId); ctx.getCursorInitialState().setPage(page); ctx.getCursorInitialState().setSearchOperationCallback(ctx.getSearchCallback()); ctx.getCursorInitialState().setOriginialKeyComparator(ctx.getCmp()); cursor.open(ctx.getCursorInitialState(), diskOrderScanPred); } catch (Exception e) { bufferCache.unpin(page); throw HyracksDataException.create(e); } }
private void diskOrderScan(ITreeIndexCursor icursor, BTreeOpContext ctx) throws HyracksDataException { TreeIndexDiskOrderScanCursor cursor = (TreeIndexDiskOrderScanCursor) icursor; ctx.reset(); RangePredicate diskOrderScanPred = new RangePredicate(null, null, true, true, ctx.getCmp(), ctx.getCmp()); int maxPageId = freePageManager.getMaxPageId(ctx.getMetaFrame()); int currentPageId = bulkloadLeafStart; ICachedPage page = bufferCache.pin(BufferedFileHandle.getDiskPageId(getFileId(), currentPageId), false); page.acquireReadLatch(); try { cursor.setBufferCache(bufferCache); cursor.setFileId(getFileId()); cursor.setCurrentPageId(currentPageId); cursor.setMaxPageId(maxPageId); ctx.getCursorInitialState().setPage(page); ctx.getCursorInitialState().setSearchOperationCallback(ctx.getSearchCallback()); ctx.getCursorInitialState().setOriginialKeyComparator(ctx.getCmp()); cursor.open(ctx.getCursorInitialState(), diskOrderScanPred); } catch (Exception e) { page.releaseReadLatch(); bufferCache.unpin(page); throw HyracksDataException.create(e); } }