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