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())