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]

Reply via email to