Skip to content

Commit 538fe6c

Browse files
authored
TokenAwarePolicy: fix bad perf of ReplicaOrdering.RANDOM (#427)
`ReplicaOrdering.RANDOM` shows up to `20%` worse throughput. Switching from `java.util.Random `to `ThreadLocalRandom` showed `20%` improvement.
1 parent 85ae66e commit 538fe6c

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

driver-core/src/main/java/com/datastax/driver/core/policies/TokenAwarePolicy.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import java.util.Iterator;
4141
import java.util.List;
4242
import java.util.Set;
43+
import java.util.concurrent.ThreadLocalRandom;
4344

4445
/**
4546
* A wrapper load balancing policy that adds token awareness to a child policy.
@@ -250,7 +251,7 @@ protected Host computeNext() {
250251

251252
if (replicaOrdering == ReplicaOrdering.RANDOM) {
252253
List<Host> replicasList = Lists.newArrayList(replicas);
253-
Collections.shuffle(replicasList);
254+
Collections.shuffle(replicasList, ThreadLocalRandom.current());
254255
replicasIterator = replicasList.iterator();
255256
} else {
256257
replicasIterator = replicas.iterator();

0 commit comments

Comments
 (0)