diff --git a/CHANGES.txt b/CHANGES.txt index d0190865ea..33753cb531 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -18,6 +18,10 @@ * Add guardrail for ALTER TABLE ADD / DROP / REMOVE column operations (CASSANDRA-17495) * Rename DisableFlag class to EnableFlag on guardrails (CASSANDRA-17544) Merged from 4.1: + * 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) * Remove commons-lang dependency during build runtime (CASSANDRA-17724) * Relax synchronization on StreamSession#onError() to avoid deadlock (CASSANDRA-17706) diff --git a/NEWS.txt b/NEWS.txt index 87946a9b3c..15892196d0 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -198,6 +198,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 b193a2a699..9d0ce117a0 100644 --- a/conf/cassandra.yaml +++ b/conf/cassandra.yaml @@ -1012,7 +1012,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 dc752ffaa7..c996f54658 100644 --- a/src/java/org/apache/cassandra/config/Config.java +++ b/src/java/org/apache/cassandra/config/Config.java @@ -780,7 +780,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 aa704a824e..58619cc27e 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -4171,7 +4171,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 {