public class TokenMetadata
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
TokenMetadata.Topology
Tracks the assignment of racks and endpoints in each datacenter for all the "normal" endpoints
in this TokenMetadata.
|
Modifier and Type | Field and Description |
---|---|
IPartitioner |
partitioner |
Constructor and Description |
---|
TokenMetadata() |
TokenMetadata(IEndpointSnitch snitch) |
Modifier and Type | Method and Description |
---|---|
void |
addBootstrapToken(Token token,
InetAddressAndPort endpoint)
Deprecated.
|
void |
addBootstrapTokens(java.util.Collection<Token> tokens,
InetAddressAndPort endpoint) |
void |
addLeavingEndpoint(InetAddressAndPort endpoint) |
void |
addMovingEndpoint(Token token,
InetAddressAndPort endpoint)
Add a new moving endpoint
|
void |
addReplaceTokens(java.util.Collection<Token> replacingTokens,
InetAddressAndPort newNode,
InetAddressAndPort oldNode) |
TokenMetadata |
cachedOnlyTokenMap()
Return a cached TokenMetadata with only tokenToEndpointMap, i.e., the same as cloneOnlyTokenMap but
uses a cached copy that is invalided when the ring changes, so in the common case
no extra locking is required.
|
void |
calculatePendingRanges(AbstractReplicationStrategy strategy,
java.lang.String keyspaceName)
Calculate pending ranges according to bootsrapping and leaving nodes.
|
void |
clearUnsafe()
used by tests
|
TokenMetadata |
cloneAfterAllLeft()
Create a copy of TokenMetadata with tokenToEndpointMap reflecting situation after all
current leave operations have finished.
|
TokenMetadata |
cloneAfterAllSettled()
Create a copy of TokenMetadata with tokenToEndpointMap reflecting situation after all
current leave, and move operations have finished.
|
TokenMetadata |
cloneOnlyTokenMap()
Create a copy of TokenMetadata with only tokenToEndpointMap.
|
TokenMetadata |
cloneWithNewPartitioner(IPartitioner newPartitioner)
To be used by tests only (via
StorageService.setPartitionerUnsafe(org.apache.cassandra.dht.IPartitioner) ). |
DecoratedKey |
decorateKey(java.nio.ByteBuffer key) |
static Token |
firstToken(java.util.ArrayList<Token> ring,
Token start) |
static int |
firstTokenIndex(java.util.ArrayList<Token> ring,
Token start,
boolean insertMin) |
java.util.Set<InetAddressAndPort> |
getAllEndpoints() |
java.util.Set<InetAddressAndPort> |
getAllMembers() |
BiMultiValMap<Token,InetAddressAndPort> |
getBootstrapTokens() |
com.google.common.collect.ImmutableMultimap<java.lang.String,InetAddressAndPort> |
getDC2AllEndpoints(IEndpointSnitch snitch) |
InetAddressAndPort |
getEndpoint(Token token) |
InetAddressAndPort |
getEndpointForHostId(java.util.UUID hostId)
Return the end-point for a unique host ID
|
java.util.Map<InetAddressAndPort,java.util.UUID> |
getEndpointToHostIdMapForReading() |
com.google.common.collect.Multimap<InetAddressAndPort,Token> |
getEndpointToTokenMapForReading() |
java.util.UUID |
getHostId(InetAddressAndPort endpoint)
Return the unique host ID for an end-point.
|
java.util.Set<InetAddressAndPort> |
getLeavingEndpoints()
caller should not modify leavingEndpoints
|
java.util.Set<Pair<Token,InetAddressAndPort>> |
getMovingEndpoints()
Endpoints which are migrating to the new tokens
|
java.util.Map<Token,InetAddressAndPort> |
getNormalAndBootstrappingTokenToEndpointMap() |
PendingRangeMaps |
getPendingRanges(java.lang.String keyspaceName)
a mutable map may be returned but caller should not modify it
|
RangesAtEndpoint |
getPendingRanges(java.lang.String keyspaceName,
InetAddressAndPort endpoint) |
EndpointsByRange |
getPendingRangesMM(java.lang.String keyspaceName) |
Token |
getPredecessor(Token token) |
Range<Token> |
getPrimaryRangeFor(Token right)
Deprecated.
|
java.util.Collection<Range<Token>> |
getPrimaryRangesFor(java.util.Collection<Token> tokens) |
java.util.Optional<InetAddressAndPort> |
getReplacementNode(InetAddressAndPort endpoint) |
java.util.Optional<InetAddressAndPort> |
getReplacingNode(InetAddressAndPort endpoint) |
long |
getRingVersion() |
int |
getSizeOfAllEndpoints() |
int |
getSizeOfLeavingEndpoints() |
int |
getSizeOfMovingEndpoints() |
Token |
getSuccessor(Token token) |
Token |
getToken(InetAddressAndPort endpoint)
Deprecated.
|
java.util.Collection<Token> |
getTokens(InetAddressAndPort endpoint) |
TokenMetadata.Topology |
getTopology() |
EndpointsForToken |
getWriteEndpoints(Token token,
java.lang.String keyspaceName,
EndpointsForToken natural)
Deprecated.
retained for benefit of old tests
|
void |
invalidateCachedRings() |
boolean |
isLeaving(InetAddressAndPort endpoint) |
boolean |
isMember(InetAddressAndPort endpoint) |
boolean |
isMoving(InetAddressAndPort endpoint) |
boolean |
isTokenInLocalPendingRange(java.lang.String keyspaceName,
Token token) |
EndpointsForToken |
pendingEndpointsForToken(Token token,
java.lang.String keyspaceName) |
int |
pendingRangeChanges(InetAddressAndPort source) |
void |
removeBootstrapTokens(java.util.Collection<Token> tokens) |
void |
removeEndpoint(InetAddressAndPort endpoint) |
void |
removeFromMoving(InetAddressAndPort endpoint)
Remove pair of token/address from moving endpoints
|
static java.util.Iterator<Token> |
ringIterator(java.util.ArrayList<Token> ring,
Token start,
boolean includeMin)
iterator over the Tokens in the given ring, starting with the token for the node owning start
(which does not have to be a Token in the ring)
|
void |
setPendingRangesUnsafe(java.lang.String keyspaceName,
com.google.common.collect.Multimap<Range<Token>,Replica> rangeMap) |
java.util.ArrayList<Token> |
sortedTokens() |
java.lang.String |
toString() |
void |
updateHostId(java.util.UUID hostId,
InetAddressAndPort endpoint)
Store an end-point to host ID mapping.
|
void |
updateNormalToken(Token token,
InetAddressAndPort endpoint)
Update token map with a single token/endpoint pair in normal state.
|
void |
updateNormalTokens(java.util.Collection<Token> tokens,
InetAddressAndPort endpoint) |
void |
updateNormalTokens(com.google.common.collect.Multimap<InetAddressAndPort,Token> endpointTokens)
Update token map with a set of token/endpoint pairs in normal state.
|
TokenMetadata.Topology |
updateTopology()
This is called when the snitch properties for many endpoints are updated, it will update
the topology mappings of any endpoints whose snitch has changed, see CASSANDRA-10238.
|
TokenMetadata.Topology |
updateTopology(InetAddressAndPort endpoint)
This is called when the snitch properties for this endpoint are updated, see CASSANDRA-10238.
|
public final IPartitioner partitioner
public TokenMetadata()
public TokenMetadata(IEndpointSnitch snitch)
public TokenMetadata cloneWithNewPartitioner(IPartitioner newPartitioner)
StorageService.setPartitionerUnsafe(org.apache.cassandra.dht.IPartitioner)
).public int pendingRangeChanges(InetAddressAndPort source)
public void updateNormalToken(Token token, InetAddressAndPort endpoint)
public void updateNormalTokens(java.util.Collection<Token> tokens, InetAddressAndPort endpoint)
public void updateNormalTokens(com.google.common.collect.Multimap<InetAddressAndPort,Token> endpointTokens)
public void updateHostId(java.util.UUID hostId, InetAddressAndPort endpoint)
public java.util.UUID getHostId(InetAddressAndPort endpoint)
public InetAddressAndPort getEndpointForHostId(java.util.UUID hostId)
public java.util.Map<InetAddressAndPort,java.util.UUID> getEndpointToHostIdMapForReading()
@Deprecated public void addBootstrapToken(Token token, InetAddressAndPort endpoint)
public void addBootstrapTokens(java.util.Collection<Token> tokens, InetAddressAndPort endpoint)
public void addReplaceTokens(java.util.Collection<Token> replacingTokens, InetAddressAndPort newNode, InetAddressAndPort oldNode)
public java.util.Optional<InetAddressAndPort> getReplacementNode(InetAddressAndPort endpoint)
public java.util.Optional<InetAddressAndPort> getReplacingNode(InetAddressAndPort endpoint)
public void removeBootstrapTokens(java.util.Collection<Token> tokens)
public void addLeavingEndpoint(InetAddressAndPort endpoint)
public void addMovingEndpoint(Token token, InetAddressAndPort endpoint)
token
- token which is node moving toendpoint
- address of the moving nodepublic void removeEndpoint(InetAddressAndPort endpoint)
public TokenMetadata.Topology updateTopology(InetAddressAndPort endpoint)
public TokenMetadata.Topology updateTopology()
public void removeFromMoving(InetAddressAndPort endpoint)
endpoint
- address of the moving nodepublic java.util.Collection<Token> getTokens(InetAddressAndPort endpoint)
@Deprecated public Token getToken(InetAddressAndPort endpoint)
public boolean isMember(InetAddressAndPort endpoint)
public boolean isLeaving(InetAddressAndPort endpoint)
public boolean isMoving(InetAddressAndPort endpoint)
public TokenMetadata cloneOnlyTokenMap()
public TokenMetadata cachedOnlyTokenMap()
public TokenMetadata cloneAfterAllLeft()
public TokenMetadata cloneAfterAllSettled()
public InetAddressAndPort getEndpoint(Token token)
public java.util.Collection<Range<Token>> getPrimaryRangesFor(java.util.Collection<Token> tokens)
public java.util.ArrayList<Token> sortedTokens()
public EndpointsByRange getPendingRangesMM(java.lang.String keyspaceName)
public PendingRangeMaps getPendingRanges(java.lang.String keyspaceName)
public RangesAtEndpoint getPendingRanges(java.lang.String keyspaceName, InetAddressAndPort endpoint)
public void setPendingRangesUnsafe(java.lang.String keyspaceName, com.google.common.collect.Multimap<Range<Token>,Replica> rangeMap)
public void calculatePendingRanges(AbstractReplicationStrategy strategy, java.lang.String keyspaceName)
public BiMultiValMap<Token,InetAddressAndPort> getBootstrapTokens()
public java.util.Set<InetAddressAndPort> getAllEndpoints()
public int getSizeOfAllEndpoints()
public java.util.Set<InetAddressAndPort> getAllMembers()
public java.util.Set<InetAddressAndPort> getLeavingEndpoints()
public int getSizeOfLeavingEndpoints()
public java.util.Set<Pair<Token,InetAddressAndPort>> getMovingEndpoints()
public int getSizeOfMovingEndpoints()
public static int firstTokenIndex(java.util.ArrayList<Token> ring, Token start, boolean insertMin)
public static java.util.Iterator<Token> ringIterator(java.util.ArrayList<Token> ring, Token start, boolean includeMin)
includeMin
- True if the minimum token should be returned in the ring even if it has no owner.public void clearUnsafe()
public java.lang.String toString()
toString
in class java.lang.Object
public EndpointsForToken pendingEndpointsForToken(Token token, java.lang.String keyspaceName)
@Deprecated public EndpointsForToken getWriteEndpoints(Token token, java.lang.String keyspaceName, EndpointsForToken natural)
public com.google.common.collect.Multimap<InetAddressAndPort,Token> getEndpointToTokenMapForReading()
public java.util.Map<Token,InetAddressAndPort> getNormalAndBootstrappingTokenToEndpointMap()
public com.google.common.collect.ImmutableMultimap<java.lang.String,InetAddressAndPort> getDC2AllEndpoints(IEndpointSnitch snitch)
public TokenMetadata.Topology getTopology()
public long getRingVersion()
public void invalidateCachedRings()
public DecoratedKey decorateKey(java.nio.ByteBuffer key)
public boolean isTokenInLocalPendingRange(java.lang.String keyspaceName, Token token)
Copyright © 2009- The Apache Software Foundation