org.apache.cassandra.locator
Class AbstractReplicationStrategy

java.lang.Object
  extended by org.apache.cassandra.locator.AbstractReplicationStrategy
Direct Known Subclasses:
DatacenterShardStategy, RackAwareStrategy, RackUnawareStrategy

public abstract class AbstractReplicationStrategy
extends java.lang.Object

This class contains a helper method that will be used by all abstraction that implement the IReplicaPlacementStrategy interface.


Field Summary
protected static org.apache.log4j.Logger logger_
           
protected  IPartitioner partitioner_
           
protected  int replicas_
           
protected  TokenMetadata tokenMetadata_
           
 
Method Summary
 com.google.common.collect.Multimap<java.net.InetAddress,Range> getAddressRanges()
           
 com.google.common.collect.Multimap<java.net.InetAddress,Range> getAddressRanges(TokenMetadata metadata)
           
 java.util.Map<java.net.InetAddress,java.net.InetAddress> getHintedEndpoints(Token token, java.util.Collection<java.net.InetAddress> naturalEndpoints)
           
 java.util.ArrayList<java.net.InetAddress> getNaturalEndpoints(Token token)
           
abstract  java.util.ArrayList<java.net.InetAddress> getNaturalEndpoints(Token token, TokenMetadata metadata)
           
 java.util.Collection<Range> getPendingAddressRanges(TokenMetadata metadata, Token pendingToken, java.net.InetAddress pendingAddress)
           
 com.google.common.collect.Multimap<Range,java.net.InetAddress> getRangeAddresses(TokenMetadata metadata)
           
 java.util.Collection<java.net.InetAddress> getWriteEndpoints(Token token, java.util.Collection<java.net.InetAddress> naturalEndpoints)
          write endpoints may be different from read endpoints, because read endpoints only need care about the "natural" nodes for a token, but write endpoints also need to account for nodes that are bootstrapping into the ring, and write data there too so that they stay up to date during the bootstrap process.
 WriteResponseHandler getWriteResponseHandler(int blockFor, int consistency_level)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger_

protected static final org.apache.log4j.Logger logger_

tokenMetadata_

protected TokenMetadata tokenMetadata_

partitioner_

protected IPartitioner partitioner_

replicas_

protected int replicas_
Method Detail

getNaturalEndpoints

public abstract java.util.ArrayList<java.net.InetAddress> getNaturalEndpoints(Token token,
                                                                              TokenMetadata metadata)

getWriteResponseHandler

public WriteResponseHandler getWriteResponseHandler(int blockFor,
                                                    int consistency_level)

getNaturalEndpoints

public java.util.ArrayList<java.net.InetAddress> getNaturalEndpoints(Token token)

getHintedEndpoints

public java.util.Map<java.net.InetAddress,java.net.InetAddress> getHintedEndpoints(Token token,
                                                                                   java.util.Collection<java.net.InetAddress> naturalEndpoints)

getWriteEndpoints

public java.util.Collection<java.net.InetAddress> getWriteEndpoints(Token token,
                                                                    java.util.Collection<java.net.InetAddress> naturalEndpoints)
write endpoints may be different from read endpoints, because read endpoints only need care about the "natural" nodes for a token, but write endpoints also need to account for nodes that are bootstrapping into the ring, and write data there too so that they stay up to date during the bootstrap process. Thus, this method may return more nodes than the Replication Factor. Only ReplicationStrategy should care about this method (higher level users should only ask for Hinted).


getAddressRanges

public com.google.common.collect.Multimap<java.net.InetAddress,Range> getAddressRanges(TokenMetadata metadata)

getRangeAddresses

public com.google.common.collect.Multimap<Range,java.net.InetAddress> getRangeAddresses(TokenMetadata metadata)

getAddressRanges

public com.google.common.collect.Multimap<java.net.InetAddress,Range> getAddressRanges()

getPendingAddressRanges

public java.util.Collection<Range> getPendingAddressRanges(TokenMetadata metadata,
                                                           Token pendingToken,
                                                           java.net.InetAddress pendingAddress)


Copyright © 2010 The Apache Software Foundation