private void setServersInPoolTo(Set<InetSocketAddress> desiredServers) { Set<InetSocketAddress> serversToRemove = Sets.newHashSet(); Set<InetSocketAddress> serversToAdd = Sets.newHashSet(); Set<InetSocketAddress> cachedServers = getCachedServers(); serversToAdd.addAll(Sets.difference(desiredServers, cachedServers)); serversToRemove.addAll(Sets.difference(cachedServers, desiredServers)); serversToAdd.forEach(cassandra::addPool); serversToRemove.forEach(cassandra::removePool); if (!(serversToAdd.isEmpty() && serversToRemove.isEmpty())) { // if we made any changes sanityCheckRingConsistency(); cassandra.refreshTokenRangesAndGetServers(); } log.debug("Cassandra pool refresh added hosts {}, removed hosts {}.", SafeArg.of("serversToAdd", CassandraLogHelper.collectionOfHosts(serversToAdd)), SafeArg.of("serversToRemove", CassandraLogHelper.collectionOfHosts(serversToRemove))); }
private void setServersInPoolTo(Set<InetSocketAddress> desiredServers) { Set<InetSocketAddress> serversToRemove = Sets.newHashSet(); Set<InetSocketAddress> serversToAdd = Sets.newHashSet(); Set<InetSocketAddress> cachedServers = getCachedServers(); serversToAdd.addAll(Sets.difference(desiredServers, cachedServers)); serversToRemove.addAll(Sets.difference(cachedServers, desiredServers)); serversToAdd.forEach(cassandra::addPool); serversToRemove.forEach(cassandra::removePool); if (!(serversToAdd.isEmpty() && serversToRemove.isEmpty())) { // if we made any changes sanityCheckRingConsistency(); cassandra.refreshTokenRangesAndGetServers(); } log.debug("Cassandra pool refresh added hosts {}, removed hosts {}.", SafeArg.of("serversToAdd", CassandraLogHelper.collectionOfHosts(serversToAdd)), SafeArg.of("serversToRemove", CassandraLogHelper.collectionOfHosts(serversToRemove))); }