You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by be...@apache.org on 2025/04/14 07:26:04 UTC
(cassandra) branch cassandra-5.0 updated (725e4ba3eb -> 0f9bb246cd)
This is an automated email from the ASF dual-hosted git repository.
bereng pushed a change to branch cassandra-5.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git
from 725e4ba3eb Avoid purging deletions in RowFilter when reconciliation is required
new fcea0b6fd8 CASSANDRA-19633 Replaced node is stuck in a loop calculating ranges
new 3e2e4c3ea1 Merge branch 'cassandra-4.0' into cassandra-4.1
new 0f9bb246cd Merge branch 'cassandra-4.1' into cassandra-5.0
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../config/CassandraRelevantProperties.java | 7 ++
.../org/apache/cassandra/dht/RangeStreamer.java | 9 ++-
.../org/apache/cassandra/dht/BootStrapperTest.java | 86 ++++++++++++++++++----
3 files changed, 84 insertions(+), 18 deletions(-)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org
(cassandra) 01/01: Merge branch 'cassandra-4.1' into cassandra-5.0
Posted by be...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
bereng pushed a commit to branch cassandra-5.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit 0f9bb246cd1b2a32cad947f26b63106ba858748b
Merge: 725e4ba3eb 3e2e4c3ea1
Author: Bereng <be...@gmail.com>
AuthorDate: Mon Apr 14 09:22:11 2025 +0200
Merge branch 'cassandra-4.1' into cassandra-5.0
* cassandra-4.1:
CASSANDRA-19633 Replaced node is stuck in a loop calculating ranges
.../config/CassandraRelevantProperties.java | 7 ++
.../org/apache/cassandra/dht/RangeStreamer.java | 9 ++-
.../org/apache/cassandra/dht/BootStrapperTest.java | 86 ++++++++++++++++++----
3 files changed, 84 insertions(+), 18 deletions(-)
diff --cc src/java/org/apache/cassandra/config/CassandraRelevantProperties.java
index c25b41e5fa,79962e774c..e1e080a0a4
--- a/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java
+++ b/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java
@@@ -341,282 -203,159 +341,289 @@@ public enum CassandraRelevantPropertie
* will set it automatically to {@link CassandraRelevantProperties#LOG_DIR} + "/audit".
*/
LOG_DIR_AUDIT("cassandra.logdir.audit"),
-
- CONSISTENT_DIRECTORY_LISTINGS("cassandra.consistent_directory_listings", "false"),
- CLOCK_GLOBAL("cassandra.clock", null),
- CLOCK_MONOTONIC_APPROX("cassandra.monotonic_clock.approx", null),
- CLOCK_MONOTONIC_PRECISE("cassandra.monotonic_clock.precise", null),
-
- /*
- * Whether {@link org.apache.cassandra.db.ConsistencyLevel#NODE_LOCAL} should be allowed.
- */
- ENABLE_NODELOCAL_QUERIES("cassandra.enable_nodelocal_queries", "false"),
-
- //cassandra properties (without the "cassandra." prefix)
-
- /**
- * The cassandra-foreground option will tell CassandraDaemon whether
- * to close stdout/stderr, but it's up to us not to background.
- * yes/null
- */
- CASSANDRA_FOREGROUND ("cassandra-foreground"),
-
- DEFAULT_PROVIDE_OVERLAPPING_TOMBSTONES ("default.provide.overlapping.tombstones"),
- ORG_APACHE_CASSANDRA_DISABLE_MBEAN_REGISTRATION ("org.apache.cassandra.disable_mbean_registration"),
-
- /** This property indicates whether disable_mbean_registration is true */
- IS_DISABLED_MBEAN_REGISTRATION("org.apache.cassandra.disable_mbean_registration"),
-
- /** snapshots ttl cleanup period in seconds */
- SNAPSHOT_CLEANUP_PERIOD_SECONDS("cassandra.snapshot.ttl_cleanup_period_seconds", "60"),
-
- /** snapshots ttl cleanup initial delay in seconds */
- SNAPSHOT_CLEANUP_INITIAL_DELAY_SECONDS("cassandra.snapshot.ttl_cleanup_initial_delay_seconds", "5"),
-
- /** minimum allowed TTL for snapshots */
- SNAPSHOT_MIN_ALLOWED_TTL_SECONDS("cassandra.snapshot.min_allowed_ttl_seconds", "60"),
-
+ /** Loosen the definition of "empty" for gossip state, for use during host replacements if things go awry */
+ LOOSE_DEF_OF_EMPTY_ENABLED(Config.PROPERTY_PREFIX + "gossiper.loose_empty_enabled"),
+ MAX_CONCURRENT_RANGE_REQUESTS("cassandra.max_concurrent_range_requests"),
+ MAX_HINT_BUFFERS("cassandra.MAX_HINT_BUFFERS", "3"),
+ MAX_LOCAL_PAUSE_IN_MS("cassandra.max_local_pause_in_ms", "5000"),
/** what class to use for mbean registeration */
MBEAN_REGISTRATION_CLASS("org.apache.cassandra.mbean_registration_class"),
-
- /** This property indicates if the code is running under the in-jvm dtest framework */
- DTEST_IS_IN_JVM_DTEST("org.apache.cassandra.dtest.is_in_jvm_dtest"),
-
- BATCH_COMMIT_LOG_SYNC_INTERVAL("cassandra.batch_commitlog_sync_interval_millis", "1000"),
-
- SYSTEM_AUTH_DEFAULT_RF("cassandra.system_auth.default_rf", "1"),
- SYSTEM_TRACES_DEFAULT_RF("cassandra.system_traces.default_rf", "2"),
- SYSTEM_DISTRIBUTED_DEFAULT_RF("cassandra.system_distributed.default_rf", "3"),
-
- MEMTABLE_OVERHEAD_SIZE("cassandra.memtable.row_overhead_size", "-1"),
MEMTABLE_OVERHEAD_COMPUTE_STEPS("cassandra.memtable_row_overhead_computation_step", "100000"),
+ MEMTABLE_OVERHEAD_SIZE("cassandra.memtable.row_overhead_size", "-1"),
+ MEMTABLE_SHARD_COUNT("cassandra.memtable.shard.count"),
+ MEMTABLE_TRIE_SIZE_LIMIT("cassandra.trie_size_limit_mb"),
MIGRATION_DELAY("cassandra.migration_delay_ms", "60000"),
- /** Defines how often schema definitions are pulled from the other nodes */
- SCHEMA_PULL_INTERVAL_MS("cassandra.schema_pull_interval_ms", "60000"),
-
+ /** Defines the maximum number of unique timed out queries that will be reported in the logs. Use a negative number to remove any limit. */
+ MONITORING_MAX_OPERATIONS("cassandra.monitoring_max_operations", "50"),
+ /** Defines the interval for reporting any operations that have timed out. */
+ MONITORING_REPORT_INTERVAL_MS("cassandra.monitoring_report_interval_ms", "5000"),
+ MV_ALLOW_FILTERING_NONKEY_COLUMNS_UNSAFE("cassandra.mv.allow_filtering_nonkey_columns_unsafe"),
+ MV_ENABLE_COORDINATOR_BATCHLOG("cassandra.mv_enable_coordinator_batchlog"),
+ /** mx4jaddress */
+ MX4JADDRESS("mx4jaddress"),
+ /** mx4jport */
+ MX4JPORT("mx4jport"),
+ NANOTIMETOMILLIS_TIMESTAMP_UPDATE_INTERVAL("cassandra.NANOTIMETOMILLIS_TIMESTAMP_UPDATE_INTERVAL", "10000"),
+ NATIVE_EPOLL_ENABLED("cassandra.native.epoll.enabled", "true"),
+ /** This is the port used with RPC address for the native protocol to communicate with clients. Now that thrift RPC is no longer in use there is no RPC port. */
+ NATIVE_TRANSPORT_PORT("cassandra.native_transport_port"),
+ NEVER_PURGE_TOMBSTONES("cassandra.never_purge_tombstones"),
+ NIO_DATA_OUTPUT_STREAM_PLUS_BUFFER_SIZE("cassandra.nio_data_output_stream_plus_buffer_size", convertToString(32 * 1024)),
+ NODETOOL_JMX_NOTIFICATION_POLL_INTERVAL_SECONDS("cassandra.nodetool.jmx_notification_poll_interval_seconds", convertToString(TimeUnit.SECONDS.convert(5, TimeUnit.MINUTES))),
+ /** If set, {@link org.apache.cassandra.net.MessagingService} is shutdown abrtuptly without waiting for anything.
+ * This is an optimization used in unit tests becuase we never restart a node there. The only node is stopoped
+ * when the JVM terminates. Therefore, we can use such optimization and not wait unnecessarily. */
+ NON_GRACEFUL_SHUTDOWN("cassandra.test.messagingService.nonGracefulShutdown"),
+ /** for specific tests */
+ /** This property indicates whether disable_mbean_registration is true */
+ ORG_APACHE_CASSANDRA_DISABLE_MBEAN_REGISTRATION("org.apache.cassandra.disable_mbean_registration"),
+ /** Operating system architecture. */
+ OS_ARCH("os.arch"),
+ /** Operating system name. */
+ OS_NAME("os.name"),
+ OTCP_LARGE_MESSAGE_THRESHOLD("cassandra.otcp_large_message_threshold", convertToString(1024 * 64)),
+ /** Enabled/disable TCP_NODELAY for intradc connections. Defaults is enabled. */
+ OTC_INTRADC_TCP_NODELAY("cassandra.otc_intradc_tcp_nodelay", "true"),
+ OVERRIDE_DECOMMISSION("cassandra.override_decommission"),
+ PARENT_REPAIR_STATUS_CACHE_SIZE("cassandra.parent_repair_status_cache_size", "100000"),
+ PARENT_REPAIR_STATUS_EXPIRY_SECONDS("cassandra.parent_repair_status_expiry_seconds", convertToString(TimeUnit.SECONDS.convert(1, TimeUnit.DAYS))),
+ PARTITIONER("cassandra.partitioner"),
+ PAXOS_CLEANUP_SESSION_TIMEOUT_SECONDS("cassandra.paxos_cleanup_session_timeout_seconds", convertToString(TimeUnit.HOURS.toSeconds(2))),
+ PAXOS_DISABLE_COORDINATOR_LOCKING("cassandra.paxos.disable_coordinator_locking"),
+ PAXOS_LOG_TTL_LINEARIZABILITY_VIOLATIONS("cassandra.paxos.log_ttl_linearizability_violations", "true"),
+ PAXOS_MODERN_RELEASE("cassandra.paxos.modern_release", "4.1"),
+ PAXOS_REPAIR_ALLOW_MULTIPLE_PENDING_UNSAFE("cassandra.paxos_repair_allow_multiple_pending_unsafe"),
+ PAXOS_REPAIR_ON_TOPOLOGY_CHANGE_RETRIES("cassandra.paxos_repair_on_topology_change_retries", "10"),
+ PAXOS_REPAIR_ON_TOPOLOGY_CHANGE_RETRY_DELAY_SECONDS("cassandra.paxos_repair_on_topology_change_retry_delay_seconds", "10"),
PAXOS_REPAIR_RETRY_TIMEOUT_IN_MS("cassandra.paxos_repair_retry_timeout_millis", "60000"),
+ PAXOS_USE_SELF_EXECUTION("cassandra.paxos.use_self_execution", "true"),
+ PRINT_HEAP_HISTOGRAM_ON_OUT_OF_MEMORY_ERROR("cassandra.printHeapHistogramOnOutOfMemoryError"),
+ READS_THRESHOLDS_COORDINATOR_DEFENSIVE_CHECKS_ENABLED("cassandra.reads.thresholds.coordinator.defensive_checks_enabled"),
+ RELEASE_VERSION("cassandra.releaseVersion"),
+ REPAIR_CLEANUP_INTERVAL_SECONDS("cassandra.repair_cleanup_interval_seconds", convertToString(Ints.checkedCast(TimeUnit.MINUTES.toSeconds(10)))),
+ REPAIR_DELETE_TIMEOUT_SECONDS("cassandra.repair_delete_timeout_seconds", convertToString(Ints.checkedCast(TimeUnit.DAYS.toSeconds(1)))),
+ REPAIR_FAIL_TIMEOUT_SECONDS("cassandra.repair_fail_timeout_seconds", convertToString(Ints.checkedCast(TimeUnit.DAYS.toSeconds(1)))),
+ REPAIR_MUTATION_REPAIR_ROWS_PER_BATCH("cassandra.repair.mutation_repair_rows_per_batch", "100"),
+ REPAIR_STATUS_CHECK_TIMEOUT_SECONDS("cassandra.repair_status_check_timeout_seconds", convertToString(Ints.checkedCast(TimeUnit.HOURS.toSeconds(1)))),
+ /**
+ * When doing a host replacement its possible that the gossip state is "empty" meaning that the endpoint is known
+ * but the current state isn't known. If the host replacement is needed to repair this state, this property must
+ * be true.
+ */
+ REPLACEMENT_ALLOW_EMPTY("cassandra.allow_empty_replace_address", "true"),
+ REPLACE_ADDRESS("cassandra.replace_address"),
+ REPLACE_ADDRESS_FIRST_BOOT("cassandra.replace_address_first_boot"),
+ REPLACE_NODE("cassandra.replace_node"),
+ REPLACE_TOKEN("cassandra.replace_token"),
+ /**
+ * Number of replicas required to store batchlog for atomicity, only accepts values of 1 or 2.
+ */
+ REQUIRED_BATCHLOG_REPLICA_COUNT("cassandra.batchlog.required_replica_count", "2"),
+ /**
+ * Whether we reset any found data from previously run bootstraps.
+ */
+ RESET_BOOTSTRAP_PROGRESS("cassandra.reset_bootstrap_progress"),
+ RING_DELAY("cassandra.ring_delay_ms"),
- /** If we should allow having duplicate keys in the config file, default to true for legacy reasons */
- ALLOW_DUPLICATE_CONFIG_KEYS("cassandra.allow_duplicate_config_keys", "true"),
- /** If we should allow having both new (post CASSANDRA-15234) and old config keys for the same config item in the yaml */
- ALLOW_NEW_OLD_CONFIG_KEYS("cassandra.allow_new_old_config_keys", "false"),
-
- // startup checks properties
- LIBJEMALLOC("cassandra.libjemalloc"),
- @Deprecated // should be removed in favor of enable flag of relevant startup check (checkDatacenter)
- IGNORE_DC("cassandra.ignore_dc"),
- @Deprecated // should be removed in favor of enable flag of relevant startup check (checkRack)
- IGNORE_RACK("cassandra.ignore_rack"),
- @Deprecated // should be removed in favor of enable flag of relevant startup check (FileSystemOwnershipCheck)
- FILE_SYSTEM_CHECK_ENABLE("cassandra.enable_fs_ownership_check"),
- @Deprecated // should be removed in favor of flags in relevant startup check (FileSystemOwnershipCheck)
- FILE_SYSTEM_CHECK_OWNERSHIP_FILENAME("cassandra.fs_ownership_filename", FileSystemOwnershipCheck.DEFAULT_FS_OWNERSHIP_FILENAME),
- @Deprecated // should be removed in favor of flags in relevant startup check (FileSystemOwnershipCheck)
- FILE_SYSTEM_CHECK_OWNERSHIP_TOKEN(FileSystemOwnershipCheck.FILE_SYSTEM_CHECK_OWNERSHIP_TOKEN),
- // default heartbeating period is 1 minute
- CHECK_DATA_RESURRECTION_HEARTBEAT_PERIOD("check_data_resurrection_heartbeat_period_milli", "60000"),
-
- // defaults to false for 4.1 but plan to switch to true in a later release
- // the thinking is that environments may not work right off the bat so safer to add this feature disabled by default
- CONFIG_ALLOW_SYSTEM_PROPERTIES("cassandra.config.allow_system_properties", "false"),
+ // SAI specific properties
- // properties for debugging simulator ASM output
- TEST_SIMULATOR_PRINT_ASM("cassandra.test.simulator.print_asm", "none"),
- TEST_SIMULATOR_PRINT_ASM_TYPES("cassandra.test.simulator.print_asm_types", ""),
- TEST_SIMULATOR_LIVENESS_CHECK("cassandra.test.simulator.livenesscheck", "true"),
- TEST_SIMULATOR_DEBUG("cassandra.test.simulator.debug", "false"),
- TEST_SIMULATOR_DETERMINISM_CHECK("cassandra.test.simulator.determinismcheck", "none"),
- TEST_JVM_DTEST_DISABLE_SSL("cassandra.test.disable_ssl", "false"),
+ /** Controls the maximum number of index query intersections that will take part in a query */
+ SAI_INTERSECTION_CLAUSE_LIMIT("cassandra.sai.intersection_clause_limit", "2"),
+ /** Latest version to be used for SAI index writing */
+ SAI_LATEST_VERSION("cassandra.sai.latest_version", "aa"),
- // determinism properties for testing
- DETERMINISM_SSTABLE_COMPRESSION_DEFAULT("cassandra.sstable_compression_default", "true"),
- DETERMINISM_CONSISTENT_DIRECTORY_LISTINGS("cassandra.consistent_directory_listings", "false"),
- DETERMINISM_UNSAFE_UUID_NODE("cassandra.unsafe.deterministicuuidnode", "false"),
- FAILURE_LOGGING_INTERVAL_SECONDS("cassandra.request_failure_log_interval_seconds", "60"),
+ /** Minimum number of reachable leaves for a given node to be eligible for an auxiliary posting list */
+ SAI_MINIMUM_POSTINGS_LEAVES("cassandra.sai.minimum_postings_leaves", "64"),
- // properties to disable certain behaviours for testing
- DISABLE_GOSSIP_ENDPOINT_REMOVAL("cassandra.gossip.disable_endpoint_removal"),
- IGNORE_MISSING_NATIVE_FILE_HINTS("cassandra.require_native_file_hints", "false"),
- DISABLE_SSTABLE_ACTIVITY_TRACKING("cassandra.sstable_activity_tracking", "true"),
- TEST_IGNORE_SIGAR("cassandra.test.ignore_sigar", "false"),
- PAXOS_EXECUTE_ON_SELF("cassandra.paxos.use_self_execution", "true"),
+ /**
+ * Skip, or the sampling interval, for selecting a balanced tree level that is eligible for an auxiliary posting list.
+ * Sampling starts from 0, but balanced tree root node is at level 1. For skip = 4, eligible levels are 4, 8, 12, etc. (no
+ * level 0, because there is no node at level 0).
+ */
+ SAI_POSTINGS_SKIP("cassandra.sai.postings_skip", "3"),
- /** property for the rate of the scheduled task that monitors disk usage */
- DISK_USAGE_MONITOR_INTERVAL_MS("cassandra.disk_usage.monitor_interval_ms", Long.toString(TimeUnit.SECONDS.toMillis(30))),
+ /**
+ * Used to determine the block size and block mask for the clustering sorted terms.
+ */
+ SAI_SORTED_TERMS_CLUSTERING_BLOCK_SHIFT("cassandra.sai.sorted_terms_clustering_block_shift", "4"),
- /** property for the interval on which the repeated client warnings and diagnostic events about disk usage are ignored */
- DISK_USAGE_NOTIFY_INTERVAL_MS("cassandra.disk_usage.notify_interval_ms", Long.toString(TimeUnit.MINUTES.toMillis(30))),
+ /**
+ * Used to determine the block size and block mask for the partition sorted terms.
+ */
+ SAI_SORTED_TERMS_PARTITION_BLOCK_SHIFT("cassandra.sai.sorted_terms_partition_block_shift", "4"),
- // for specific tests
- ORG_APACHE_CASSANDRA_CONF_CASSANDRA_RELEVANT_PROPERTIES_TEST("org.apache.cassandra.conf.CassandraRelevantPropertiesTest"),
- ORG_APACHE_CASSANDRA_DB_VIRTUAL_SYSTEM_PROPERTIES_TABLE_TEST("org.apache.cassandra.db.virtual.SystemPropertiesTableTest"),
+ SAI_TEST_BALANCED_TREE_DEBUG_ENABLED("cassandra.sai.test.balanced_tree_debug_enabled", "false"),
+ SAI_TEST_DISABLE_TIMEOUT("cassandra.sai.test.timeout_disabled", "false"),
- /** Used when running in Client mode and the system and schema keyspaces need to be initialized outside of their normal initialization path **/
- FORCE_LOAD_LOCAL_KEYSPACES("cassandra.schema.force_load_local_keyspaces"),
+ /** Whether to allow the user to specify custom options to the hnsw index */
+ SAI_VECTOR_ALLOW_CUSTOM_PARAMETERS("cassandra.sai.vector.allow_custom_parameters", "false"),
- /** When enabled, recursive directory deletion will be executed using a unix command `rm -rf` instead of traversing
- * and removing individual files. This is now used only tests, but eventually we will make it true by default.*/
- USE_NIX_RECURSIVE_DELETE("cassandra.use_nix_recursive_delete"),
-
- /** If set, {@link org.apache.cassandra.net.MessagingService} is shutdown abrtuptly without waiting for anything.
- * This is an optimization used in unit tests becuase we never restart a node there. The only node is stopoped
- * when the JVM terminates. Therefore, we can use such optimization and not wait unnecessarily. */
- NON_GRACEFUL_SHUTDOWN("cassandra.test.messagingService.nonGracefulShutdown"),
-
- /** Flush changes of {@link org.apache.cassandra.schema.SchemaKeyspace} after each schema modification. In production,
- * we always do that. However, tests which do not restart nodes may disable this functionality in order to run
- * faster. Note that this is disabled for unit tests but if an individual test requires schema to be flushed, it
- * can be also done manually for that particular case: {@code flush(SchemaConstants.SCHEMA_KEYSPACE_NAME);}. */
- FLUSH_LOCAL_SCHEMA_CHANGES("cassandra.test.flush_local_schema_changes", "true"),
+ /** Controls the maximum top-k limit for vector search */
+ SAI_VECTOR_SEARCH_MAX_TOP_K("cassandra.sai.vector_search.max_top_k", "1000"),
/**
- * Delay before checking if gossip is settled.
+ * Controls the maximum number of PrimaryKeys that will be read into memory at one time when ordering/limiting
+ * the results of an ANN query constrained by non-ANN predicates.
*/
- GOSSIP_SETTLE_MIN_WAIT_MS("cassandra.gossip_settle_min_wait_ms", "5000"),
+ SAI_VECTOR_SEARCH_ORDER_CHUNK_SIZE("cassandra.sai.vector_search.order_chunk_size", "100000"),
- /**
- * Interval delay between checking gossip is settled.
- */
- GOSSIP_SETTLE_POLL_INTERVAL_MS("cassandra.gossip_settle_interval_ms", "1000"),
+ SCHEMA_PULL_INTERVAL_MS("cassandra.schema_pull_interval_ms", "60000"),
+ SCHEMA_UPDATE_HANDLER_FACTORY_CLASS("cassandra.schema.update_handler_factory.class"),
+ SEARCH_CONCURRENCY_FACTOR("cassandra.search_concurrency_factor", "1"),
/**
- * Number of polls without gossip state change to consider gossip as settled.
+ * The maximum number of seeds returned by a seed provider before emmitting a warning.
+ * A large seed list may impact effectiveness of the third gossip round.
+ * The default used in SimpleSeedProvider is 20.
*/
- GOSSIP_SETTLE_POLL_SUCCESSES_REQUIRED("cassandra.gossip_settle_poll_success_required", "3"),
+ SEED_COUNT_WARN_THRESHOLD("cassandra.seed_count_warn_threshold"),
+ SERIALIZATION_EMPTY_TYPE_NONEMPTY_BEHAVIOR("cassandra.serialization.emptytype.nonempty_behavior"),
+ SET_SEP_THREAD_NAME("cassandra.set_sep_thread_name", "true"),
+ SHUTDOWN_ANNOUNCE_DELAY_IN_MS("cassandra.shutdown_announce_in_ms", "2000"),
+ SIZE_RECORDER_INTERVAL("cassandra.size_recorder_interval", "300"),
+
+ /**
- * Number of replicas required to store batchlog for atomicity, only accepts values of 1 or 2.
++ * Do not try to calculate optimal streaming candidates. This can take a lot of time in some configs specially
++ * with vnodes.
+ */
- REQUIRED_BATCHLOG_REPLICA_COUNT("cassandra.batchlog.required_replica_count", "2"),
++ SKIP_OPTIMAL_STREAMING_CANDIDATES_CALCULATION("cassandra.skip_optimal_streaming_candidates_calculation", "false"),
+
+ SKIP_PAXOS_REPAIR_ON_TOPOLOGY_CHANGE("cassandra.skip_paxos_repair_on_topology_change"),
+ /** If necessary for operational purposes, permit certain keyspaces to be ignored for paxos topology repairs. */
+ SKIP_PAXOS_REPAIR_ON_TOPOLOGY_CHANGE_KEYSPACES("cassandra.skip_paxos_repair_on_topology_change_keyspaces"),
+ SKIP_PAXOS_REPAIR_VERSION_VALIDATION("cassandra.skip_paxos_repair_version_validation"),
+ SKIP_PAXOS_STATE_REBUILD("cassandra.skip_paxos_state_rebuild"),
+ /** snapshots ttl cleanup initial delay in seconds */
+ SNAPSHOT_CLEANUP_INITIAL_DELAY_SECONDS("cassandra.snapshot.ttl_cleanup_initial_delay_seconds", "5"),
+ /** snapshots ttl cleanup period in seconds */
+ SNAPSHOT_CLEANUP_PERIOD_SECONDS("cassandra.snapshot.ttl_cleanup_period_seconds", "60"),
+ /** minimum allowed TTL for snapshots */
+ SNAPSHOT_MIN_ALLOWED_TTL_SECONDS("cassandra.snapshot.min_allowed_ttl_seconds", "60"),
+ SSL_ENABLE("ssl.enable"),
+ SSL_STORAGE_PORT("cassandra.ssl_storage_port"),
+ SSTABLE_FORMAT_DEFAULT("cassandra.sstable.format.default"),
+ START_GOSSIP("cassandra.start_gossip", "true"),
+ START_NATIVE_TRANSPORT("cassandra.start_native_transport"),
+ STORAGE_DIR("cassandra.storagedir"),
+ STORAGE_HOOK("cassandra.storage_hook"),
+ STORAGE_PORT("cassandra.storage_port"),
+ STREAMING_HISTOGRAM_ROUND_SECONDS("cassandra.streaminghistogram.roundseconds", "60"),
+ STREAMING_SESSION_PARALLELTRANSFERS("cassandra.streaming.session.parallelTransfers"),
+ STREAM_HOOK("cassandra.stream_hook"),
+ /** Platform word size sun.arch.data.model. Examples: "32", "64", "unknown"*/
+ SUN_ARCH_DATA_MODEL("sun.arch.data.model"),
+ SUN_JAVA_COMMAND("sun.java.command", ""),
/**
- * Do not try to calculate optimal streaming candidates. This can take a lot of time in some configs specially
- * with vnodes.
+ * Controls the JMX server threadpool keap-alive time.
+ * Should only be set by in-jvm dtests.
*/
- SKIP_OPTIMAL_STREAMING_CANDIDATES_CALCULATION("cassandra.skip_optimal_streaming_candidates_calculation", "false");
+ SUN_RMI_TRANSPORT_TCP_THREADKEEPALIVETIME("sun.rmi.transport.tcp.threadKeepAliveTime"),
+ SUN_STDERR_ENCODING("sun.stderr.encoding"),
+ SUN_STDOUT_ENCODING("sun.stdout.encoding"),
+ SUPERUSER_SETUP_DELAY_MS("cassandra.superuser_setup_delay_ms", "10000"),
+ SYSTEM_AUTH_DEFAULT_RF("cassandra.system_auth.default_rf", "1"),
+ SYSTEM_DISTRIBUTED_DEFAULT_RF("cassandra.system_distributed.default_rf", "3"),
+ SYSTEM_TRACES_DEFAULT_RF("cassandra.system_traces.default_rf", "2"),
+ TEST_BBFAILHELPER_ENABLED("test.bbfailhelper.enabled"),
+ TEST_BLOB_SHARED_SEED("cassandra.test.blob.shared.seed"),
+ TEST_BYTEMAN_TRANSFORMATIONS_DEBUG("cassandra.test.byteman.transformations.debug"),
+ TEST_CASSANDRA_KEEPBRIEFBRIEF("cassandra.keepBriefBrief"),
+ TEST_CASSANDRA_RELEVANT_PROPERTIES("org.apache.cassandra.conf.CassandraRelevantPropertiesTest"),
+ /** A property for various mechanisms for syncing files that makes it possible it intercept and skip syncing. */
+ TEST_CASSANDRA_SKIP_SYNC("cassandra.skip_sync"),
+ TEST_CASSANDRA_SUITENAME("suitename", "suitename_IS_UNDEFINED"),
+ TEST_CASSANDRA_TESTTAG("cassandra.testtag", "cassandra.testtag_IS_UNDEFINED"),
+ TEST_COMPRESSION("cassandra.test.compression"),
+ TEST_COMPRESSION_ALGO("cassandra.test.compression.algo", "lz4"),
+ TEST_DEBUG_REF_COUNT("cassandra.debugrefcount"),
+ TEST_DRIVER_CONNECTION_TIMEOUT_MS("cassandra.test.driver.connection_timeout_ms", "5000"),
+ TEST_DRIVER_READ_TIMEOUT_MS("cassandra.test.driver.read_timeout_ms", "12000"),
+ TEST_ENCRYPTION("cassandra.test.encryption", "false"),
+ TEST_FAIL_MV_LOCKS_COUNT("cassandra.test.fail_mv_locks_count", "0"),
+ TEST_FAIL_WRITES_KS("cassandra.test.fail_writes_ks", ""),
+ /** Flush changes of {@link org.apache.cassandra.schema.SchemaKeyspace} after each schema modification. In production,
+ * we always do that. However, tests which do not restart nodes may disable this functionality in order to run
+ * faster. Note that this is disabled for unit tests but if an individual test requires schema to be flushed, it
+ * can be also done manually for that particular case: {@code flush(SchemaConstants.SCHEMA_KEYSPACE_NAME);}. */
+ TEST_FLUSH_LOCAL_SCHEMA_CHANGES("cassandra.test.flush_local_schema_changes", "true"),
+ TEST_HARRY_SWITCH_AFTER("cassandra.test.harry.progression.switch-after", "1"),
+ TEST_IGNORE_SIGAR("cassandra.test.ignore_sigar"),
+ TEST_INTERVAL_TREE_EXPENSIVE_CHECKS("cassandra.test.interval_tree_expensive_checks"),
+ TEST_INVALID_LEGACY_SSTABLE_ROOT("invalid-legacy-sstable-root"),
+ TEST_JVM_DTEST_DISABLE_SSL("cassandra.test.disable_ssl"),
+ TEST_LEGACY_SSTABLE_ROOT("legacy-sstable-root"),
+ TEST_ORG_CAFFINITAS_OHC_SEGMENTCOUNT("org.caffinitas.ohc.segmentCount"),
+ TEST_RANDOM_SEED("cassandra.test.random.seed"),
+ TEST_READ_ITERATION_DELAY_MS("cassandra.test.read_iteration_delay_ms", "0"),
+ TEST_REUSE_PREPARED("cassandra.test.reuse_prepared", "true"),
+ TEST_ROW_CACHE_SIZE("cassandra.test.row_cache_size"),
+ TEST_SERIALIZATION_WRITES("cassandra.test-serialization-writes"),
+ TEST_SIMULATOR_DEBUG("cassandra.test.simulator.debug"),
+ TEST_SIMULATOR_DETERMINISM_CHECK("cassandra.test.simulator.determinismcheck", "none"),
+ TEST_SIMULATOR_LIVENESS_CHECK("cassandra.test.simulator.livenesscheck", "true"),
+ /** properties for debugging simulator ASM output */
+ TEST_SIMULATOR_PRINT_ASM("cassandra.test.simulator.print_asm", "none"),
+ TEST_SIMULATOR_PRINT_ASM_CLASSES("cassandra.test.simulator.print_asm_classes", ""),
+ TEST_SIMULATOR_PRINT_ASM_OPTS("cassandra.test.simulator.print_asm_opts", ""),
+ TEST_SIMULATOR_PRINT_ASM_TYPES("cassandra.test.simulator.print_asm_types", ""),
+ TEST_SKIP_CRYPTO_PROVIDER_INSTALLATION("cassandra.test.security.skip.provider.installation", "false"),
+ TEST_SSTABLE_FORMAT_DEVELOPMENT("cassandra.test.sstableformatdevelopment"),
+ /**
+ * {@link StorageCompatibilityMode} mode sets how the node will behave, sstable or messaging versions to use etc.
+ * according to a yaml setting. But many tests don't load the config hence we need to force it otherwise they would
+ * run always under the default. Config is null for junits that don't load the config. Get from env var that
+ * CI/build.xml sets.
+ *
+ * This is a dev/CI only property. Do not use otherwise.
+ */
+ TEST_STORAGE_COMPATIBILITY_MODE("cassandra.test.storage_compatibility_mode", StorageCompatibilityMode.CASSANDRA_4.toString()),
+ TEST_STRICT_LCS_CHECKS("cassandra.test.strict_lcs_checks"),
+ /** Turns some warnings into exceptions for testing. */
+ TEST_STRICT_RUNTIME_CHECKS("cassandra.strict.runtime.checks"),
+ /** Not to be used in production, this causes a Netty logging handler to be added to the pipeline, which will throttle a system under any normal load. */
+ TEST_UNSAFE_VERBOSE_DEBUG_CLIENT_PROTOCOL("cassandra.unsafe_verbose_debug_client_protocol"),
+ TEST_USE_PREPARED("cassandra.test.use_prepared", "true"),
+ TEST_UTIL_ALLOW_TOOL_REINIT_FOR_TEST("org.apache.cassandra.tools.UtilALLOW_TOOL_REINIT_FOR_TEST"),
+ /** Activate write survey mode. The node not becoming an active ring member, and you must use JMX StorageService->joinRing() to finalize the ring joining. */
+ TEST_WRITE_SURVEY("cassandra.write_survey"),
+ TOLERATE_SSTABLE_SIZE("cassandra.tolerate_sstable_size"),
+ TRIGGERS_DIR("cassandra.triggers_dir"),
+ TRUNCATE_BALLOT_METADATA("cassandra.truncate_ballot_metadata"),
+ TYPE_UDT_CONFLICT_BEHAVIOR("cassandra.type.udt.conflict_behavior"),
+ // See org.apache.cassandra.db.compaction.unified.Controller for the definition of the UCS parameters
+ UCS_BASE_SHARD_COUNT("unified_compaction.base_shard_count", "4"),
+ UCS_MIN_SSTABLE_SIZE("unified_compaction.min_sstable_size", "100MiB"),
+ UCS_OVERLAP_INCLUSION_METHOD("unified_compaction.overlap_inclusion_method"),
+ UCS_SCALING_PARAMETER("unified_compaction.scaling_parameters", "T4"),
+ UCS_SSTABLE_GROWTH("unified_compaction.sstable_growth", "0.333"),
+ UCS_SURVIVAL_FACTOR("unified_compaction.survival_factor", "1"),
+ UCS_TARGET_SSTABLE_SIZE("unified_compaction.target_sstable_size", "1GiB"),
+ UDF_EXECUTOR_THREAD_KEEPALIVE_MS("cassandra.udf_executor_thread_keepalive_ms", "30000"),
+ UNSAFE_SYSTEM("cassandra.unsafesystem"),
+ /** User's home directory. */
+ USER_HOME("user.home"),
+ /** When enabled, recursive directory deletion will be executed using a unix command `rm -rf` instead of traversing
+ * and removing individual files. This is now used only tests, but eventually we will make it true by default.*/
+ USE_NIX_RECURSIVE_DELETE("cassandra.use_nix_recursive_delete"),
+ /** Gossiper compute expiration timeout. Default value 3 days. */
+ VERY_LONG_TIME_MS("cassandra.very_long_time_ms", "259200000"),
+ WAIT_FOR_TRACING_EVENTS_TIMEOUT_SECS("cassandra.wait_for_tracing_events_timeout_secs", "0");
+
+ static
+ {
+ CassandraRelevantProperties[] values = CassandraRelevantProperties.values();
+ Set<String> visited = new HashSet<>(values.length);
+ CassandraRelevantProperties prev = null;
+ for (CassandraRelevantProperties next : values)
+ {
+ if (!visited.add(next.getKey()))
+ throw new IllegalStateException("System properties have duplicate key: " + next.getKey());
+ if (prev != null && next.name().compareTo(prev.name()) < 0)
+ throw new IllegalStateException("Enum constants are not in alphabetical order: " + prev.name() + " should come before " + next.name());
+ else
+ prev = next;
+ }
+ }
CassandraRelevantProperties(String key, String defaultVal)
{
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org