Repository: cassandra Updated Branches: refs/heads/cassandra-2.0 a22308294 -> eb9c5bbcf refs/heads/cassandra-2.1 e83304ddf -> 136042ec3 refs/heads/trunk 0f024a619 -> ffb7f6491
Improve FD logging when the arrival time is ignored. Patch by Brandon Williams for CASSANDRA-8245 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/eb9c5bbc Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/eb9c5bbc Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/eb9c5bbc Branch: refs/heads/cassandra-2.0 Commit: eb9c5bbcfdaf498967052e02af65fa9f8167887d Parents: a223082 Author: Brandon Williams <[email protected]> Authored: Tue Jan 6 09:30:07 2015 -0600 Committer: Brandon Williams <[email protected]> Committed: Tue Jan 6 09:30:07 2015 -0600 ---------------------------------------------------------------------- .../apache/cassandra/gms/FailureDetector.java | 8 +++---- .../apache/cassandra/gms/ArrivalWindowTest.java | 24 +++++++++++++++----- 2 files changed, 22 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/eb9c5bbc/src/java/org/apache/cassandra/gms/FailureDetector.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/gms/FailureDetector.java b/src/java/org/apache/cassandra/gms/FailureDetector.java index 60729d3..e247e48 100644 --- a/src/java/org/apache/cassandra/gms/FailureDetector.java +++ b/src/java/org/apache/cassandra/gms/FailureDetector.java @@ -211,12 +211,12 @@ public class FailureDetector implements IFailureDetector, FailureDetectorMBean { // avoid adding an empty ArrivalWindow to the Map heartbeatWindow = new ArrivalWindow(SAMPLE_SIZE); - heartbeatWindow.add(now); + heartbeatWindow.add(now, ep); arrivalSamples.put(ep, heartbeatWindow); } else { - heartbeatWindow.add(now); + heartbeatWindow.add(now, ep); } } @@ -326,7 +326,7 @@ class ArrivalWindow } } - synchronized void add(long value) + synchronized void add(long value, InetAddress ep) { assert tLast >= 0; if (tLast > 0L) @@ -335,7 +335,7 @@ class ArrivalWindow if (interArrivalTime <= MAX_INTERVAL_IN_NANO) arrivalIntervals.add(interArrivalTime); else - logger.debug("Ignoring interval time of {}", interArrivalTime); + logger.debug("Ignoring interval time of {} for {}", interArrivalTime, ep); } else { http://git-wip-us.apache.org/repos/asf/cassandra/blob/eb9c5bbc/test/unit/org/apache/cassandra/gms/ArrivalWindowTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/gms/ArrivalWindowTest.java b/test/unit/org/apache/cassandra/gms/ArrivalWindowTest.java index e678d86..511511b 100644 --- a/test/unit/org/apache/cassandra/gms/ArrivalWindowTest.java +++ b/test/unit/org/apache/cassandra/gms/ArrivalWindowTest.java @@ -25,6 +25,10 @@ import static org.junit.Assert.*; import org.junit.Test; +import java.lang.RuntimeException; +import java.net.InetAddress; +import java.net.UnknownHostException; + public class ArrivalWindowTest { @Test @@ -32,12 +36,20 @@ public class ArrivalWindowTest { final ArrivalWindow windowWithNano = new ArrivalWindow(4); final long toNano = 1000000L; - - windowWithNano.add(111 * toNano); - windowWithNano.add(222 * toNano); - windowWithNano.add(333 * toNano); - windowWithNano.add(444 * toNano); - windowWithNano.add(555 * toNano); + InetAddress ep; + try + { + ep = InetAddress.getLocalHost(); + } + catch (UnknownHostException e) + { + throw new RuntimeException(e); + } + windowWithNano.add(111 * toNano, ep); + windowWithNano.add(222 * toNano, ep); + windowWithNano.add(333 * toNano, ep); + windowWithNano.add(444 * toNano, ep); + windowWithNano.add(555 * toNano, ep); //all good assertEquals(1.0, windowWithNano.phi(666 * toNano), 0.01);
