From 1c70149ef512212d9cf8f57cb703fce92bf3dafa Mon Sep 17 00:00:00 2001 From: Ekaterina Dimitrova Date: Thu, 21 Jul 2022 20:30:48 -0400 Subject: [PATCH] Fix Settings Virtual Table to update paxos_variant after startup and rename enable_uuid_sstable_identifiers to uuid_sstable_identifiers_enabled as per our config naming conventions patch by Ekaterina Dimitrova; reviewed by Brandon Williams for CASSANDRA-17738 --- CHANGES.txt | 2 ++ NEWS.txt | 1 + conf/cassandra.yaml | 2 +- src/java/org/apache/cassandra/config/Config.java | 2 +- .../cassandra/config/DatabaseDescriptor.java | 2 +- .../apache/cassandra/service/StartupChecks.java | 2 +- .../org/apache/cassandra/service/paxos/Paxos.java | 1 + .../distributed/test/SSTableIdGenerationTest.java | 2 +- .../apache/cassandra/service/StorageProxyTest.java | 14 ++++++++++++++ 9 files changed, 23 insertions(+), 5 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index f85d13ca09..daea0c35ba 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,6 @@ 4.1-alpha2 + * Fix Settings Virtual Table to update paxos_variant after startup and rename enable_uuid_sstable_identifiers to + uuid_sstable_identifiers_enabled as per our config naming conventions (CASSANDRA-17738) * index_summary_resize_interval_in_minutes = -1 is equivalent to index_summary_resize_interval being set to null or disabled. JMX MBean IndexSummaryManager, setResizeIntervalInMinutes method still takes resizeIntervalInMinutes = -1 for disabled (CASSANDRA-17735) * min_tracked_partition_size_bytes parameter from 4.1 alpha1 was renamed to min_tracked_partition_size (CASSANDRA-17733) diff --git a/NEWS.txt b/NEWS.txt index 5e7af0f640..dc346281c2 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -165,6 +165,7 @@ New features Upgrading --------- + - `enable_uuid_sstable_identifiers` parameter from 4.1 alpha1 was renamed to `uuid_sstable_identifiers_enabled`. - `index_summary_resize_interval_in_minutes = -1` is equivalent to index_summary_resize_interval being set to `null` or disabled. JMX MBean `IndexSummaryManager`, `setResizeIntervalInMinutes` method still takes `resizeIntervalInMinutes = -1` for disabled. - min_tracked_partition_size_bytes parameter from 4.1 alpha1 was renamed to min_tracked_partition_size. diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml index f576aa47eb..04d055abb3 100644 --- a/conf/cassandra.yaml +++ b/conf/cassandra.yaml @@ -1000,7 +1000,7 @@ sstable_preemptive_open_interval: 50MiB # set to true, each newly created sstable will have a UUID based generation identifier and such files are # not readable by previous Cassandra versions. At some point, this option will become true by default # and eventually get removed from the configuration. -enable_uuid_sstable_identifiers: false +uuid_sstable_identifiers_enabled: false # When enabled, permits Cassandra to zero-copy stream entire eligible # SSTables between nodes, including every component. diff --git a/src/java/org/apache/cassandra/config/Config.java b/src/java/org/apache/cassandra/config/Config.java index eefbd03932..d4cebbbbd8 100644 --- a/src/java/org/apache/cassandra/config/Config.java +++ b/src/java/org/apache/cassandra/config/Config.java @@ -777,7 +777,7 @@ public class Config public volatile boolean auto_optimise_preview_repair_streams = false; // see CASSANDRA-17048 and the comment in cassandra.yaml - public boolean enable_uuid_sstable_identifiers = false; + public boolean uuid_sstable_identifiers_enabled = false; /** * Client mode means that the process is a pure client, that uses C* code base but does diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java index 397daa97dd..7479b723c7 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -4156,7 +4156,7 @@ public class DatabaseDescriptor public static boolean isUUIDSSTableIdentifiersEnabled() { - return conf.enable_uuid_sstable_identifiers; + return conf.uuid_sstable_identifiers_enabled; } public static DurationSpec.LongNanosecondsBound getRepairStateExpires() diff --git a/src/java/org/apache/cassandra/service/StartupChecks.java b/src/java/org/apache/cassandra/service/StartupChecks.java index 93a1d6ca3f..2ab5381697 100644 --- a/src/java/org/apache/cassandra/service/StartupChecks.java +++ b/src/java/org/apache/cassandra/service/StartupChecks.java @@ -605,7 +605,7 @@ public class StartupChecks "UUID sstable identifiers are disabled but some sstables have been " + "created with UUID identifiers. You have to either delete those " + "sstables or enable UUID based sstable identifers in cassandra.yaml " + - "(enable_uuid_sstable_identifiers). The list of affected sstables is: " + + "(uuid_sstable_identifiers_enabled). The list of affected sstables is: " + Joiner.on(", ").join(withIllegalGenId) + ". If you decide to delete sstables, " + "and have that data replicated over other healthy nodes, those will be brought" + "back during repair"); diff --git a/src/java/org/apache/cassandra/service/paxos/Paxos.java b/src/java/org/apache/cassandra/service/paxos/Paxos.java index 8ae26f7c01..cd5ab1e588 100644 --- a/src/java/org/apache/cassandra/service/paxos/Paxos.java +++ b/src/java/org/apache/cassandra/service/paxos/Paxos.java @@ -1201,6 +1201,7 @@ public class Paxos { Preconditions.checkNotNull(paxosVariant); PAXOS_VARIANT = paxosVariant; + DatabaseDescriptor.setPaxosVariant(paxosVariant); } public static Config.PaxosVariant getPaxosVariant() diff --git a/test/distributed/org/apache/cassandra/distributed/test/SSTableIdGenerationTest.java b/test/distributed/org/apache/cassandra/distributed/test/SSTableIdGenerationTest.java index 8505638026..8d05f3dc71 100644 --- a/test/distributed/org/apache/cassandra/distributed/test/SSTableIdGenerationTest.java +++ b/test/distributed/org/apache/cassandra/distributed/test/SSTableIdGenerationTest.java @@ -71,7 +71,7 @@ import static org.assertj.core.api.Assertions.assertThat; public class SSTableIdGenerationTest extends TestBaseImpl { - private final static String ENABLE_UUID_FIELD_NAME = "enable_uuid_sstable_identifiers"; + private final static String ENABLE_UUID_FIELD_NAME = "uuid_sstable_identifiers_enabled"; private final static String SNAPSHOT_TAG = "test"; private int v; diff --git a/test/unit/org/apache/cassandra/service/StorageProxyTest.java b/test/unit/org/apache/cassandra/service/StorageProxyTest.java index 41742f0c08..6f45673390 100644 --- a/test/unit/org/apache/cassandra/service/StorageProxyTest.java +++ b/test/unit/org/apache/cassandra/service/StorageProxyTest.java @@ -30,6 +30,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.apache.cassandra.ServerTestUtils; +import org.apache.cassandra.config.Config; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.gms.EndpointState; import org.apache.cassandra.gms.Gossiper; @@ -52,6 +53,19 @@ public class StorageProxyTest ServerTestUtils.mkdirs(); } + @Test + public void testSetGetPaxosVariant() + { + Assert.assertEquals(Config.PaxosVariant.v1, DatabaseDescriptor.getPaxosVariant()); + Assert.assertEquals("v1", StorageProxy.instance.getPaxosVariant()); + StorageProxy.instance.setPaxosVariant("v2"); + Assert.assertEquals("v2", StorageProxy.instance.getPaxosVariant()); + Assert.assertEquals(Config.PaxosVariant.v2, DatabaseDescriptor.getPaxosVariant()); + DatabaseDescriptor.setPaxosVariant(Config.PaxosVariant.v1); + Assert.assertEquals(Config.PaxosVariant.v1, DatabaseDescriptor.getPaxosVariant()); + Assert.assertEquals(Config.PaxosVariant.v1, DatabaseDescriptor.getPaxosVariant()); + } + @Test public void testShouldHint() throws Exception {