Github user aweisberg commented on a diff in the pull request:

    https://github.com/apache/cassandra/pull/271#discussion_r220640121
  
    --- Diff: src/java/org/apache/cassandra/locator/RangesAtEndpoint.java ---
    @@ -25,40 +25,41 @@
     import org.apache.cassandra.dht.Token;
     
     import java.net.UnknownHostException;
    -import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Collection;
     import java.util.Collections;
    -import java.util.LinkedHashMap;
     import java.util.List;
     import java.util.Map;
     import java.util.Objects;
     import java.util.Set;
     import java.util.stream.Collector;
    -import java.util.stream.Collectors;
     
    -import static 
org.apache.cassandra.locator.ReplicaCollection.Mutable.Conflict.*;
    +import static 
org.apache.cassandra.locator.ReplicaCollection.Builder.Conflict.*;
     
     /**
      * A ReplicaCollection for Ranges occurring at an endpoint. All Replica 
will be for the same endpoint,
      * and must be unique Ranges (though overlapping ranges are presently 
permitted, these should probably not be permitted to occur)
      */
     public class RangesAtEndpoint extends 
AbstractReplicaCollection<RangesAtEndpoint>
     {
    -    private static final Map<Range<Token>, Replica> EMPTY_MAP = 
Collections.unmodifiableMap(new LinkedHashMap<>());
    +    private static ReplicaMap<Range<Token>> rangeMap(ReplicaList list) { 
return new ReplicaMap<>(list, Replica::range); }
    +    private static final ReplicaMap<Range<Token>> EMPTY_MAP = 
rangeMap(EMPTY_LIST);
     
         private final InetAddressAndPort endpoint;
    -    private volatile Map<Range<Token>, Replica> byRange;
    -    private volatile RangesAtEndpoint fullRanges;
    -    private volatile RangesAtEndpoint transRanges;
     
    -    private RangesAtEndpoint(InetAddressAndPort endpoint, List<Replica> 
list, boolean isSnapshot)
    +    // volatile not needed, as all of these caching collections have final 
members,
    +    // besides (transitively) those that cache objects that themselves 
have only final members
    +    private ReplicaMap<Range<Token>> byRange;
    +    private RangesAtEndpoint onlyFull;
    +    private RangesAtEndpoint onlyTransient;
    +
    +    private RangesAtEndpoint(InetAddressAndPort endpoint, ReplicaList list)
    --- End diff --
    
    Unused


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to