Search in sources :

Example 1 with Iterables.filter

use of com.google.common.collect.Iterables.filter in project cassandra by apache.

the class HintsService method writeForAllReplicas.

/**
 * Write a hint for all replicas. Used to re-dispatch hints whose destination is either missing or no longer correct.
 */
void writeForAllReplicas(Hint hint) {
    String keyspaceName = hint.mutation.getKeyspaceName();
    Token token = hint.mutation.key().getToken();
    EndpointsForToken replicas = ReplicaLayout.forTokenWriteLiveAndDown(Keyspace.open(keyspaceName), token).all();
    // judicious use of streams: eagerly materializing probably cheaper
    // than performing filters / translations 2x extra via Iterables.filter/transform
    List<UUID> hostIds = replicas.stream().filter(replica -> StorageProxy.shouldHint(replica, false)).map(replica -> StorageService.instance.getHostIdForEndpoint(replica.endpoint())).collect(Collectors.toList());
    write(hostIds, hint);
}
Also used : InetAddressAndPort(org.apache.cassandra.locator.InetAddressAndPort) ScheduledExecutors(org.apache.cassandra.concurrent.ScheduledExecutors) StorageMetrics(org.apache.cassandra.metrics.StorageMetrics) ScheduledFuture(java.util.concurrent.ScheduledFuture) EndpointsForToken(org.apache.cassandra.locator.EndpointsForToken) Iterables.transform(com.google.common.collect.Iterables.transform) File(org.apache.cassandra.io.util.File) LoggerFactory(org.slf4j.LoggerFactory) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Supplier(java.util.function.Supplier) Token(org.apache.cassandra.dht.Token) Clock(org.apache.cassandra.utils.Clock) Map(java.util.Map) DatabaseDescriptor(org.apache.cassandra.config.DatabaseDescriptor) Keyspace(org.apache.cassandra.db.Keyspace) Logger(org.slf4j.Logger) ImmutableMap(com.google.common.collect.ImmutableMap) Collection(java.util.Collection) StorageService(org.apache.cassandra.service.StorageService) UUID(java.util.UUID) UnknownHostException(java.net.UnknownHostException) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) ExecutionException(java.util.concurrent.ExecutionException) TimeUnit(java.util.concurrent.TimeUnit) IFailureDetector(org.apache.cassandra.gms.IFailureDetector) UncheckedInterruptedException(org.apache.cassandra.utils.concurrent.UncheckedInterruptedException) List(java.util.List) ParameterizedClass(org.apache.cassandra.config.ParameterizedClass) StorageProxy(org.apache.cassandra.service.StorageProxy) Future(org.apache.cassandra.utils.concurrent.Future) MBeanWrapper(org.apache.cassandra.utils.MBeanWrapper) VisibleForTesting(com.google.common.annotations.VisibleForTesting) ReplicaLayout(org.apache.cassandra.locator.ReplicaLayout) Iterables.filter(com.google.common.collect.Iterables.filter) FailureDetector(org.apache.cassandra.gms.FailureDetector) Collections(java.util.Collections) HintedHandoffMetrics(org.apache.cassandra.metrics.HintedHandoffMetrics) EndpointsForToken(org.apache.cassandra.locator.EndpointsForToken) EndpointsForToken(org.apache.cassandra.locator.EndpointsForToken) Token(org.apache.cassandra.dht.Token) UUID(java.util.UUID)

Aggregations

VisibleForTesting (com.google.common.annotations.VisibleForTesting)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 Iterables.filter (com.google.common.collect.Iterables.filter)1 Iterables.transform (com.google.common.collect.Iterables.transform)1 UnknownHostException (java.net.UnknownHostException)1 Collection (java.util.Collection)1 Collections (java.util.Collections)1 List (java.util.List)1 Map (java.util.Map)1 Objects (java.util.Objects)1 UUID (java.util.UUID)1 ExecutionException (java.util.concurrent.ExecutionException)1 ScheduledFuture (java.util.concurrent.ScheduledFuture)1 TimeUnit (java.util.concurrent.TimeUnit)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1 Supplier (java.util.function.Supplier)1 Collectors (java.util.stream.Collectors)1 ScheduledExecutors (org.apache.cassandra.concurrent.ScheduledExecutors)1 DatabaseDescriptor (org.apache.cassandra.config.DatabaseDescriptor)1 ParameterizedClass (org.apache.cassandra.config.ParameterizedClass)1