public class NetworkTopologyStrategy extends AbstractReplicationStrategy
This Replication Strategy takes a property file that gives the intended replication factor in each datacenter. The sum total of the datacenter replication factor values should be equal to the keyspace replication factor.
So for example, if the keyspace replication factor is 6, the datacenter replication factors could be 3, 2, and 1 - so 3 replicas in one datacenter, 2 in another, and 1 in another - totaling 6.
This class also caches the Endpoints and invalidates the cache if there is a change in the number of tokens.| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
REPLICATION_FACTOR |
configOptions, keyspaceName, snitch| Constructor and Description |
|---|
NetworkTopologyStrategy(java.lang.String keyspaceName,
TokenMetadata tokenMetadata,
IEndpointSnitch snitch,
java.util.Map<java.lang.String,java.lang.String> configOptions) |
| Modifier and Type | Method and Description |
|---|---|
EndpointsForRange |
calculateNaturalReplicas(Token searchToken,
TokenMetadata tokenMetadata)
calculate endpoints in one pass through the tokens by tracking our progress in each DC.
|
java.util.Set<java.lang.String> |
getDatacenters() |
ReplicationFactor |
getReplicationFactor()
calculate the RF based on strategy_options.
|
ReplicationFactor |
getReplicationFactor(java.lang.String dc) |
boolean |
hasSameSettings(AbstractReplicationStrategy other) |
void |
maybeWarnOnOptions() |
protected static void |
prepareOptions(java.util.Map<java.lang.String,java.lang.String> options,
java.util.Map<java.lang.String,java.lang.String> previousOptions)
Support datacenter auto-expansion for CASSANDRA-14303.
|
java.util.Collection<java.lang.String> |
recognizedOptions() |
protected void |
validateExpectedOptions() |
void |
validateOptions() |
createReplicationStrategy, getAddressReplicas, getAddressReplicas, getAddressReplicas, getAddressReplicas, getCachedReplicas, getClass, getLocalReplicaFor, getNaturalReplicas, getNaturalReplicasForToken, getPendingAddressRanges, getPendingAddressRanges, getRangeAddresses, getWriteResponseHandler, getWriteResponseHandler, hasTransientReplicas, prepareReplicationStrategyOptions, validateReplicationFactor, validateReplicationStrategypublic static final java.lang.String REPLICATION_FACTOR
public NetworkTopologyStrategy(java.lang.String keyspaceName,
TokenMetadata tokenMetadata,
IEndpointSnitch snitch,
java.util.Map<java.lang.String,java.lang.String> configOptions)
throws ConfigurationException
ConfigurationExceptionpublic EndpointsForRange calculateNaturalReplicas(Token searchToken, TokenMetadata tokenMetadata)
calculateNaturalReplicas in class AbstractReplicationStrategysearchToken - the token to find the natural endpoints fortokenMetadata - the token metadata used to find the searchToken, e.g. contains token to endpoint
mapping informationAbstractReplicationStrategy.getNaturalReplicasForToken(org.apache.cassandra.dht.RingPosition)public ReplicationFactor getReplicationFactor()
AbstractReplicationStrategygetReplicationFactor in class AbstractReplicationStrategypublic ReplicationFactor getReplicationFactor(java.lang.String dc)
public java.util.Set<java.lang.String> getDatacenters()
public java.util.Collection<java.lang.String> recognizedOptions()
recognizedOptions in class AbstractReplicationStrategyprotected static void prepareOptions(java.util.Map<java.lang.String,java.lang.String> options,
java.util.Map<java.lang.String,java.lang.String> previousOptions)
AbstractReplicationStrategy.prepareReplicationStrategyOptions(Class, Map, Map).options - The proposed strategy options that will be potentially mutatedpreviousOptions - Any previous strategy options in the case of an ALTER statementprotected void validateExpectedOptions()
throws ConfigurationException
validateExpectedOptions in class AbstractReplicationStrategyConfigurationExceptionpublic void validateOptions()
throws ConfigurationException
validateOptions in class AbstractReplicationStrategyConfigurationExceptionpublic void maybeWarnOnOptions()
maybeWarnOnOptions in class AbstractReplicationStrategypublic boolean hasSameSettings(AbstractReplicationStrategy other)
hasSameSettings in class AbstractReplicationStrategyCopyright © 2009-2022 The Apache Software Foundation