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))); }
boolean thisHostResponded = false; boolean atLeastOneHostResponded = false; for (InetSocketAddress host : getCachedServers()) { thisHostResponded = false; try {
private void sanityCheckRingConsistency() { Multimap<Set<TokenRange>, InetSocketAddress> tokenRangesToHost = HashMultimap.create(); for (InetSocketAddress host : getCachedServers()) { CassandraClient client = null; try {
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))); }
boolean thisHostResponded = false; boolean atLeastOneHostResponded = false; for (InetSocketAddress host : getCachedServers()) { thisHostResponded = false; try {
private void sanityCheckRingConsistency() { Multimap<Set<TokenRange>, InetSocketAddress> tokenRangesToHost = HashMultimap.create(); for (InetSocketAddress host : getCachedServers()) { CassandraClient client = null; try {