cassandra/test/conf
Benedict Elliott Smith 9ebce5d6df Redesign progress mechanisms to be memory efficient, use fewer messages and to resolve dependency chains promptly.
The SimpleProgressLog had a number of problems:

1. It polled for progress with no attempt to determine whether progress could realistically be made, so:
 - as the number of pending transactions grew, the proportion of useful work dropped (as many would be unable to make progress without earlier transactions completing)
 - each transaction in the chain could recover only on average 1/2 poll interval behind the last transaction to complete
2. It requested full transaction state from every replica on each attempt
3. It maintained a lot of in-memory state
4. Polling happened en-masse, allowing for little per-transaction control

We also separately maintained fairly expensive per-command listener state that negatively affected our command loading and caching.

The new DefaultProgressLog makes use of several new features: LocalListeners, RemoteListeners, Timers and Await messages.
 - LocalListeners provide a memory-efficient collection for managing each CommandStore<E2><80><99>s transaction listeners, with dedicated record keeping for inter-transaction relationships.
 - RemoteListeners provide a mechanism for request/response pairs that may be separated by longer than the normal Cassandra message timeout, and require minimal state on sender and recipient. This permits replicas to cheaply update their local state machine as soon as distributed information becomes available.

The DefaultProgressLog tracks each transaction with separate timers to handle per-transaction scheduling, backoff etc, and a succinct state machine. To reduce overhead correspondence is preferentially limited to a handful of replicas, and limited to the home shard where appropriate.

patch by Benedict; reviewed by Ariel Weisberg for CASSANDRA-19870
2025-04-17 11:59:51 -07:00
..
triggers Fix trigger directory detection code 2013-08-03 11:21:07 -07:00
unit-test-conf Merge branch 'cassandra-5.0' into trunk 2024-08-15 11:26:39 -05:00
cassandra-converters-special-cases-old-names.yaml Add tests for MILLIS_CUSTOM_DURATION and MILLIS_DURATION_DOUBLE 2022-08-08 15:24:28 -04:00
cassandra-converters-special-cases.yaml Add tests for MILLIS_CUSTOM_DURATION and MILLIS_DURATION_DOUBLE 2022-08-08 15:24:28 -04:00
cassandra-jmx-disabled-sslconfig.yaml Enable JMX server configuration to be in cassandra.yaml 2024-12-16 11:01:29 +01:00
cassandra-jmx-pem-sslconfig.yaml Enable JMX server configuration to be in cassandra.yaml 2024-12-16 11:01:29 +01:00
cassandra-jmx-sslconfig-with-passwordfile.yaml Provide keystore_password_file and truststore_password_file options to read credentials from a file 2025-03-04 12:33:41 +01:00
cassandra-jmx-sslconfig.yaml Enable JMX server configuration to be in cassandra.yaml 2024-12-16 11:01:29 +01:00
cassandra-mtls-backward-compatibility.yaml Merge branch 'cassandra-4.1' into cassandra-5.0.0 2024-08-15 10:49:50 -05:00
cassandra-mtls.yaml CEP-15: Add Accord configuration stub 2025-04-17 11:59:49 -07:00
cassandra-murmur.yaml CEP-15: Add Accord configuration stub 2025-04-17 11:59:49 -07:00
cassandra-old.yaml CEP-15: Add Accord configuration stub 2025-04-17 11:59:49 -07:00
cassandra-pem-jks-sslcontextfactory.yaml CEP-15: Add Accord configuration stub 2025-04-17 11:59:49 -07:00
cassandra-pem-sslcontextfactory-invalidconfiguration.yaml CEP-15: Add Accord configuration stub 2025-04-17 11:59:49 -07:00
cassandra-pem-sslcontextfactory-mismatching-passwords.yaml Merge branch 'cassandra-4.1' into cassandra-5.0.0 2024-08-15 10:49:50 -05:00
cassandra-pem-sslcontextfactory-unencryptedkeys.yaml Merge branch 'cassandra-4.1' into cassandra-5.0.0 2024-08-15 10:49:50 -05:00
cassandra-pem-sslcontextfactory-with-passwordfile.yaml Provide keystore_password_file and truststore_password_file options to read credentials from a file 2025-03-04 12:33:41 +01:00
cassandra-pem-sslcontextfactory.yaml CEP-15: Add Accord configuration stub 2025-04-17 11:59:49 -07:00
cassandra-rackdc.properties Use standard Amazon naming for datacenter and rack in Ec2Snitch. 2018-04-16 17:59:06 -07:00
cassandra-rackdc.properties.mod Auto reload GossipingPropertyFileSnitch config 2014-03-06 11:22:47 -06:00
cassandra-seeds.yaml CEP-15: Add Accord configuration stub 2025-04-17 11:59:49 -07:00
cassandra-sslcontextfactory-invalidconfiguration.yaml CEP-15: Add Accord configuration stub 2025-04-17 11:59:49 -07:00
cassandra-sslcontextfactory.yaml CEP-15: Add Accord configuration stub 2025-04-17 11:59:49 -07:00
cassandra-topology.properties rename test cassandra-rack.properties to cassandra-topology 2010-10-14 20:35:06 +00:00
cassandra.keystore Replace keystore for utests with non export restricted cipher keys 2016-11-29 11:06:08 -08:00
cassandra.yaml Redesign progress mechanisms to be memory efficient, use fewer messages and to resolve dependency chains promptly. 2025-04-17 11:59:51 -07:00
cassandra_encryption.yaml Bulk change of units around the code to support the move to the new configuration framework 2022-02-05 22:28:57 -05:00
cassandra_ssl_test.keystore Fix inbound TLS enforcement 2021-01-29 10:50:20 +00:00
cassandra_ssl_test.keystore.pem Add support for PEM based key material for SSL 2022-02-07 22:18:14 +01:00
cassandra_ssl_test.truststore Allow CQL client certificate authentication to work without sending an AUTHENTICATE request 2024-01-30 17:05:07 -08:00
cassandra_ssl_test.truststore.pem Add support for PEM based key material for SSL 2022-02-07 22:18:14 +01:00
cassandra_ssl_test.unencrypted_keystore.pem Add support for PEM based key material for SSL 2022-02-07 22:18:14 +01:00
cassandra_ssl_test_endpoint_verify.keystore Adding endpoint verification option to client_encryption_options 2022-11-15 16:06:21 -08:00
cassandra_ssl_test_keystore_passwordfile.txt Provide keystore_password_file and truststore_password_file options to read credentials from a file 2025-03-04 12:33:41 +01:00
cassandra_ssl_test_nopassword.keystore Allow empty keystore_password in encryption_options 2023-08-28 09:47:54 +02:00
cassandra_ssl_test_outbound.keystore Adding Mutual TLS authenticators for client & internode connections 2023-07-28 13:54:06 -07:00
cassandra_ssl_test_outbound_keystore_password.txt Provide keystore_password_file and truststore_password_file options to read credentials from a file 2025-03-04 12:33:41 +01:00
cassandra_ssl_test_spiffe.keystore Allow CQL client certificate authentication to work without sending an AUTHENTICATE request 2024-01-30 17:05:07 -08:00
cassandra_ssl_test_truststore_passwordfile.txt Provide keystore_password_file and truststore_password_file options to read credentials from a file 2025-03-04 12:33:41 +01:00
cdc.yaml Remove Windows-specific classes and related code 2022-02-05 15:41:33 +01:00
commitlog_archiving.properties Fix CommitLogReplayer date time issue 2013-09-14 16:05:54 -07:00
commitlog_compression_LZ4.yaml Add Zstd compressor 2019-02-22 15:06:06 -08:00
commitlog_compression_Zstd.yaml Add Zstd compressor 2019-02-22 15:06:06 -08:00
datacenters.properties sanity-check replica count against number of nodes in the cluster. patch by mdennis; reviewed by jbellis for CASSANDRA-1191 2010-07-01 17:20:39 +00:00
keystore.jks Preserve order for preferred SSL cipher suites 2016-02-29 17:17:47 +00:00
latest_diff.yaml Add new cassandra_latest.yaml entries to latest tests 2024-10-19 09:42:54 +02:00
logback-burntest.xml Rewrite the internode messaging subsystem 2019-06-12 16:26:54 +01:00
logback-dtest-quiet.xml perf improvements 2025-04-17 11:59:50 -07:00
logback-dtest.xml CEP-15 (C*): Messaging and storage engine integration 2025-04-17 11:59:47 -07:00
logback-dtest_with_vtable_appender.xml Make Cassandra logs able to be viewed in the virtual table system_views.system_logs 2022-10-18 14:13:51 +02:00
logback-dtest_with_vtable_appender_invalid.xml Make Cassandra logs able to be viewed in the virtual table system_views.system_logs 2022-10-18 14:13:51 +02:00
logback-jmh.xml Correct memtable on-heap size calculations to match actual use (CASSANDRA-16318) 2021-01-19 14:08:20 -05:00
logback-simulator.xml Introduce Periodic mode to Accord Journal 2025-04-17 11:59:51 -07:00
logback-test.xml Merge branch 'cassandra-3.0' into cassandra-3.11 2019-01-21 17:44:36 +00:00
sstableloader_with_encryption.yaml Fix ignored streaming encryption settings in sstableloader 2022-03-02 08:00:40 -06:00
storage_compatibility_mode_none.yaml Extend maximum expiration date 2023-06-05 07:18:34 +02:00
system_keyspaces_directory.yaml Improve system tables handling in case of disk failures 2021-02-04 15:04:22 +01:00