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 st...@apache.org on 2016/07/07 15:51:13 UTC

svn commit: r1751813 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/CommitRateLimiter.java

Author: stefanegli
Date: Thu Jul  7 15:51:13 2016
New Revision: 1751813

URL: http://svn.apache.org/viewvc?rev=1751813&view=rev
Log:
OAK-4534 : add trace logging to CommitRateLimiter

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/CommitRateLimiter.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/CommitRateLimiter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/CommitRateLimiter.java?rev=1751813&r1=1751812&r2=1751813&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/CommitRateLimiter.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/CommitRateLimiter.java Thu Jul  7 15:51:13 2016
@@ -28,12 +28,15 @@ import org.apache.jackrabbit.oak.spi.com
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.stats.Clock;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * This {@code CommitHook} can be used to block or delay commits for any length of time.
  * As long as commits are blocked this hook throws a {@code CommitFailedException}.
  */
 public class CommitRateLimiter implements CommitHook {
+    private static final Logger LOG = LoggerFactory.getLogger(CommitRateLimiter.class);
     private volatile boolean blockCommits;
     private volatile long delay;
 
@@ -57,6 +60,12 @@ public class CommitRateLimiter implement
      * @param delay  milli seconds
      */
     public void setDelay(long delay) {
+        if (LOG.isTraceEnabled()) {
+            if (this.delay != delay) {
+                // only log if the delay has changed
+                LOG.trace("setDelay: delay changed from " + this.delay + " to " + delay);
+            }
+        }
         this.delay = delay;
         if (delay == 0) {
             synchronized (this) {
@@ -83,6 +92,7 @@ public class CommitRateLimiter implement
                     long t0 = Clock.ACCURATE.getTime();
                     long dt = delay;
                     while (delay > 0 && dt > 0) {
+                        LOG.trace("delay: waiting {}ms (delay={}ms)", dt, delay);
                         wait(dt);
                         dt = dt - Clock.ACCURATE.getTime() + t0;
                     }