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;
}