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;