You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ma...@apache.org on 2026/06/09 06:36:55 UTC
(cassandra) 02/06: Minor TokenMap performance improvement
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 <ma...@apache.org>
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: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org