@Override public CompositeData startBlobGC(final boolean markOnly, final boolean forceBlobIdRetrieve) { if (gcOp.isDone()) { gcOp = newManagementOperation(OP_NAME, new Callable<String>() { @Override public String call() throws Exception { long t0 = nanoTime(); blobGarbageCollector.collectGarbage(markOnly, forceBlobIdRetrieve); return "Blob gc completed in " + formatTime(nanoTime() - t0); } }); executor.execute(gcOp); } return getBlobGCStatus(); }
@Override public CompositeData checkConsistency() { if (consistencyOp.isDone()) { consistencyOp = newManagementOperation(CONSISTENCY_OP_NAME, new Callable<String>() { @Override public String call() throws Exception { long t0 = nanoTime(); long missing = blobGarbageCollector.checkConsistency(); return "Consistency check completed in " + formatTime(nanoTime() - t0) + ". " + + missing + " missing blobs found (details in the log)."; } }); executor.execute(consistencyOp); } return getConsistencyCheckStatus(); }
@Override public TabularData getOperationStats() { TabularDataSupport tds; try { TabularType tt = new TabularType(BlobGC.class.getName(), "Garbage Collection Operation Stats", OP_STATS_TYPE, OP_STATS_FIELD_NAMES); tds = new TabularDataSupport(tt); OperationsStatsMBean operationStats = blobGarbageCollector.getOperationStats(); tds.put(toCompositeData(operationStats)); } catch (Exception e) { throw new IllegalStateException(e); } return tds; }
ClusterRepositoryInfo.getOrCreateId(nodeStore), whiteboard, statisticsProvider); addRegistration(registerMBean(whiteboard, BlobGCMBean.class, new BlobGC(gc, executor), BlobGCMBean.TYPE, "Document node store blob garbage collection"));
ClusterRepositoryInfo.getOrCreateId(nodeStore), whiteboard, statisticsProvider); addRegistration(registerMBean(whiteboard, BlobGCMBean.class, new BlobGC(gc, executor), BlobGCMBean.TYPE, "Document node store blob garbage collection"));
@NotNull @Override public CompositeData startBlobGC(final boolean markOnly) { if (gcOp.isDone()) { gcOp = newManagementOperation(OP_NAME, new Callable<String>() { @Override public String call() throws Exception { long t0 = nanoTime(); blobGarbageCollector.collectGarbage(markOnly); return "Blob gc completed in " + formatTime(nanoTime() - t0); } }); executor.execute(gcOp); } return getBlobGCStatus(); }
@Override public TabularData getOperationStats() { TabularDataSupport tds; try { TabularType tt = new TabularType(BlobGC.class.getName(), "Garbage Collection Operation Stats", OP_STATS_TYPE, OP_STATS_FIELD_NAMES); tds = new TabularDataSupport(tt); OperationsStatsMBean operationStats = blobGarbageCollector.getOperationStats(); tds.put(toCompositeData(operationStats)); } catch (Exception e) { throw new IllegalStateException(e); } return tds; }
@Override public CompositeData checkConsistency() { if (consistencyOp.isDone()) { consistencyOp = newManagementOperation(CONSISTENCY_OP_NAME, new Callable<String>() { @Override public String call() throws Exception { long t0 = nanoTime(); long missing = blobGarbageCollector.checkConsistency(); return "Consistency check completed in " + formatTime(nanoTime() - t0) + ". " + + missing + " missing blobs found (details in the log)."; } }); executor.execute(consistencyOp); } return getConsistencyCheckStatus(); }
registerCloseable(registerMBean( BlobGCMBean.class, new BlobGC(gc, executor), BlobGCMBean.TYPE, "Segment node store blob garbage collection"
@NotNull @Override public CompositeData startBlobGC(final boolean markOnly) { if (gcOp.isDone()) { gcOp = newManagementOperation(OP_NAME, new Callable<String>() { @Override public String call() throws Exception { long t0 = nanoTime(); blobGarbageCollector.collectGarbage(markOnly); return "Blob gc completed in " + formatTime(nanoTime() - t0); } }); executor.execute(gcOp); } return getBlobGCStatus(); }
@Override public TabularData getGlobalMarkStats() { TabularDataSupport tds; try { TabularType tt = new TabularType(BlobGC.class.getName(), "Garbage collection global mark phase Stats", MARK_TYPE, new String[] {"repositoryId"}); tds = new TabularDataSupport(tt); List<GarbageCollectionRepoStats> stats = blobGarbageCollector.getStats(); for (GarbageCollectionRepoStats stat : stats) { tds.put(toCompositeData(stat)); } } catch (Exception e) { throw new IllegalStateException(e); } return tds; }
@Override public CompositeData checkConsistency() { if (consistencyOp.isDone()) { consistencyOp = newManagementOperation(CONSISTENCY_OP_NAME, new Callable<String>() { @Override public String call() throws Exception { long t0 = nanoTime(); long missing = blobGarbageCollector.checkConsistency(); return "Consistency check completed in " + formatTime(nanoTime() - t0) + ". " + + missing + " missing blobs found (details in the log)."; } }); executor.execute(consistencyOp); } return getConsistencyCheckStatus(); }
@Nonnull @Override public CompositeData startBlobGC(final boolean markOnly) { if (gcOp.isDone()) { gcOp = newManagementOperation(OP_NAME, new Callable<String>() { @Override public String call() throws Exception { long t0 = nanoTime(); blobGarbageCollector.collectGarbage(markOnly); return "Blob gc completed in " + formatTime(nanoTime() - t0); } }); executor.execute(gcOp); } return getBlobGCStatus(); }
@Override public TabularData getGlobalMarkStats() { TabularDataSupport tds; try { TabularType tt = new TabularType(BlobGC.class.getName(), "Garbage collection global mark phase Stats", MARK_TYPE, new String[] {"repositoryId"}); tds = new TabularDataSupport(tt); List<GarbageCollectionRepoStats> stats = blobGarbageCollector.getStats(); for (GarbageCollectionRepoStats stat : stats) { tds.put(toCompositeData(stat)); } } catch (Exception e) { throw new IllegalStateException(e); } return tds; }
@Override public CompositeData startBlobGC(final boolean markOnly, final boolean forceBlobIdRetrieve) { if (gcOp.isDone()) { gcOp = newManagementOperation(OP_NAME, new Callable<String>() { @Override public String call() throws Exception { long t0 = nanoTime(); blobGarbageCollector.collectGarbage(markOnly, forceBlobIdRetrieve); return "Blob gc completed in " + formatTime(nanoTime() - t0); } }); executor.execute(gcOp); } return getBlobGCStatus(); }
@Override public TabularData getGlobalMarkStats() { TabularDataSupport tds; try { TabularType tt = new TabularType(BlobGC.class.getName(), "Garbage collection global mark phase Stats", TYPE, new String[] {"repositoryId"}); tds = new TabularDataSupport(tt); List<GarbageCollectionRepoStats> stats = blobGarbageCollector.getStats(); for (GarbageCollectionRepoStats stat : stats) { tds.put(toCompositeData(stat)); } } catch (Exception e) { throw new IllegalStateException(e); } return tds; }
@Override public CompositeData startBlobGC(final boolean markOnly, final boolean forceBlobIdRetrieve) { if (gcOp.isDone()) { gcOp = newManagementOperation(OP_NAME, new Callable<String>() { @Override public String call() throws Exception { long t0 = nanoTime(); blobGarbageCollector.collectGarbage(markOnly, forceBlobIdRetrieve); return "Blob gc completed in " + formatTime(nanoTime() - t0); } }); executor.execute(gcOp); } return getBlobGCStatus(); }