diff --git a/CHANGES.txt b/CHANGES.txt index d734275a61..264a5bb548 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -126,6 +126,7 @@ Merged from 4.1: * Fix StackOverflowError on ALTER after many previous schema changes (CASSANDRA-19166) * Memoize Cassandra verion (CASSANDRA-18902) Merged from 4.0: + * Use default commitlog settings in test YAMLs (CASSANDRA-19830) * Do not spam log with SSLExceptions (CASSANDRA-18839) * Fix schema.cql created by a snapshot after dropping more than one column (CASSANDRA-19747) * UnsupportedOperationException when reducing scope for LCS compactions (CASSANDRA-19704) diff --git a/test/conf/cassandra-mtls-backward-compatibility.yaml b/test/conf/cassandra-mtls-backward-compatibility.yaml index 7e5a2fd29d..66c8b21d2e 100644 --- a/test/conf/cassandra-mtls-backward-compatibility.yaml +++ b/test/conf/cassandra-mtls-backward-compatibility.yaml @@ -21,7 +21,8 @@ # cluster_name: Test Cluster memtable_allocation_type: offheap_objects -commitlog_sync: batch +commitlog_sync: periodic +commitlog_sync_period: 10s commitlog_segment_size: 5MiB commitlog_directory: build/test/cassandra/commitlog cdc_raw_directory: build/test/cassandra/cdc_raw diff --git a/test/conf/cassandra-mtls.yaml b/test/conf/cassandra-mtls.yaml index 84c7f9b2b6..d6f1b3e52c 100644 --- a/test/conf/cassandra-mtls.yaml +++ b/test/conf/cassandra-mtls.yaml @@ -21,7 +21,8 @@ # cluster_name: Test Cluster memtable_allocation_type: offheap_objects -commitlog_sync: batch +commitlog_sync: periodic +commitlog_sync_period: 10s commitlog_segment_size: 5MiB commitlog_directory: build/test/cassandra/commitlog cdc_raw_directory: build/test/cassandra/cdc_raw diff --git a/test/conf/cassandra-murmur.yaml b/test/conf/cassandra-murmur.yaml index 32170a1a74..2e5828fb56 100644 --- a/test/conf/cassandra-murmur.yaml +++ b/test/conf/cassandra-murmur.yaml @@ -4,7 +4,8 @@ # cluster_name: Test Cluster memtable_allocation_type: heap_buffers -commitlog_sync: batch +commitlog_sync: periodic +commitlog_sync_period: 10s commitlog_segment_size: 5MiB commitlog_directory: build/test/cassandra/commitlog cdc_raw_directory: build/test/cassandra/cdc_raw diff --git a/test/conf/cassandra-old.yaml b/test/conf/cassandra-old.yaml index 05d1b64fed..b8c3b028c5 100644 --- a/test/conf/cassandra-old.yaml +++ b/test/conf/cassandra-old.yaml @@ -5,7 +5,8 @@ cluster_name: Test Cluster # memtable_allocation_type: heap_buffers memtable_allocation_type: offheap_objects -commitlog_sync: batch +commitlog_sync: periodic +commitlog_sync_period: 10s commitlog_segment_size_in_mb: 5 commitlog_directory: build/test/cassandra/commitlog # commitlog_compression: diff --git a/test/conf/cassandra-pem-jks-sslcontextfactory.yaml b/test/conf/cassandra-pem-jks-sslcontextfactory.yaml index f0115b4814..0bd034d5ae 100644 --- a/test/conf/cassandra-pem-jks-sslcontextfactory.yaml +++ b/test/conf/cassandra-pem-jks-sslcontextfactory.yaml @@ -23,7 +23,8 @@ cluster_name: Test Cluster # memtable_allocation_type: heap_buffers memtable_allocation_type: offheap_objects -commitlog_sync: batch +commitlog_sync: periodic +commitlog_sync_period: 10s commitlog_segment_size: 5MiB commitlog_directory: build/test/cassandra/commitlog # commitlog_compression: diff --git a/test/conf/cassandra-pem-sslcontextfactory-invalidconfiguration.yaml b/test/conf/cassandra-pem-sslcontextfactory-invalidconfiguration.yaml index fb1cf319c3..16cffb58bd 100644 --- a/test/conf/cassandra-pem-sslcontextfactory-invalidconfiguration.yaml +++ b/test/conf/cassandra-pem-sslcontextfactory-invalidconfiguration.yaml @@ -23,7 +23,8 @@ cluster_name: Test Cluster # memtable_allocation_type: heap_buffers memtable_allocation_type: offheap_objects -commitlog_sync: batch +commitlog_sync: periodic +commitlog_sync_period: 10s commitlog_segment_size: 5MiB commitlog_directory: build/test/cassandra/commitlog # commitlog_compression: diff --git a/test/conf/cassandra-pem-sslcontextfactory-mismatching-passwords.yaml b/test/conf/cassandra-pem-sslcontextfactory-mismatching-passwords.yaml index 90ca4c52ca..7a96f24176 100644 --- a/test/conf/cassandra-pem-sslcontextfactory-mismatching-passwords.yaml +++ b/test/conf/cassandra-pem-sslcontextfactory-mismatching-passwords.yaml @@ -23,7 +23,8 @@ cluster_name: Test Cluster # memtable_allocation_type: heap_buffers memtable_allocation_type: offheap_objects -commitlog_sync: batch +commitlog_sync: periodic +commitlog_sync_period: 10s commitlog_segment_size: 5MiB commitlog_directory: build/test/cassandra/commitlog # commitlog_compression: diff --git a/test/conf/cassandra-pem-sslcontextfactory-unencryptedkeys.yaml b/test/conf/cassandra-pem-sslcontextfactory-unencryptedkeys.yaml index 9a66c2829e..8221c78b56 100644 --- a/test/conf/cassandra-pem-sslcontextfactory-unencryptedkeys.yaml +++ b/test/conf/cassandra-pem-sslcontextfactory-unencryptedkeys.yaml @@ -23,7 +23,8 @@ cluster_name: Test Cluster # memtable_allocation_type: heap_buffers memtable_allocation_type: offheap_objects -commitlog_sync: batch +commitlog_sync: periodic +commitlog_sync_period: 10s commitlog_segment_size: 5MiB commitlog_directory: build/test/cassandra/commitlog # commitlog_compression: diff --git a/test/conf/cassandra-pem-sslcontextfactory.yaml b/test/conf/cassandra-pem-sslcontextfactory.yaml index 029fc4147c..229a0b03fd 100644 --- a/test/conf/cassandra-pem-sslcontextfactory.yaml +++ b/test/conf/cassandra-pem-sslcontextfactory.yaml @@ -23,7 +23,8 @@ cluster_name: Test Cluster # memtable_allocation_type: heap_buffers memtable_allocation_type: offheap_objects -commitlog_sync: batch +commitlog_sync: periodic +commitlog_sync_period: 10s commitlog_segment_size: 5MiB commitlog_directory: build/test/cassandra/commitlog # commitlog_compression: diff --git a/test/conf/cassandra-seeds.yaml b/test/conf/cassandra-seeds.yaml index 6b3814f817..53f82dd6ec 100644 --- a/test/conf/cassandra-seeds.yaml +++ b/test/conf/cassandra-seeds.yaml @@ -5,7 +5,8 @@ cluster_name: Test Cluster # memtable_allocation_type: heap_buffers memtable_allocation_type: offheap_objects -commitlog_sync: batch +commitlog_sync: periodic +commitlog_sync_period: 10s commitlog_segment_size: 5MiB commitlog_directory: build/test/cassandra/commitlog cdc_raw_directory: build/test/cassandra/cdc_raw diff --git a/test/conf/cassandra-sslcontextfactory-invalidconfiguration.yaml b/test/conf/cassandra-sslcontextfactory-invalidconfiguration.yaml index cfe6f5538b..6b74883360 100644 --- a/test/conf/cassandra-sslcontextfactory-invalidconfiguration.yaml +++ b/test/conf/cassandra-sslcontextfactory-invalidconfiguration.yaml @@ -23,7 +23,8 @@ cluster_name: Test Cluster # memtable_allocation_type: heap_buffers memtable_allocation_type: offheap_objects -commitlog_sync: batch +commitlog_sync: periodic +commitlog_sync_period: 10s commitlog_segment_size: 5MiB commitlog_directory: build/test/cassandra/commitlog # commitlog_compression: diff --git a/test/conf/cassandra-sslcontextfactory.yaml b/test/conf/cassandra-sslcontextfactory.yaml index 177459f175..a20d26e59b 100644 --- a/test/conf/cassandra-sslcontextfactory.yaml +++ b/test/conf/cassandra-sslcontextfactory.yaml @@ -23,7 +23,8 @@ cluster_name: Test Cluster # memtable_allocation_type: heap_buffers memtable_allocation_type: offheap_objects -commitlog_sync: batch +commitlog_sync: periodic +commitlog_sync_period: 10s commitlog_segment_size: 5MiB commitlog_directory: build/test/cassandra/commitlog # commitlog_compression: diff --git a/test/conf/cassandra.yaml b/test/conf/cassandra.yaml index d04fa43dc7..e9ba02c441 100644 --- a/test/conf/cassandra.yaml +++ b/test/conf/cassandra.yaml @@ -5,7 +5,8 @@ cluster_name: Test Cluster memtable_allocation_type: heap_buffers # memtable_allocation_type: offheap_objects -commitlog_sync: batch +commitlog_sync: periodic +commitlog_sync_period: 10s commitlog_segment_size: 5MiB commitlog_directory: build/test/cassandra/commitlog commitlog_disk_access_mode: legacy diff --git a/test/conf/unit-test-conf/test-native-port.yaml b/test/conf/unit-test-conf/test-native-port.yaml index dc47a560f0..172ddf7c1e 100644 --- a/test/conf/unit-test-conf/test-native-port.yaml +++ b/test/conf/unit-test-conf/test-native-port.yaml @@ -5,7 +5,8 @@ cluster_name: Test Cluster # memtable_allocation_type: heap_buffers memtable_allocation_type: offheap_objects -commitlog_sync: batch +commitlog_sync: periodic +commitlog_sync_period: 10s commitlog_segment_size: 5MiB commitlog_directory: build/test/cassandra/commitlog # commitlog_compression: diff --git a/test/distributed/org/apache/cassandra/distributed/impl/InstanceConfig.java b/test/distributed/org/apache/cassandra/distributed/impl/InstanceConfig.java index cb6f26dc87..603b10ca7e 100644 --- a/test/distributed/org/apache/cassandra/distributed/impl/InstanceConfig.java +++ b/test/distributed/org/apache/cassandra/distributed/impl/InstanceConfig.java @@ -101,7 +101,8 @@ public class InstanceConfig implements IInstanceConfig .set("memtable_flush_writers", 1) .set("concurrent_compactors", 1) .set("memtable_heap_space", "10MiB") - .set("commitlog_sync", "batch") + .set("commitlog_sync", "periodic") + .set("commitlog_sync_period_in_ms", 10000) .set("storage_port", storage_port) .set("native_transport_port", native_transport_port) .set("endpoint_snitch", DistributedTestSnitch.class.getName()) diff --git a/test/distributed/org/apache/cassandra/distributed/test/ReplicaFilteringProtectionTest.java b/test/distributed/org/apache/cassandra/distributed/test/ReplicaFilteringProtectionTest.java index 9eab100f2c..fd8110cba7 100644 --- a/test/distributed/org/apache/cassandra/distributed/test/ReplicaFilteringProtectionTest.java +++ b/test/distributed/org/apache/cassandra/distributed/test/ReplicaFilteringProtectionTest.java @@ -57,8 +57,7 @@ public class ReplicaFilteringProtectionTest extends TestBaseImpl { cluster = init(Cluster.build() .withNodes(REPLICAS) - .withConfig(config -> config.set("hinted_handoff_enabled", false) - .set("commitlog_sync", "batch")).start()); + .withConfig(config -> config.set("hinted_handoff_enabled", false)).start()); // Make sure we start w/ the correct defaults: cluster.get(1).runOnInstance(() -> assertEquals(DEFAULT_WARN_THRESHOLD, StorageService.instance.getCachedReplicaRowsWarnThreshold())); diff --git a/test/simulator/main/org/apache/cassandra/simulator/ClusterSimulation.java b/test/simulator/main/org/apache/cassandra/simulator/ClusterSimulation.java index b775ae22a6..ef09270932 100644 --- a/test/simulator/main/org/apache/cassandra/simulator/ClusterSimulation.java +++ b/test/simulator/main/org/apache/cassandra/simulator/ClusterSimulation.java @@ -52,6 +52,7 @@ import org.apache.cassandra.distributed.api.IIsolatedExecutor.SerializableBiCons import org.apache.cassandra.distributed.api.IIsolatedExecutor.SerializableConsumer; import org.apache.cassandra.distributed.api.IIsolatedExecutor.SerializableRunnable; import org.apache.cassandra.distributed.impl.DirectStreamingConnectionFactory; +import org.apache.cassandra.distributed.impl.InstanceConfig; import org.apache.cassandra.distributed.impl.InstanceIDDefiner; import org.apache.cassandra.distributed.impl.IsolatedExecutor; import org.apache.cassandra.io.compress.LZ4Compressor; @@ -710,21 +711,32 @@ public class ClusterSimulation implements AutoCloseable cluster = snitch.setup(Cluster.build(numOfNodes) .withRoot(fs.getPath("/cassandra")) .withSharedClasses(sharedClassPredicate) - .withConfig(config -> configUpdater.accept(threadAllocator.update(config - .with(Feature.BLANK_GOSSIP) - .set(Constants.KEY_DTEST_JOIN_RING, false) - .set("read_request_timeout", String.format("%dms", NANOSECONDS.toMillis(builder.readTimeoutNanos))) - .set("write_request_timeout", String.format("%dms", NANOSECONDS.toMillis(builder.writeTimeoutNanos))) - .set("cas_contention_timeout", String.format("%dms", NANOSECONDS.toMillis(builder.contentionTimeoutNanos))) - .set("request_timeout", String.format("%dms", NANOSECONDS.toMillis(builder.requestTimeoutNanos))) - .set("memtable_heap_space", "1MiB") - .set("memtable_allocation_type", builder.memoryListener != null ? "unslabbed_heap_buffers_logged" : "heap_buffers") - .set("file_cache_size", "16MiB") - .set("use_deterministic_table_id", true) - .set("disk_access_mode", "standard") - .set("failure_detector", SimulatedFailureDetector.Instance.class.getName()) - .set("commitlog_compression", new ParameterizedClass(LZ4Compressor.class.getName(), emptyMap())) - ))) + .withConfig(config -> { + config.with(Feature.BLANK_GOSSIP) + .set(Constants.KEY_DTEST_JOIN_RING, false) + .set("read_request_timeout", String.format("%dms", NANOSECONDS.toMillis(builder.readTimeoutNanos))) + .set("write_request_timeout", String.format("%dms", NANOSECONDS.toMillis(builder.writeTimeoutNanos))) + .set("cas_contention_timeout", String.format("%dms", NANOSECONDS.toMillis(builder.contentionTimeoutNanos))) + .set("request_timeout", String.format("%dms", NANOSECONDS.toMillis(builder.requestTimeoutNanos))) + .set("memtable_heap_space", "1MiB") + .set("memtable_allocation_type", builder.memoryListener != null ? "unslabbed_heap_buffers_logged" : "heap_buffers") + .set("file_cache_size", "16MiB") + .set("use_deterministic_table_id", true) + .set("disk_access_mode", "standard") + .set("failure_detector", SimulatedFailureDetector.Instance.class.getName()) + .set("commitlog_compression", new ParameterizedClass(LZ4Compressor.class.getName(), emptyMap())) + .set("commitlog_sync", "batch"); + + // TODO: Add remove() to IInstanceConfig + if (config instanceof InstanceConfig) + { + InstanceConfig instanceConfig = (InstanceConfig) config; + instanceConfig.remove("commitlog_sync_period_in_ms"); + instanceConfig.remove("commitlog_sync_period"); + } + + configUpdater.accept(threadAllocator.update(config)); + }) .withInstanceInitializer(new IInstanceInitializer() { @Override diff --git a/test/unit/org/apache/cassandra/config/FailStartupDuplicateParamsTest.java b/test/unit/org/apache/cassandra/config/FailStartupDuplicateParamsTest.java index 341a0e83ec..f14c68b727 100644 --- a/test/unit/org/apache/cassandra/config/FailStartupDuplicateParamsTest.java +++ b/test/unit/org/apache/cassandra/config/FailStartupDuplicateParamsTest.java @@ -42,7 +42,8 @@ public class FailStartupDuplicateParamsTest { private static final List baseConfig = ImmutableList.of( "cluster_name: Test Cluster", - "commitlog_sync: batch", + "commitlog_sync: periodic", + "commitlog_sync_period: 10s", "commitlog_directory: build/test/cassandra/commitlog", "hints_directory: build/test/cassandra/hints", "partitioner: org.apache.cassandra.dht.ByteOrderedPartitioner", diff --git a/test/unit/org/apache/cassandra/config/LoadOldYAMLBackwardCompatibilityTest.java b/test/unit/org/apache/cassandra/config/LoadOldYAMLBackwardCompatibilityTest.java index 8554ed4b20..aab430b7a4 100644 --- a/test/unit/org/apache/cassandra/config/LoadOldYAMLBackwardCompatibilityTest.java +++ b/test/unit/org/apache/cassandra/config/LoadOldYAMLBackwardCompatibilityTest.java @@ -80,7 +80,7 @@ public class LoadOldYAMLBackwardCompatibilityTest assertEquals(new DataRateSpec.LongBytesPerSecondBound(24L * 1024L * 1024L), config.inter_dc_stream_throughput_outbound); assertNull(config.commitlog_total_space); assertEquals(new DurationSpec.IntMillisecondsBound(0.0, TimeUnit.MILLISECONDS), config.commitlog_sync_group_window); - assertEquals(new DurationSpec.IntMillisecondsBound(0), config.commitlog_sync_period); + assertEquals(new DurationSpec.IntMillisecondsBound(10000), config.commitlog_sync_period); assertEquals(new DataStorageSpec.IntMebibytesBound(5), config.commitlog_segment_size); assertNull(config.periodic_commitlog_sync_lag_block); //Integer assertNull(config.max_mutation_size); diff --git a/test/unit/org/apache/cassandra/config/ParseAndConvertUnitsTest.java b/test/unit/org/apache/cassandra/config/ParseAndConvertUnitsTest.java index 01b1bfcaac..7d28f09453 100644 --- a/test/unit/org/apache/cassandra/config/ParseAndConvertUnitsTest.java +++ b/test/unit/org/apache/cassandra/config/ParseAndConvertUnitsTest.java @@ -53,7 +53,7 @@ public class ParseAndConvertUnitsTest assertEquals(new DurationSpec.IntMillisecondsBound(2000), config.internode_tcp_connect_timeout); assertEquals(new DurationSpec.IntMillisecondsBound(30000), config.internode_tcp_user_timeout); assertEquals(new DurationSpec.IntMillisecondsBound(0), config.commitlog_sync_group_window); - assertEquals(new DurationSpec.IntMillisecondsBound(0), config.commitlog_sync_period); + assertEquals(new DurationSpec.IntMillisecondsBound(10000), config.commitlog_sync_period); assertNull(config.periodic_commitlog_sync_lag_block); assertEquals(new DurationSpec.IntMillisecondsBound(250), config.cdc_free_space_check_interval); assertEquals(new DurationSpec.IntMillisecondsBound(100), config.dynamic_snitch_update_interval); diff --git a/test/unit/org/apache/cassandra/cql3/CQLTester.java b/test/unit/org/apache/cassandra/cql3/CQLTester.java index 6195fce256..00cee8e573 100644 --- a/test/unit/org/apache/cassandra/cql3/CQLTester.java +++ b/test/unit/org/apache/cassandra/cql3/CQLTester.java @@ -420,6 +420,14 @@ public abstract class CQLTester */ @BeforeClass public static void setUpClass() + { + prePrepareServer(); + + // Once per-JVM is enough + prepareServer(); + } + + protected static void prePrepareServer() { CassandraRelevantProperties.SUPERUSER_SETUP_DELAY_MS.setLong(0); ServerTestUtils.daemonInitialization(); @@ -427,8 +435,6 @@ public abstract class CQLTester DatabaseDescriptor.setRowCacheSizeInMiB(ROW_CACHE_SIZE_IN_MIB); StorageService.instance.registerMBeans(); StorageService.instance.setPartitionerUnsafe(Murmur3Partitioner.instance); - // Once per-JVM is enough - prepareServer(); } @AfterClass diff --git a/test/unit/org/apache/cassandra/db/commitlog/CommitLogReaderTest.java b/test/unit/org/apache/cassandra/db/commitlog/CommitLogReaderTest.java index 02ce3f6438..23440ebfa8 100644 --- a/test/unit/org/apache/cassandra/db/commitlog/CommitLogReaderTest.java +++ b/test/unit/org/apache/cassandra/db/commitlog/CommitLogReaderTest.java @@ -44,10 +44,17 @@ import org.apache.cassandra.utils.KillerForTests; public class CommitLogReaderTest extends CQLTester { @BeforeClass - public static void beforeClass() + public static void setUpClass() { + prePrepareServer(); + DatabaseDescriptor.setCommitFailurePolicy(Config.CommitFailurePolicy.ignore); JVMStabilityInspector.replaceKiller(new KillerForTests(false)); + + DatabaseDescriptor.setCommitLogSync(Config.CommitLogSync.batch); + + // Once per-JVM is enough + prepareServer(); } @Before