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 re...@apache.org on 2019/07/08 09:16:44 UTC

svn commit: r1862726 - in /jackrabbit/oak/trunk: oak-parent/ oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/ oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/

Author: reschke
Date: Mon Jul  8 09:16:44 2019
New Revision: 1862726

URL: http://svn.apache.org/viewvc?rev=1862726&view=rev
Log:
OAK-8464: Update javadoc-plugin to 3.1.1 and restore JCR API linking

Modified:
    jackrabbit/oak/trunk/oak-parent/pom.xml
    jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGCRecommendations.java
    jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGCTest.java

Modified: jackrabbit/oak/trunk/oak-parent/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-parent/pom.xml?rev=1862726&r1=1862725&r2=1862726&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-parent/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-parent/pom.xml Mon Jul  8 09:16:44 2019
@@ -125,11 +125,12 @@
         </plugin>
         <plugin>
           <artifactId>maven-javadoc-plugin</artifactId>
-          <version>3.1.0</version>
+          <version>3.1.1</version>
           <configuration>
             <source>${java.version}</source>
             <aggregate>true</aggregate>
             <links>
+              <link>https://docs.adobe.com/docs/en/spec/javax.jcr/javadocs/jcr-2.0/</link>
               <link>http://jackrabbit.apache.org/api/trunk/</link>
               <link>https://google.github.io/guava/releases/${guava.version}/api/docs/</link>
             </links>

Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGCRecommendations.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGCRecommendations.java?rev=1862726&r1=1862725&r2=1862726&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGCRecommendations.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGCRecommendations.java Mon Jul  8 09:16:44 2019
@@ -42,6 +42,7 @@ public class VersionGCRecommendations {
     final long maxCollect;
     final long deleteCandidateCount;
     final long lastOldestTimestamp;
+    final long originalCollectLimit;
 
     private final long precisionMs;
     final long suggestedIntervalMs;
@@ -71,16 +72,18 @@ public class VersionGCRecommendations {
      */
     public VersionGCRecommendations(long maxRevisionAgeMs, Checkpoints checkpoints, Clock clock, VersionGCSupport vgc,
             VersionGCOptions options, GCMonitor gcMonitor) {
-        this.vgc = vgc;
-        this.gcmon = gcMonitor;
-
-        TimeInterval keep = new TimeInterval(clock.getTime() - maxRevisionAgeMs, Long.MAX_VALUE);
         boolean ignoreDueToCheckPoint = false;
         long deletedOnceCount = 0;
         long suggestedIntervalMs;
         long oldestPossible;
         long collectLimit = options.collectLimit;
 
+        this.vgc = vgc;
+        this.gcmon = gcMonitor;
+        this.originalCollectLimit = options.collectLimit;
+
+        TimeInterval keep = new TimeInterval(clock.getTime() - maxRevisionAgeMs, Long.MAX_VALUE);
+
         Map<String, Long> settings = getLongSettings();
         lastOldestTimestamp = settings.get(VersionGarbageCollector.SETTINGS_COLLECTION_OLDEST_TIMESTAMP_PROP);
         if (lastOldestTimestamp == 0) {
@@ -178,16 +181,26 @@ public class VersionGCRecommendations {
             // success, we would not expect to encounter revisions older than this in the future
             setLongSetting(VersionGarbageCollector.SETTINGS_COLLECTION_OLDEST_TIMESTAMP_PROP, scope.toMs);
 
+            int count = stats.deletedDocGCCount - stats.deletedLeafDocGCCount;
+            double usedFraction;
+            double allowedFraction = 0.66;
+
             if (maxCollect <= 0) {
-                VersionGarbageCollector.log.debug("successful run without effective limit, keeping recommendations");
-            } else if (scope.getDurationMs() == suggestedIntervalMs) {
-                int count = stats.deletedDocGCCount - stats.deletedLeafDocGCCount;
-                double used = count / (double) maxCollect;
-                if (used < 0.66) {
+                usedFraction = count / (double) this.originalCollectLimit;
+            } else {
+                usedFraction = count / (double) maxCollect;
+            }
+
+            if (scope.getDurationMs() == suggestedIntervalMs) {
+                if (usedFraction < allowedFraction) {
                     long nextDuration = (long) Math.ceil(suggestedIntervalMs * 1.5);
-                    VersionGarbageCollector.log.debug("successful run using {}% of limit, raising recommended interval to {} seconds",
-                            Math.round(used*1000)/10.0, TimeUnit.MILLISECONDS.toSeconds(nextDuration));
+                    VersionGarbageCollector.log.debug(
+                            "successful run using {}% of limit, raising recommended interval to {} seconds",
+                            Math.round(usedFraction * 1000) / 10.0, TimeUnit.MILLISECONDS.toSeconds(nextDuration));
                     setLongSetting(VersionGarbageCollector.SETTINGS_COLLECTION_REC_INTERVAL_PROP, nextDuration);
+                } else {
+                    VersionGarbageCollector.log.debug("not increasing limit: collected {} documents ({}% >= {}% limit)", count,
+                            usedFraction, allowedFraction);
                 }
             } else {
                 VersionGarbageCollector.log.debug("successful run not following recommendations, keeping them");

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGCTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGCTest.java?rev=1862726&r1=1862725&r2=1862726&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGCTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGCTest.java Mon Jul  8 09:16:44 2019
@@ -18,6 +18,16 @@
  */
 package org.apache.jackrabbit.oak.plugins.document;
 
+import static java.util.concurrent.TimeUnit.HOURS;
+import static java.util.concurrent.TimeUnit.MINUTES;
+import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.slf4j.helpers.MessageFormatter.arrayFormat;
+
 import java.io.IOException;
 import java.util.List;
 import java.util.concurrent.Callable;
@@ -28,9 +38,6 @@ import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector.VersionGCStats;
 import org.apache.jackrabbit.oak.plugins.document.memory.MemoryDocumentStore;
@@ -44,19 +51,11 @@ import org.jetbrains.annotations.NotNull
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 
-import static java.util.concurrent.TimeUnit.HOURS;
-import static java.util.concurrent.TimeUnit.MINUTES;
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import static org.slf4j.helpers.MessageFormatter.arrayFormat;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
 
 public class VersionGCTest {
 
@@ -262,7 +261,6 @@ public class VersionGCTest {
 
     // OAK-8448: test that after shrinking the scope to the minimum and after
     // successful runs, scope will be expanded again
-    @Ignore("OAK-8448")
     @Test
     public void expandIntervalAgain() throws Exception {