Skip to content

Commit fb59761

Browse files
committed
TokenAwarePolicy: fix bad perf of ReplicaOrdering.RANDOM
ReplicaOrdering.RANDOM shows up to 20% whorse throughtput. Switching from java.util.Random to `ThreadLocalRandom` showed 20% improvement.
1 parent 85ae66e commit fb59761

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

Lines changed: 2 additions & 1 deletion
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)