@Override public void purge() throws HyracksDataException { super.purge(); compressedFileManager.close(); bufferCache.closeFile(compressedFileManager.getFileId()); bufferCache.purgeHandle(compressedFileManager.getFileId()); }
@Override public ICachedPage confiscatePage(long dpid) throws HyracksDataException { return confiscatePage(dpid, 1); }
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; } }
cycleCount++; int startCleanedCount = cleanerThread.cleanedCount; ICachedPage page = confiscate ? confiscateInner(dpid, multiplier) : findPageInner(dpid); if (page != null) { masterPinCount.incrementAndGet(); finishQueue(); if (cycleCount > MAX_PIN_ATTEMPT_CYCLES) { cycleCount = 0; // suppress warning below
final BufferedFileHandle fInfo = getOrCreateFileHandle(fileId); closeOpeningFiles(fInfo); removeFileHandle(fileId); throw HyracksDataException.create(e);
@Override public void markAsDeleted() throws HyracksDataException { if (hasBeenOpened()) { bufferCache.deleteFile(compressedFileManager.getFileId()); compressedFileManager = null; } else { bufferCache.deleteFile(lafFileRef); } super.markAsDeleted(); }
@Override public boolean isClean() { List<Long> reachableDpids = new LinkedList<>(); synchronized (cachedPages) { for (ICachedPageInternal internalPage : cachedPages) { CachedPage c = (CachedPage) internalPage; if (c.confiscated() || c.latch.getReadLockCount() != 0 || c.latch.getWriteHoldCount() != 0) { return false; } if (c.valid) { reachableDpids.add(c.dpid); } } } for (Long l : reachableDpids) { if (!canFindValidCachedPage(l)) { return false; } } return true; }
public static void createFile(BufferCache bufferCache, FileReference fileRef) throws HyracksDataException { IoUtil.create(fileRef); if (fileRef.isCompressed()) { final CompressedFileReference cFileRef = (CompressedFileReference) fileRef; try { bufferCache.createFile(cFileRef.getLAFFileReference()); } catch (HyracksDataException e) { //In case of creating the LAF file failed, delete fileRef IoUtil.delete(fileRef); throw e; } } }
/** * Decrement the reference counter for LAF file. * It is up to {@link BufferCache} to physically close the file. * see {@link BufferCache#deleteFile(FileReference)} and {@link BufferCache#purgeHandle(int)} */ @Override public void close() throws HyracksDataException { if (hasBeenOpened()) { compressedFileManager.close(); bufferCache.closeFile(compressedFileManager.getFileId()); } super.close(); }
public RuntimeContext(INCServiceContext appCtx) throws HyracksDataException { fileMapManager = new FileMapManager(); ICacheMemoryAllocator allocator = new HeapBufferAllocator(); IPageReplacementStrategy prs = new ClockPageReplacementStrategy(allocator, 32768, 50); bufferCache = new BufferCache(appCtx.getIoManager(), prs, new DelayPageCleanerPolicy(1000), fileMapManager, 100, threadFactory); ILocalResourceRepositoryFactory localResourceRepositoryFactory = new TransientLocalResourceRepositoryFactory(); localResourceRepository = localResourceRepositoryFactory.createRepository(); resourceIdFactory = (new ResourceIdFactoryProvider(localResourceRepository)).createResourceIdFactory(); lcManager = new IndexLifecycleManager(); }
@Override public void deleteFile(FileReference fileRef) throws HyracksDataException { boolean mapped = false; int fileId = -1; synchronized (fileInfoMap) { if (fileMapManager.isMapped(fileRef)) { mapped = true; fileId = fileMapManager.lookupFileId(fileRef); } } if (mapped) { deleteFile(fileId); } else { BufferedFileHandle.deleteFile(fileRef); } }
public RuntimeContext(INCApplicationContext appCtx) throws HyracksDataException { fileMapManager = new TransientFileMapManager(); ICacheMemoryAllocator allocator = new HeapBufferAllocator(); IPageReplacementStrategy prs = new ClockPageReplacementStrategy(allocator, 32768, 50); bufferCache = new BufferCache(appCtx.getRootContext().getIOManager(), prs, new DelayPageCleanerPolicy(1000), fileMapManager, 100, threadFactory); lcManager = new IndexLifecycleManager(); ILocalResourceRepositoryFactory localResourceRepositoryFactory = new TransientLocalResourceRepositoryFactory(); localResourceRepository = localResourceRepositoryFactory.createRepository(); resourceIdFactory = (new ResourceIdFactoryProvider(localResourceRepository)).createResourceIdFactory(); }
@Override public ICachedPage confiscateLargePage(long dpid, int multiplier, int extraBlockPageId) throws HyracksDataException { ICachedPage cachedPage = confiscatePage(dpid, multiplier); ((ICachedPageInternal) cachedPage).setExtraBlockPageId(extraBlockPageId); return cachedPage; }
bufferCache = new BufferCache(ioManager, prs, pcp, new FileMapManager(), storageProperties.getBufferCacheMaxOpenFiles(), getServiceContext().getThreadFactory(), replicationManager); } else { bufferCache = new BufferCache(ioManager, prs, pcp, new FileMapManager(), storageProperties.getBufferCacheMaxOpenFiles(), getServiceContext().getThreadFactory());