protected void markAsInactive(Iterable<TrackedReference<SortedOplogReader>> snapshot, T attach) throws IOException { for (Iterator<TrackedReference<SortedOplogReader>> iter = snapshot.iterator(); iter.hasNext(); ) { TrackedReference<SortedOplogReader> tr = iter.next(); if (logger.fineEnabled()) { logger.fine(String.format("Marking %s as inactive", tr)); } inactive.add(tr); tracker.fileRemoved(tr.get().getFile(), attach); factory.getConfiguration().getStatistics().incActiveFiles(-1); factory.getConfiguration().getStatistics().incInactiveFiles(1); } }
@Override protected void add(SortedOplog soplog) throws IOException { SortedOplogReader rdr = soplog.createReader(); synchronized (this) { soplogs.addFirst(new TrackedReference<SortedOplogReader>(rdr)); } if (logger.fineEnabled()) { logger.fine(String.format("Added file %s to level %d", rdr, level)); } tracker.fileAdded(rdr.getFile(), level); factory.getConfiguration().getStatistics().incActiveFiles(1); }
private void deleteInactive(TrackedReference<SortedOplogReader> tr) throws IOException { tr.get().close(); if (tr.get().getFile().delete()) { if (logger.fineEnabled()) { logger.fine("Deleted inactive soplog " + tr.get().getFile()); } tracker.fileDeleted(tr.get().getFile()); factory.getConfiguration().getStatistics().incInactiveFiles(-1); } }