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 ad...@apache.org on 2017/07/06 12:52:56 UTC

svn commit: r1801043 - in /jackrabbit/oak/trunk: oak-run/pom.xml oak-segment-tar/pom.xml oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedScheduler.java

Author: adulceanu
Date: Thu Jul  6 12:52:56 2017
New Revision: 1801043

URL: http://svn.apache.org/viewvc?rev=1801043&view=rev
Log:
OAK-6430 - Remove Apache Commons Math3 dependency from Segment Tar

Modified:
    jackrabbit/oak/trunk/oak-run/pom.xml
    jackrabbit/oak/trunk/oak-segment-tar/pom.xml
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedScheduler.java

Modified: jackrabbit/oak/trunk/oak-run/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/pom.xml?rev=1801043&r1=1801042&r2=1801043&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-run/pom.xml Thu Jul  6 12:52:56 2017
@@ -35,13 +35,12 @@
     <groovy.version>2.4.7</groovy.version>
     <!--
       Size History:
-      + 48 MB added commons-math3 dependency to oak-segment-tar
       + 47 MB release profile build slightly bigger jar (OAK-6252)
       + 46 MB re-introduced the ServerCommand and required dependencies (OAK-6252)
       + 41 MB build failing on the release profile (OAK-6250)
       + 38 MB. Initial value. Current 35MB plus a 10%
     -->
-    <max.jar.size>48200000</max.jar.size>
+    <max.jar.size>47000000</max.jar.size>
   </properties>
 
   <build>

Modified: jackrabbit/oak/trunk/oak-segment-tar/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/pom.xml?rev=1801043&r1=1801042&r2=1801043&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/pom.xml Thu Jul  6 12:52:56 2017
@@ -171,11 +171,6 @@
             <artifactId>commons-io</artifactId>
             <scope>provided</scope>
         </dependency>
-         <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-math3</artifactId>
-            <scope>provided</scope>
-        </dependency>
         <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
@@ -206,6 +201,11 @@
             <artifactId>org.apache.felix.scr.annotations</artifactId>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>io.dropwizard.metrics</groupId>
+            <artifactId>metrics-core</artifactId>
+            <version>3.1.0</version>
+        </dependency>
 
         <!-- Netty -->
 
@@ -318,12 +318,7 @@
             <version>1.10.19</version>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>io.dropwizard.metrics</groupId>
-            <artifactId>metrics-core</artifactId>
-            <version>3.1.0</version>
-            <scope>test</scope>
-        </dependency>
+        
         <!-- FIXME: test dependency of oak-core due to usage of InitialContent for test setup -->
         <dependency>
             <groupId>org.apache.jackrabbit</groupId>

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedScheduler.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedScheduler.java?rev=1801043&r1=1801042&r2=1801043&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedScheduler.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/scheduler/LockBasedScheduler.java Thu Jul  6 12:52:56 2017
@@ -33,7 +33,6 @@ import java.util.concurrent.atomic.Atomi
 
 import javax.annotation.Nonnull;
 
-import org.apache.commons.math3.stat.descriptive.SynchronizedDescriptiveStatistics;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.segment.Revisions;
@@ -52,6 +51,9 @@ import org.apache.jackrabbit.oak.stats.S
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.codahale.metrics.Histogram;
+import com.codahale.metrics.SlidingWindowReservoir;
+
 public class LockBasedScheduler implements Scheduler {
 
     public static class LockBasedSchedulerBuilder {
@@ -114,11 +116,11 @@ public class LockBasedScheduler implemen
             .parseBoolean(System.getProperty("oak.segmentNodeStore.commitFairLock", "true"));
 
     /**
-     * Flag controlling the commit time percentile to wait for the lock in order
+     * Flag controlling the commit time quantile to wait for the lock in order
      * to increase chances of returning an up to date state.
      */
-    private static final int SCHEDULER_FETCH_COMMIT_DELAY_PERCENTILE = Integer
-            .getInteger("oak.scheduler.fetch.commitDelayPercentile", 50);
+    private static final double SCHEDULER_FETCH_COMMIT_DELAY_QUANTILE = Double
+            .parseDouble(System.getProperty("oak.scheduler.fetch.commitDelayQuantile", "0.5"));
     
     /**
      * Sets the number of seconds to wait for the attempt to grab the lock to
@@ -145,7 +147,7 @@ public class LockBasedScheduler implemen
 
     private final SegmentNodeStoreStats stats;
     
-    private final SynchronizedDescriptiveStatistics commitTimeStats = new SynchronizedDescriptiveStatistics(1000);
+    private Histogram commitTimeHistogram = new Histogram(new SlidingWindowReservoir(1000));
     
 
     public LockBasedScheduler(LockBasedSchedulerBuilder builder) {
@@ -162,7 +164,7 @@ public class LockBasedScheduler implemen
 
     @Override
     public NodeState getHeadNodeState() {
-        long delay = (long) commitTimeStats.getPercentile(SCHEDULER_FETCH_COMMIT_DELAY_PERCENTILE);
+        long delay = (long) commitTimeHistogram.getSnapshot().getValue(SCHEDULER_FETCH_COMMIT_DELAY_QUANTILE);
         try {
             if (commitSemaphore.tryAcquire(delay, NANOSECONDS)) {
                 try {
@@ -227,7 +229,7 @@ public class LockBasedScheduler implemen
 
                 long afterCommitTime = System.nanoTime();
                 stats.committedAfter(afterCommitTime - beforeCommitTime);
-                commitTimeStats.addValue(afterCommitTime - beforeCommitTime);
+                commitTimeHistogram.update(afterCommitTime - beforeCommitTime);
                 stats.onCommit();
 
                 return merged;