diff --git a/server/src/main/java/org/elasticsearch/cluster/coordination/CoordinationMetadata.java b/server/src/main/java/org/elasticsearch/cluster/coordination/CoordinationMetadata.java index d3b80348de6d9..5d6c3a89e92a4 100644 --- a/server/src/main/java/org/elasticsearch/cluster/coordination/CoordinationMetadata.java +++ b/server/src/main/java/org/elasticsearch/cluster/coordination/CoordinationMetadata.java @@ -346,9 +346,13 @@ public void writeTo(StreamOutput out) throws IOException { } public boolean hasQuorum(Collection votes) { - final HashSet intersection = new HashSet<>(nodeIds); - intersection.retainAll(votes); - return intersection.size() * 2 > nodeIds.size(); + int votedNodesCount = 0; + for (String nodeId : nodeIds) { + if (votes.contains(nodeId)) { + votedNodesCount++; + } + } + return votedNodesCount * 2 > nodeIds.size(); } public Set getNodeIds() {