You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2015/07/17 15:40:07 UTC
[2/5] cassandra git commit: Move CASSANDRA-9519 test in long tests
(and reduce the size of the list used)
Move CASSANDRA-9519 test in long tests (and reduce the size of the list used)
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0ef18886
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0ef18886
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0ef18886
Branch: refs/heads/cassandra-2.2
Commit: 0ef188869049ec6233d115f7a46c25f492e8fa42
Parents: a9b9e62
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Thu Jul 16 15:14:54 2015 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Fri Jul 17 15:35:24 2015 +0200
----------------------------------------------------------------------
.../locator/DynamicEndpointSnitchLongTest.java | 104 +++++++++++++++++++
.../locator/DynamicEndpointSnitchTest.java | 64 ------------
2 files changed, 104 insertions(+), 64 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0ef18886/test/long/org/apache/cassandra/locator/DynamicEndpointSnitchLongTest.java
----------------------------------------------------------------------
diff --git a/test/long/org/apache/cassandra/locator/DynamicEndpointSnitchLongTest.java b/test/long/org/apache/cassandra/locator/DynamicEndpointSnitchLongTest.java
new file mode 100644
index 0000000..1c628fa
--- /dev/null
+++ b/test/long/org/apache/cassandra/locator/DynamicEndpointSnitchLongTest.java
@@ -0,0 +1,104 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+package org.apache.cassandra.locator;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.util.*;
+
+import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.exceptions.ConfigurationException;
+import org.apache.cassandra.service.StorageService;
+import org.junit.Test;
+
+import org.apache.cassandra.utils.FBUtilities;
+
+import static org.junit.Assert.assertEquals;
+
+public class DynamicEndpointSnitchLongTest
+{
+ @Test
+ public void testConcurrency() throws InterruptedException, IOException, ConfigurationException
+ {
+ // The goal of this test is to check for CASSANDRA-8448/CASSANDRA-9519
+ double badness = DatabaseDescriptor.getDynamicBadnessThreshold();
+ DatabaseDescriptor.setDynamicBadnessThreshold(0.0);
+
+ try
+ {
+ final int ITERATIONS = 10000;
+
+ // do this because SS needs to be initialized before DES can work properly.
+ StorageService.instance.initClient(0);
+ SimpleSnitch ss = new SimpleSnitch();
+ DynamicEndpointSnitch dsnitch = new DynamicEndpointSnitch(ss, String.valueOf(ss.hashCode()));
+ InetAddress self = FBUtilities.getBroadcastAddress();
+
+ List<InetAddress> hosts = new ArrayList<>();
+ // We want a big list of hosts so sorting takes time, making it much more likely to reproduce the
+ // problem we're looking for.
+ for (int i = 0; i < 100; i++)
+ for (int j = 0; j < 256; j++)
+ hosts.add(InetAddress.getByAddress(new byte[]{127, 0, (byte)i, (byte)j}));
+
+ ScoreUpdater updater = new ScoreUpdater(dsnitch, hosts);
+ updater.start();
+
+ List<InetAddress> result = null;
+ for (int i = 0; i < ITERATIONS; i++)
+ result = dsnitch.getSortedListByProximity(self, hosts);
+
+ updater.stopped = true;
+ updater.join();
+ }
+ finally
+ {
+ DatabaseDescriptor.setDynamicBadnessThreshold(badness);
+ }
+ }
+
+ public static class ScoreUpdater extends Thread
+ {
+ private static final int SCORE_RANGE = 100;
+
+ public volatile boolean stopped;
+
+ private final DynamicEndpointSnitch dsnitch;
+ private final List<InetAddress> hosts;
+ private final Random random = new Random();
+
+ public ScoreUpdater(DynamicEndpointSnitch dsnitch, List<InetAddress> hosts)
+ {
+ this.dsnitch = dsnitch;
+ this.hosts = hosts;
+ }
+
+ public void run()
+ {
+ while (!stopped)
+ {
+ InetAddress host = hosts.get(random.nextInt(hosts.size()));
+ int score = random.nextInt(SCORE_RANGE);
+ dsnitch.receiveTiming(host, score);
+ }
+ }
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0ef18886/test/unit/org/apache/cassandra/locator/DynamicEndpointSnitchTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/locator/DynamicEndpointSnitchTest.java b/test/unit/org/apache/cassandra/locator/DynamicEndpointSnitchTest.java
index 3f90532..c1928d8 100644
--- a/test/unit/org/apache/cassandra/locator/DynamicEndpointSnitchTest.java
+++ b/test/unit/org/apache/cassandra/locator/DynamicEndpointSnitchTest.java
@@ -23,7 +23,6 @@ import java.io.IOException;
import java.net.InetAddress;
import java.util.*;
-import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.service.StorageService;
import org.junit.Test;
@@ -90,67 +89,4 @@ public class DynamicEndpointSnitchTest
order = Arrays.asList(host1, host3, host2);
assertEquals(order, dsnitch.getSortedListByProximity(self, Arrays.asList(host1, host2, host3)));
}
-
- @Test
- public void testConcurrency() throws InterruptedException, IOException, ConfigurationException
- {
- // The goal of this test is to check for CASSANDRA-8448/CASSANDRA-9519
- double badness = DatabaseDescriptor.getDynamicBadnessThreshold();
- DatabaseDescriptor.setDynamicBadnessThreshold(0.0);
-
- final int ITERATIONS = 10;
-
- // do this because SS needs to be initialized before DES can work properly.
- StorageService.instance.initClient(0);
- SimpleSnitch ss = new SimpleSnitch();
- DynamicEndpointSnitch dsnitch = new DynamicEndpointSnitch(ss, String.valueOf(ss.hashCode()));
- InetAddress self = FBUtilities.getBroadcastAddress();
-
- List<InetAddress> hosts = new ArrayList<>();
- // We want a giant list of hosts so that sorting it takes time, making it much more likely to reproduce the
- // problem we're looking for.
- for (int i = 0; i < 10; i++)
- for (int j = 0; j < 256; j++)
- for (int k = 0; k < 256; k++)
- hosts.add(InetAddress.getByAddress(new byte[]{127, (byte)i, (byte)j, (byte)k}));
-
- ScoreUpdater updater = new ScoreUpdater(dsnitch, hosts);
- updater.start();
-
- List<InetAddress> result = null;
- for (int i = 0; i < ITERATIONS; i++)
- result = dsnitch.getSortedListByProximity(self, hosts);
-
- updater.stopped = true;
- updater.join();
-
- DatabaseDescriptor.setDynamicBadnessThreshold(badness);
- }
-
- public static class ScoreUpdater extends Thread
- {
- private static final int SCORE_RANGE = 100;
-
- public volatile boolean stopped;
-
- private final DynamicEndpointSnitch dsnitch;
- private final List<InetAddress> hosts;
- private final Random random = new Random();
-
- public ScoreUpdater(DynamicEndpointSnitch dsnitch, List<InetAddress> hosts)
- {
- this.dsnitch = dsnitch;
- this.hosts = hosts;
- }
-
- public void run()
- {
- while (!stopped)
- {
- InetAddress host = hosts.get(random.nextInt(hosts.size()));
- int score = random.nextInt(SCORE_RANGE);
- dsnitch.receiveTiming(host, score);
- }
- }
- }
}