This is an automated email from the ASF dual-hosted git repository.

maedhroz pushed a commit to branch cassandra-4.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/cassandra-4.0 by this push:
     new d5cea135c9 Revert unnecessary read lock acquisition when reading ring 
version in TokenMetadata introduced in CASSANDRA-16286
d5cea135c9 is described below

commit d5cea135c98bb98b16b215d309ead22e86f1329f
Author: Caleb Rackliffe <calebrackli...@gmail.com>
AuthorDate: Mon Jan 8 15:23:35 2024 -0600

    Revert unnecessary read lock acquisition when reading ring version in 
TokenMetadata introduced in CASSANDRA-16286
    
    patch by Caleb Rackliffe; reviewed by Francisco Guerrero for CASSANDRA-19107
---
 CHANGES.txt                                                 |  1 +
 src/java/org/apache/cassandra/locator/TokenMetadata.java    | 13 ++-----------
 .../org/apache/cassandra/locator/TokenMetadataTest.java     |  2 +-
 3 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 771cf1f3c0..0edb216735 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 4.0.12
+ * Revert unnecessary read lock acquisition when reading ring version in 
TokenMetadata introduced in CASSANDRA-16286 (CASSANDRA-19107)
  * Support max SSTable size in sorted CQLSSTableWriter (CASSANDRA-18941)
  * Fix nodetool repair_admin summarize-pending command to not throw exception 
(CASSANDRA-19014)
  * Fix cassandra-stress in simplenative mode with prepared statements 
(CASSANDRA-18744)
diff --git a/src/java/org/apache/cassandra/locator/TokenMetadata.java 
b/src/java/org/apache/cassandra/locator/TokenMetadata.java
index 92551ac1bf..39f43289da 100644
--- a/src/java/org/apache/cassandra/locator/TokenMetadata.java
+++ b/src/java/org/apache/cassandra/locator/TokenMetadata.java
@@ -111,7 +111,7 @@ public class TokenMetadata
 
     // signals replication strategies that nodes have joined or left the ring 
and they need to recompute ownership
     @GuardedBy("lock")
-    private long ringVersion = 0;
+    private volatile long ringVersion = 0;
 
     public TokenMetadata()
     {
@@ -1372,16 +1372,7 @@ public class TokenMetadata
 
     public long getRingVersion()
     {
-        lock.readLock().lock();
-
-        try
-        {
-            return ringVersion;
-        }
-        finally
-        {
-            lock.readLock().unlock();
-        }
+        return ringVersion;
     }
 
     public void invalidateCachedRings()
diff --git a/test/unit/org/apache/cassandra/locator/TokenMetadataTest.java 
b/test/unit/org/apache/cassandra/locator/TokenMetadataTest.java
index 9e34b93bf1..429069a1dc 100644
--- a/test/unit/org/apache/cassandra/locator/TokenMetadataTest.java
+++ b/test/unit/org/apache/cassandra/locator/TokenMetadataTest.java
@@ -79,7 +79,7 @@ public class TokenMetadataTest
 
         ExecutorService pool = 
Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() + 1);
         
-        int invalidations = 1024;
+        int invalidations = 2048;
         
         for (int i = 0; i < invalidations; i++)
             pool.execute(() -> tmd.invalidateCachedRings());


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to