@Override public void run() { if (!olf.f.delete() && olf.f.exists()) { logger.warn("Could not delete the file {} {} for disk store {}.", Oplog.this.toString(), getFileType(olf), getParent().getName()); } else { logger.info("Deleted {} {} for disk store {}.", Oplog.this.toString(), getFileType(olf), getParent().getName()); } } });
public void removeDiskStore(DiskStoreImpl ds) { if (logger.isTraceEnabled(LogMarker.DISK_STORE_MONITOR_VERBOSE)) { logger.trace(LogMarker.DISK_STORE_MONITOR_VERBOSE, "No longer monitoring disk store {}", ds.getName()); } disks.remove(ds); }
/** * Call this when the cache is closed or region is destroyed. Deletes the lock files. */ public void close() { if (this.closed) { return; } if (logger.isDebugEnabled()) { logger.debug("Oplog::close: Store name ={} Oplog ID = {}", parent.getName(), oplogId); } basicClose(false); }
@Override public void run() { if (!krf.delete()) { if (krf.exists()) { logger.warn("Could not delete the file {} {} for disk store {}.", new Object[] {Oplog.this.toString(), "krf", getParent().getName()}); } } else { logger.info("Deleted {} {} for disk store {}.", new Object[] {Oplog.this.toString(), "krf", getParent().getName()}); } } });
/** * Call this when the cache is closed or region is destroyed. Deletes the lock files and if it is * Overflow only, deletes the oplog file as well */ public void close() { if (this.closed) { return; } if (logger.isDebugEnabled()) { logger.debug("Oplog::close: Store name ={} Oplog ID = {}", parent.getName(), oplogId); } basicClose(); }
private void handleEmpty(boolean calledByCompactor) { if (!calledByCompactor) { logger.info("Closing {} early since it is empty. It is for disk store {}.", new Object[] {this.parent.getName(), toString()}); } destroy(); }
@Override public void addRegionOwnedDiskStore(DiskStoreImpl dsi) { this.regionOwnedDiskStores.put(dsi.getName(), dsi); if (!dsi.isOffline()) { this.diskMonitor.addDiskStore(dsi); } }
public void addDiskStore(DiskStoreImpl ds) { if (logger.isTraceEnabled(LogMarker.DISK_STORE_MONITOR_VERBOSE)) { logger.trace(LogMarker.DISK_STORE_MONITOR_VERBOSE, "Now monitoring disk store {}", ds.getName()); } Set<DirectoryHolderUsage> du = new HashSet<DirectoryHolderUsage>(); for (DirectoryHolder dir : ds.getDirectoryHolders()) { du.add(new DirectoryHolderUsage(ds, dir)); } disks.put(ds, du); }
@Override public void addDiskStore(DiskStoreImpl dsi) { this.diskStores.put(dsi.getName(), dsi); if (!dsi.isOffline()) { this.diskMonitor.addDiskStore(dsi); } }
private void startAsyncFlusher() { final String thName = String.format("Asynchronous disk writer for region %s", getName()); this.flusherThread = new LoggingThread(thName, new FlusherThread(this)); this.flusherThread.start(); }
/** * Creates the crf oplog file */ private void createCrf(OverflowOplog previous) throws IOException { File f = new File(this.diskFile.getPath() + CRF_FILE_EXT); if (logger.isDebugEnabled()) { logger.debug("Creating operation log file {}", f); } this.crf.f = f; this.crf.raf = new RandomAccessFile(f, "rw"); this.crf.writeBuf = allocateWriteBuf(previous); preblow(); logger.info("Created {} {} for disk store {}.", new Object[] {toString(), "crf", this.parent.getName()}); this.crf.channel = this.crf.raf.getChannel(); this.stats.incOpenOplogs(); }
private void prepareDiskStoresForClose() { String pdxDSName = TypeRegistry.getPdxDiskStoreName(this); DiskStoreImpl pdxDiskStore = null; for (DiskStoreImpl dsi : this.diskStores.values()) { if (dsi.getName().equals(pdxDSName)) { pdxDiskStore = dsi; } else { dsi.prepareForClose(); } } if (pdxDiskStore != null) { pdxDiskStore.prepareForClose(); } }
private void handleEmptyAndOldest(boolean calledByCompactor) { if (!calledByCompactor && logger.isDebugEnabled()) { logger.debug( "Deleting oplog early because it is empty. It is for disk store {} and has oplog#{}", getParent().getName(), oplogId); } destroy(); getOplogSet().destroyOldestReadyToCompact(); }
/** * Returns the dir name used to back up this DiskStore's directories under. The name is a * concatenation of the disk store name and id. */ String getBackupDirName(DiskStoreImpl diskStore) { String name = diskStore.getName(); if (name == null) { name = GemFireCacheImpl.getDefaultDiskStoreName(); } return name + "_" + diskStore.getDiskStoreID().toString(); } }
/** * Returns the dir name used to back up this DiskStore's directories under. The name is a * concatenation of the disk store name and id. */ private String getBackupDirName(DiskStoreImpl diskStore) { String name = diskStore.getName(); if (name == null) { name = GemFireCacheImpl.getDefaultDiskStoreName(); } return name + "_" + diskStore.getDiskStoreID().toString(); }
public boolean copyForwardForOverflowCompact(DiskEntry entry, byte[] value, int length, byte userBits) { try { ValueWrapper vw = new DiskEntry.Helper.CompactorValueWrapper(value, length); return basicModify(entry, vw, userBits, true); } catch (IOException ex) { throw new DiskAccessException( String.format("Failed writing key to %s", this.diskFile.getPath()), ex, getParent().getName()); } catch (InterruptedException ie) { Thread.currentThread().interrupt(); getParent().getCancelCriterion().checkCancelInProgress(ie); throw new DiskAccessException( String.format( "Failed writing key to %s due to failure in acquiring read lock for asynch writing", this.diskFile.getPath()), ie, getParent().getName()); } }
/** * Destroy all the oplogs * */ private void destroyAllOplogs() { getPersistentOplogs().destroyAllOplogs(); // Need to also remove all oplogs that logically belong to this DiskStore // even if we were not using them. { // delete all overflow oplog files FilenameFilter overflowFileFilter = new DiskStoreFilter(OplogType.OVERFLOW, true, getName()); deleteFiles(overflowFileFilter); } { // delete all backup oplog files FilenameFilter backupFileFilter = new DiskStoreFilter(OplogType.BACKUP, true, getName()); deleteFiles(backupFileFilter); } }
private void handleEmpty(boolean calledByCompactor) { lockCompactor(); try { if (!calledByCompactor) { logger.info("Closing {} early since it is empty. It is for disk store {}.", new Object[] {getParent().getName(), toString()}); } cancelKrf(); close(); deleteFiles(getHasDeletes()); } finally { unlockCompactor(); } }
private void initDiskData() { this.name = diskStore.getName(); this.compactionThreshold = diskStore.getCompactionThreshold(); this.timeInterval = diskStore.getTimeInterval(); this.writeBufferSize = diskStore.getWriteBufferSize(); this.maxOpLogSize = diskStore.getMaxOplogSize(); this.queueSize = diskStore.getQueueSize(); this.isAutoCompact = diskStore.getAutoCompact(); this.isForceCompactionAllowed = diskStore.getAllowForceCompaction(); this.directoryHolders = diskStore.getDirectoryHolders(); File[] diskDirs = diskStore.getDiskDirs(); String[] diskDirStr = new String[diskDirs.length]; for (int i = 0; i < diskDirs.length; i++) { diskDirStr[i] = diskDirs[i].getAbsolutePath(); } this.diskDirectories = diskDirStr; }