You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2016/08/22 13:54:43 UTC
svn commit: r1757174 - in /jackrabbit/oak/trunk/oak-segment-tar/src:
main/java/org/apache/jackrabbit/oak/segment/
main/java/org/apache/jackrabbit/oak/segment/file/
test/java/org/apache/jackrabbit/oak/segment/
Author: mduerig
Date: Mon Aug 22 13:54:43 2016
New Revision: 1757174
URL: http://svn.apache.org/viewvc?rev=1757174&view=rev
Log:
OAK-4618: Align GCMonitorMBean MBean with new generation based GC
Remove confusing time series and unused gc counter
Credits to Andrei Dulceanu for the initial patch
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreGCMonitor.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/GCMonitorMBean.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentCompactionIT.java
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java?rev=1757174&r1=1757173&r2=1757174&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreService.java Mon Aug 22 13:54:43 2016
@@ -32,7 +32,6 @@ import static org.apache.jackrabbit.oak.
import static org.apache.jackrabbit.oak.segment.file.FileStoreBuilder.fileStoreBuilder;
import static org.apache.jackrabbit.oak.spi.blob.osgi.SplitBlobStoreService.ONLY_STANDALONE_TARGET;
import static org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerMBean;
-import static org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.scheduleWithFixedDelay;
import java.io.ByteArrayInputStream;
import java.io.Closeable;
@@ -507,8 +506,7 @@ public class SegmentNodeStoreService ext
fsgcm,
GCMonitorMBean.TYPE,
"File Store garbage collection monitor"
- ),
- scheduleWithFixedDelay(whiteboard, fsgcm, 1)
+ )
)));
// Register a factory service to expose the FileStore
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreGCMonitor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreGCMonitor.java?rev=1757174&r1=1757173&r2=1757174&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreGCMonitor.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreGCMonitor.java Mon Aug 22 13:54:43 2016
@@ -21,7 +21,6 @@ package org.apache.jackrabbit.oak.segmen
import static com.google.common.base.Preconditions.checkNotNull;
import static java.text.DateFormat.getDateTimeInstance;
-import static org.apache.jackrabbit.stats.TimeSeriesStatsUtil.asCompositeData;
import static org.slf4j.helpers.MessageFormatter.arrayFormat;
import java.io.PrintWriter;
@@ -29,27 +28,18 @@ import java.io.StringWriter;
import java.util.Date;
import javax.annotation.Nonnull;
-import javax.management.openmbean.CompositeData;
import org.apache.jackrabbit.oak.commons.jmx.AnnotatedStandardMBean;
import org.apache.jackrabbit.oak.spi.gc.GCMonitor;
import org.apache.jackrabbit.oak.stats.Clock;
-import org.apache.jackrabbit.stats.TimeSeriesRecorder;
/**
* {@link GCMonitor} implementation providing the file store gc status
* as {@link GCMonitorMBean}.
- * <p>
- * Users of this class need to schedule a call to {@link #run()} once per
- * second to ensure the various time series maintained by this implementation
- * are correctly aggregated.
+ *
*/
public class FileStoreGCMonitor extends AnnotatedStandardMBean
- implements GCMonitor, GCMonitorMBean, Runnable {
- private final TimeSeriesRecorder gcCount = new TimeSeriesRecorder(true);
- private final TimeSeriesRecorder repositorySize = new TimeSeriesRecorder(false);
- private final TimeSeriesRecorder reclaimedSize = new TimeSeriesRecorder(true);
-
+ implements GCMonitor, GCMonitorMBean {
private final Clock clock;
private long lastCompaction;
@@ -64,15 +54,6 @@ public class FileStoreGCMonitor extends
this.clock = checkNotNull(clock);
}
- //------------------------------------------------------------< Runnable >---
-
- @Override
- public void run() {
- gcCount.recordOneSecond();
- repositorySize.recordOneSecond();
- reclaimedSize.recordOneSecond();
- }
-
//------------------------------------------------------------< GCMonitor >---
@Override
@@ -108,9 +89,6 @@ public class FileStoreGCMonitor extends
lastCleanup = clock.getTime();
lastReclaimedSize = reclaimed;
lastRepositorySize = current;
- gcCount.getCounter().addAndGet(1);
- repositorySize.getCounter().set(current);
- reclaimedSize.getCounter().addAndGet(reclaimed);
}
//------------------------------------------------------------< GCMonitorMBean >---
@@ -153,17 +131,4 @@ public class FileStoreGCMonitor extends
public String getStatus() {
return status;
}
-
- @Nonnull
- @Override
- public CompositeData getRepositorySize() {
- return asCompositeData(repositorySize, "RepositorySize");
- }
-
- @Nonnull
- @Override
- public CompositeData getReclaimedSize() {
- return asCompositeData(reclaimedSize, "ReclaimedSize");
- }
-
}
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/GCMonitorMBean.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/GCMonitorMBean.java?rev=1757174&r1=1757173&r2=1757174&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/GCMonitorMBean.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/GCMonitorMBean.java Mon Aug 22 13:54:43 2016
@@ -21,9 +21,7 @@ package org.apache.jackrabbit.oak.segmen
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
-import javax.management.openmbean.CompositeData;
-// FIXME OAK-4618: Align GCMonitorMBean MBean with new generation based GC
/**
* MBean for monitoring the revision garbage collection process of the
* {@link FileStore}.
@@ -64,16 +62,4 @@ public interface GCMonitorMBean {
*/
@Nonnull
String getStatus();
-
- /**
- * @return time series of the repository size
- */
- @Nonnull
- CompositeData getRepositorySize();
-
- /**
- * @return time series of the reclaimed space
- */
- @Nonnull
- CompositeData getReclaimedSize();
}
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentCompactionIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentCompactionIT.java?rev=1757174&r1=1757173&r2=1757174&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentCompactionIT.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentCompactionIT.java Mon Aug 22 13:54:43 2016
@@ -222,13 +222,6 @@ public class SegmentCompactionIT {
public void setUp() throws Exception {
assumeTrue(ENABLED);
- scheduler.scheduleAtFixedRate(new Runnable() {
- @Override
- public void run() {
- fileStoreGCMonitor.run();
- }
- }, 1, 1, SECONDS);
-
SegmentGCOptions gcOptions = defaultGCOptions().setLockWaitTime(lockWaitTime);
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
fileStore = fileStoreBuilder(folder.getRoot())