This is an automated email from the ASF dual-hosted git repository. asf-gitbox-commits pushed a commit to branch cassandra-6.0 in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit b6c274933ea872acb96c229613f7fae4cf92dfae Author: Marcus Eriksson <[email protected]> AuthorDate: Mon Mar 16 15:04:41 2026 +0100 Minor TokenMap performance improvement Patch by marcuse; reviewed by Dmitry Konstantinov and Sam Tunnicliffe for CASSANDRA-21223 --- CHANGES.txt | 1 + .../org/apache/cassandra/tcm/ownership/TokenMap.java | 18 +++--------------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index fcb0f59a8d..86f388f22d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 6.0-alpha2 + * Minor TokenMap performance improvement (CASSANDRA-21223) * Handle lost response when committing PrepareMove (CASSANDRA-21222) * SEPExecutor.maybeExecuteImmediately does not always execute tasks immediately despite available worker capacity (CASSANDRA-21429) * Safely regain ranges and delete retired command stores (CASSANDRA-21212) diff --git a/src/java/org/apache/cassandra/tcm/ownership/TokenMap.java b/src/java/org/apache/cassandra/tcm/ownership/TokenMap.java index ed82642c8a..993fded7df 100644 --- a/src/java/org/apache/cassandra/tcm/ownership/TokenMap.java +++ b/src/java/org/apache/cassandra/tcm/ownership/TokenMap.java @@ -55,7 +55,7 @@ public class TokenMap implements MetadataValue<TokenMap> private static final Logger logger = LoggerFactory.getLogger(TokenMap.class); private final SortedBiMultiValMap<Token, NodeId> map; - private final List<Token> tokens; + private final ImmutableList<Token> tokens; private final List<Range<Token>> ranges; // TODO: move partitioner to the users (SimpleStrategy and Uniform Range Placement?) private final IPartitioner partitioner; @@ -71,7 +71,7 @@ public class TokenMap implements MetadataValue<TokenMap> this.lastModified = lastModified; this.partitioner = partitioner; this.map = map; - this.tokens = tokens(); + this.tokens = ImmutableList.copyOf(map.keySet()); this.ranges = toRanges(tokens, partitioner); } @@ -101,18 +101,6 @@ public class TokenMap implements MetadataValue<TokenMap> return new TokenMap(lastModified, partitioner, finalisedCopy); } - public TokenMap unassignTokens(NodeId id, Collection<Token> tokens) - { - SortedBiMultiValMap<Token, NodeId> finalisedCopy = SortedBiMultiValMap.create(map); - for (Token token : tokens) - { - NodeId nodeId = finalisedCopy.remove(token); - assert nodeId.equals(id); - } - - return new TokenMap(lastModified, partitioner, finalisedCopy); - } - public SortedBiMultiValMap<Token, NodeId> asMap() { return SortedBiMultiValMap.create(map); @@ -130,7 +118,7 @@ public class TokenMap implements MetadataValue<TokenMap> public ImmutableList<Token> tokens() { - return ImmutableList.copyOf(map.keySet()); + return tokens; } public ImmutableList<Token> tokens(NodeId nodeId) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
