@Override public void doDestroy() throws HyracksDataException { if (readLatched) { page.releaseReadLatch(); bufferCache.unpin(page); readLatched = false; } tupleIndex = 0; tupleIndexInc = 0; page = null; pathList = null; }
@Override public ICachedPage confiscateLargePage(long dpid, int multiplier, int extraBlockPageId) throws HyracksDataException { ICachedPage cachedPage = confiscatePage(dpid, multiplier); ((ICachedPageInternal) cachedPage).setExtraBlockPageId(extraBlockPageId); return cachedPage; }
protected void releasePage() throws HyracksDataException { if (exclusiveLatchNodes) { page.releaseWriteLatch(isPageDirty); } else { page.releaseReadLatch(); } bufferCache.unpin(page); }
public static IBufferCache getBufferCache(IIOManager ioManager) { if (bufferCache != null) { return bufferCache; } ICacheMemoryAllocator allocator = new HeapBufferAllocator(); IPageReplacementStrategy prs = new ClockPageReplacementStrategy(allocator, pageSize, numPages); IFileMapProvider fileMapProvider = getFileMapProvider(); bufferCache = new BufferCache(ioManager, prs, new DelayPageCleanerPolicy(1000), (IFileMapManager) fileMapProvider, maxOpenFiles, threadFactory); return bufferCache; } }
public synchronized void unpinAllPages() throws HyracksDataException { if (pinCount == 1) { for (int i = 0; i < numPages; i++) { bufferCache.unpin(pages[i]); } pagesPinned = false; } pinCount--; }
@Override public void setPage(ICachedPage page) { this.page = page; this.buf = page.getBuffer(); }
public BloomFilter(IBufferCache bufferCache, FileReference file, int[] keyFields) throws HyracksDataException { this.bufferCache = bufferCache; this.file = file; this.keyFields = keyFields; this.numBitsPerPage = bufferCache.getPageSize() * Byte.SIZE; this.numBlocksPerPage = this.numBitsPerPage / NUM_BITS_PER_BLOCK; }
private ICachedPageInternal allocatePage(int multiplier) { Integer cpId = cpIdFreeList.poll(); if (cpId == null) { cpId = cpIdCounter.getAndIncrement(); } CachedPage cPage = new CachedPage(cpId, allocator.allocate(pageSize * multiplier, 1)[0], this); cPage.setFrameSizeMultiplier(multiplier); bufferCache.addPage(cPage); numPages.getAndAdd(multiplier); return cPage; }
/** * Write the CachedPage into disk * * @param cPage * CachedPage in {@link BufferCache} * @throws HyracksDataException */ public void write(CachedPage cPage) throws HyracksDataException { final int totalPages = cPage.getFrameSizeMultiplier(); final int extraBlockPageId = cPage.getExtraBlockPageId(); final BufferCacheHeaderHelper header = checkoutHeaderHelper(); write(cPage, header, totalPages, extraBlockPageId); }
@Override public void abort() throws HyracksDataException { for (ICachedPage p : pages) { if (p != null) { bufferCache.returnPage(p, false); } } if (metaDataPage != null) { bufferCache.returnPage(metaDataPage, false); } } }
@Override public ByteBuffer[] ensureAvailabilityThenAllocate(int pageSize, int numPages) throws HyracksDataException { reserveAllocation(pageSize, numPages); return allocate(pageSize, numPages); }
@Override public void resizePage(ICachedPage page, int multiplier, IExtraPageBlockHelper extraPageBlockHelper) throws HyracksDataException { bufferCache.resizePage(page, multiplier, extraPageBlockHelper); }
@Override public ICachedPage confiscateLargePage(long dpid, int multiplier, int extraBlockPageId) throws HyracksDataException { return bufferCache.confiscateLargePage(dpid, multiplier, extraBlockPageId); }
protected final BufferCacheHeaderHelper checkoutHeaderHelper() { BufferCacheHeaderHelper helper = headerPageCache.poll(); if (helper == null) { helper = new BufferCacheHeaderHelper(bufferCache.getPageSize()); } return helper; }
@Override public void flush(ICachedPage page) throws HyracksDataException { // Assumes the caller has pinned the page. cleanerThread.cleanPage((CachedPage) page, true); }
private void releasePage() throws HyracksDataException { if (exclusiveLatchNodes) { page.releaseWriteLatch(isPageDirty); } else { page.releaseReadLatch(); } bufferCache.unpin(page); }
protected void releasePage() throws HyracksDataException { if (page != null) { page.releaseReadLatch(); bufferCache.unpin(page); page = null; } }
private void unpinPage(ICachedPage page) throws HyracksDataException { if (confiscatedPage == null) { bufferCache.unpin(page); } }
@Override public void unloadPages() throws HyracksDataException { if (pinned) { bufferCache.unpin(page); pinned = false; } }