mirror of https://github.com/apache/cassandra
Add an optimized default configuration to tests and make it available for new users
This patch adds a new configuration file, cassandra_latest.yaml, which changes some of the settings to use new features we usually recommend to users, including: - Big Trie-Indexed SSTables - Trie memtables - Unified Compaction Strategy - Storage Attached Index - Off-heap objects memtables - Direct-write commit log - No storage compatibility These changes are applied in new test targets for unit, in-jvm and python dtests that are run pre-commit. When changes are made to the new config file, python dtest will use it directly, but unit and in-jvm dtests require updates, respectively, to latest_diff.yaml and InstanceConfig.java. patch by Branimir Lambov; reviewed by Berenguer Blasi for CASSANDRA-18753
This commit is contained in:
parent
ebe07db602
commit
06ed1afc34
|
|
@ -169,7 +169,7 @@ Running other types of tests with docker:
|
||||||
.build/docker/run-tests.sh test-compression
|
.build/docker/run-tests.sh test-compression
|
||||||
.build/docker/run-tests.sh test-oa
|
.build/docker/run-tests.sh test-oa
|
||||||
.build/docker/run-tests.sh test-system-keyspace-directory
|
.build/docker/run-tests.sh test-system-keyspace-directory
|
||||||
.build/docker/run-tests.sh test-tries
|
.build/docker/run-tests.sh test-latest
|
||||||
.build/docker/run-tests.sh test-burn
|
.build/docker/run-tests.sh test-burn
|
||||||
.build/docker/run-tests.sh long-test
|
.build/docker/run-tests.sh long-test
|
||||||
.build/docker/run-tests.sh cqlsh-test
|
.build/docker/run-tests.sh cqlsh-test
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,7 @@ case ${target} in
|
||||||
# check that ${cassandra_dtest_dir} is valid
|
# check that ${cassandra_dtest_dir} is valid
|
||||||
[ -f "${cassandra_dtest_dir}/dtest.py" ] || { echo >&2 "${cassandra_dtest_dir}/dtest.py not found. please specify 'cassandra_dtest_dir' to point to the local cassandra-dtest source"; exit 1; }
|
[ -f "${cassandra_dtest_dir}/dtest.py" ] || { echo >&2 "${cassandra_dtest_dir}/dtest.py not found. please specify 'cassandra_dtest_dir' to point to the local cassandra-dtest source"; exit 1; }
|
||||||
;;
|
;;
|
||||||
"test"| "test-cdc" | "test-compression" | "test-oa" | "test-system-keyspace-directory" | "test-trie" | "jvm-dtest" | "jvm-dtest-upgrade" | "jvm-dtest-novnode" | "jvm-dtest-upgrade-novnode" | "simulator-dtest")
|
"test"| "test-cdc" | "test-compression" | "test-oa" | "test-system-keyspace-directory" | "test-latest" | "jvm-dtest" | "jvm-dtest-upgrade" | "jvm-dtest-novnode" | "jvm-dtest-upgrade-novnode" | "simulator-dtest")
|
||||||
[[ ${mem} -gt $((5 * 1024 * 1024 * 1024 * ${jenkins_executors})) ]] || { echo >&2 "tests require minimum docker memory 6g (per jenkins executor (${jenkins_executors})), found ${mem}"; exit 1; }
|
[[ ${mem} -gt $((5 * 1024 * 1024 * 1024 * ${jenkins_executors})) ]] || { echo >&2 "tests require minimum docker memory 6g (per jenkins executor (${jenkins_executors})), found ${mem}"; exit 1; }
|
||||||
max_docker_runs_by_cores=$( echo "sqrt( ${cores} / ${jenkins_executors} )" | bc )
|
max_docker_runs_by_cores=$( echo "sqrt( ${cores} / ${jenkins_executors} )" | bc )
|
||||||
max_docker_runs_by_mem=$(( ${mem} / ( 5 * 1024 * 1024 * 1024 * ${jenkins_executors} ) ))
|
max_docker_runs_by_mem=$(( ${mem} / ( 5 * 1024 * 1024 * 1024 * ${jenkins_executors} ) ))
|
||||||
|
|
|
||||||
|
|
@ -217,8 +217,8 @@ _main() {
|
||||||
"test-system-keyspace-directory")
|
"test-system-keyspace-directory")
|
||||||
_run_testlist "unit" "testclasslist-system-keyspace-directory" "${split_chunk}" "$(_timeout_for 'test.timeout')"
|
_run_testlist "unit" "testclasslist-system-keyspace-directory" "${split_chunk}" "$(_timeout_for 'test.timeout')"
|
||||||
;;
|
;;
|
||||||
"test-trie")
|
"test-latest")
|
||||||
_run_testlist "unit" "testclasslist-trie" "${split_chunk}" "$(_timeout_for 'test.timeout')"
|
_run_testlist "unit" "testclasslist-latest" "${split_chunk}" "$(_timeout_for 'test.timeout')"
|
||||||
;;
|
;;
|
||||||
"test-burn")
|
"test-burn")
|
||||||
_run_testlist "burn" "testclasslist" "${split_chunk}" "$(_timeout_for 'test.burn.timeout')"
|
_run_testlist "burn" "testclasslist" "${split_chunk}" "$(_timeout_for 'test.burn.timeout')"
|
||||||
|
|
|
||||||
3111
.circleci/config.yml
3111
.circleci/config.yml
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -134,7 +134,7 @@ default_env_vars: &default_env_vars
|
||||||
# REPEATED_ANT_TEST_TARGET: test-jvm-dtest-some
|
# REPEATED_ANT_TEST_TARGET: test-jvm-dtest-some
|
||||||
# REPEATED_ANT_TEST_TARGET: test-cdc
|
# REPEATED_ANT_TEST_TARGET: test-cdc
|
||||||
# REPEATED_ANT_TEST_TARGET: test-compression
|
# REPEATED_ANT_TEST_TARGET: test-compression
|
||||||
# REPEATED_ANT_TEST_TARGET: test-trie
|
# REPEATED_ANT_TEST_TARGET: test-latest
|
||||||
# REPEATED_ANT_TEST_TARGET: test-oa
|
# REPEATED_ANT_TEST_TARGET: test-oa
|
||||||
# REPEATED_ANT_TEST_TARGET: test-system-keyspace-directory
|
# REPEATED_ANT_TEST_TARGET: test-system-keyspace-directory
|
||||||
REPEATED_ANT_TEST_TARGET: testsome
|
REPEATED_ANT_TEST_TARGET: testsome
|
||||||
|
|
@ -149,7 +149,7 @@ default_env_vars: &default_env_vars
|
||||||
REPEATED_ANT_TEST_METHODS:
|
REPEATED_ANT_TEST_METHODS:
|
||||||
# Whether the test iteration should use vnodes for JVM dtests (-Dtest.jvm.args='-Dcassandra.dtest.num_tokens=16').
|
# Whether the test iteration should use vnodes for JVM dtests (-Dtest.jvm.args='-Dcassandra.dtest.num_tokens=16').
|
||||||
# This will only be applied as a default to JVM dtests that don't provide their own initial tokens or token count,
|
# This will only be applied as a default to JVM dtests that don't provide their own initial tokens or token count,
|
||||||
# in the same way that it's done for *_jvm_dtests_vnode jobs. Ant targets other than JVM dtests will ignore this.
|
# in the same way that it's done for *_jvm_dtests_latest_vnode jobs. Ant targets other than JVM dtests will ignore this.
|
||||||
REPEATED_ANT_TEST_VNODES: false
|
REPEATED_ANT_TEST_VNODES: false
|
||||||
# The number of times that the repeated JUnit test should be run.
|
# The number of times that the repeated JUnit test should be run.
|
||||||
REPEATED_ANT_TEST_COUNT: 500
|
REPEATED_ANT_TEST_COUNT: 500
|
||||||
|
|
@ -277,11 +277,11 @@ j11_separate_jobs: &j11_separate_jobs
|
||||||
requires:
|
requires:
|
||||||
- start_j11_jvm_dtests
|
- start_j11_jvm_dtests
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j11_jvm_dtests_vnode:
|
- start_j11_jvm_dtests_latest_vnode:
|
||||||
type: approval
|
type: approval
|
||||||
- j11_jvm_dtests_vnode:
|
- j11_jvm_dtests_latest_vnode:
|
||||||
requires:
|
requires:
|
||||||
- start_j11_jvm_dtests_vnode
|
- start_j11_jvm_dtests_latest_vnode
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j11_jvm_dtests_repeat:
|
- start_j11_jvm_dtests_repeat:
|
||||||
type: approval
|
type: approval
|
||||||
|
|
@ -289,11 +289,11 @@ j11_separate_jobs: &j11_separate_jobs
|
||||||
requires:
|
requires:
|
||||||
- start_j11_jvm_dtests_repeat
|
- start_j11_jvm_dtests_repeat
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j11_jvm_dtests_vnode_repeat:
|
- start_j11_jvm_dtests_latest_vnode_repeat:
|
||||||
type: approval
|
type: approval
|
||||||
- j11_jvm_dtests_vnode_repeat:
|
- j11_jvm_dtests_latest_vnode_repeat:
|
||||||
requires:
|
requires:
|
||||||
- start_j11_jvm_dtests_vnode_repeat
|
- start_j11_jvm_dtests_latest_vnode_repeat
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j17_jvm_dtests:
|
- start_j17_jvm_dtests:
|
||||||
type: approval
|
type: approval
|
||||||
|
|
@ -301,11 +301,11 @@ j11_separate_jobs: &j11_separate_jobs
|
||||||
requires:
|
requires:
|
||||||
- start_j17_jvm_dtests
|
- start_j17_jvm_dtests
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j17_jvm_dtests_vnode:
|
- start_j17_jvm_dtests_latest_vnode:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_jvm_dtests_vnode:
|
- j17_jvm_dtests_latest_vnode:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_jvm_dtests_vnode
|
- start_j17_jvm_dtests_latest_vnode
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j17_jvm_dtests_repeat:
|
- start_j17_jvm_dtests_repeat:
|
||||||
type: approval
|
type: approval
|
||||||
|
|
@ -313,11 +313,11 @@ j11_separate_jobs: &j11_separate_jobs
|
||||||
requires:
|
requires:
|
||||||
- start_j17_jvm_dtests_repeat
|
- start_j17_jvm_dtests_repeat
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j17_jvm_dtests_vnode_repeat:
|
- start_j17_jvm_dtests_latest_vnode_repeat:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_jvm_dtests_vnode_repeat:
|
- j17_jvm_dtests_latest_vnode_repeat:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_jvm_dtests_vnode_repeat
|
- start_j17_jvm_dtests_latest_vnode_repeat
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j11_simulator_dtests:
|
- start_j11_simulator_dtests:
|
||||||
type: approval
|
type: approval
|
||||||
|
|
@ -465,29 +465,29 @@ j11_separate_jobs: &j11_separate_jobs
|
||||||
requires:
|
requires:
|
||||||
- start_j17_utests_compression_repeat
|
- start_j17_utests_compression_repeat
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j11_utests_trie:
|
- start_j11_utests_latest:
|
||||||
type: approval
|
type: approval
|
||||||
- j11_utests_trie:
|
- j11_utests_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j11_utests_trie
|
- start_j11_utests_latest
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j17_utests_trie:
|
- start_j17_utests_latest:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_utests_trie:
|
- j17_utests_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_utests_trie
|
- start_j17_utests_latest
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j11_utests_trie_repeat:
|
- start_j11_utests_latest_repeat:
|
||||||
type: approval
|
type: approval
|
||||||
- j11_utests_trie_repeat:
|
- j11_utests_latest_repeat:
|
||||||
requires:
|
requires:
|
||||||
- start_j11_utests_trie_repeat
|
- start_j11_utests_latest_repeat
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j17_utests_trie_repeat:
|
- start_j17_utests_latest_repeat:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_utests_trie_repeat:
|
- j17_utests_latest_repeat:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_utests_trie_repeat
|
- start_j17_utests_latest_repeat
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j11_utests_stress:
|
- start_j11_utests_stress:
|
||||||
type: approval
|
type: approval
|
||||||
|
|
@ -594,17 +594,17 @@ j11_separate_jobs: &j11_separate_jobs
|
||||||
- start_j11_dtests_vnode
|
- start_j11_dtests_vnode
|
||||||
- j11_build
|
- j11_build
|
||||||
# Java 11 off-heap dtests
|
# Java 11 off-heap dtests
|
||||||
- start_j11_dtests_offheap:
|
- start_j11_dtests_latest:
|
||||||
type: approval
|
type: approval
|
||||||
- j11_dtests_offheap:
|
- j11_dtests_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j11_dtests_offheap
|
- start_j11_dtests_latest
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j11_dtests_offheap_repeat:
|
- start_j11_dtests_latest_repeat:
|
||||||
type: approval
|
type: approval
|
||||||
- j11_dtests_offheap_repeat:
|
- j11_dtests_latest_repeat:
|
||||||
requires:
|
requires:
|
||||||
- start_j11_dtests_offheap_repeat
|
- start_j11_dtests_latest_repeat
|
||||||
- j11_build
|
- j11_build
|
||||||
# Java 17 dtests
|
# Java 17 dtests
|
||||||
- start_j17_dtests:
|
- start_j17_dtests:
|
||||||
|
|
@ -620,17 +620,17 @@ j11_separate_jobs: &j11_separate_jobs
|
||||||
- start_j17_dtests_vnode
|
- start_j17_dtests_vnode
|
||||||
- j11_build
|
- j11_build
|
||||||
# Java 17 off-heap dtests
|
# Java 17 off-heap dtests
|
||||||
- start_j17_dtests_offheap:
|
- start_j17_dtests_latest:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_dtests_offheap:
|
- j17_dtests_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_dtests_offheap
|
- start_j17_dtests_latest
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j17_dtests_offheap_repeat:
|
- start_j17_dtests_latest_repeat:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_dtests_offheap_repeat:
|
- j17_dtests_latest_repeat:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_dtests_offheap_repeat
|
- start_j17_dtests_latest_repeat
|
||||||
- j11_build
|
- j11_build
|
||||||
# Python large DTests
|
# Python large DTests
|
||||||
- start_j11_dtests_large:
|
- start_j11_dtests_large:
|
||||||
|
|
@ -700,16 +700,16 @@ j11_separate_jobs: &j11_separate_jobs
|
||||||
requires:
|
requires:
|
||||||
- start_j11_cqlsh_tests
|
- start_j11_cqlsh_tests
|
||||||
- j11_build
|
- j11_build
|
||||||
# Java 11 cqlsh offheap dtests offheap
|
# Java 11 cqlsh latest dtests
|
||||||
- start_j11_cqlsh_tests_offheap:
|
- start_j11_cqlsh_tests_latest:
|
||||||
type: approval
|
type: approval
|
||||||
- j11_cqlsh_dtests_py38_offheap:
|
- j11_cqlsh_dtests_py38_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j11_cqlsh_tests_offheap
|
- start_j11_cqlsh_tests_latest
|
||||||
- j11_build
|
- j11_build
|
||||||
- j11_cqlsh_dtests_py311_offheap:
|
- j11_cqlsh_dtests_py311_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j11_cqlsh_tests_offheap
|
- start_j11_cqlsh_tests_latest
|
||||||
- j11_build
|
- j11_build
|
||||||
# Java 17 cqlsh dtests
|
# Java 17 cqlsh dtests
|
||||||
- start_j17_cqlsh_tests:
|
- start_j17_cqlsh_tests:
|
||||||
|
|
@ -731,15 +731,15 @@ j11_separate_jobs: &j11_separate_jobs
|
||||||
- start_j17_cqlsh_tests
|
- start_j17_cqlsh_tests
|
||||||
- j11_build
|
- j11_build
|
||||||
# Java 17 cqlsh dtests off-heap
|
# Java 17 cqlsh dtests off-heap
|
||||||
- start_j17_cqlsh_tests_offheap:
|
- start_j17_cqlsh_tests_latest:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_cqlsh_dtests_py38_offheap:
|
- j17_cqlsh_dtests_py38_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_cqlsh_tests_offheap
|
- start_j17_cqlsh_tests_latest
|
||||||
- j11_build
|
- j11_build
|
||||||
- j17_cqlsh_dtests_py311_offheap:
|
- j17_cqlsh_dtests_py311_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_cqlsh_tests_offheap
|
- start_j17_cqlsh_tests_latest
|
||||||
- j11_build
|
- j11_build
|
||||||
# Java 11 upgrade tests
|
# Java 11 upgrade tests
|
||||||
- start_j11_upgrade_dtests:
|
- start_j11_upgrade_dtests:
|
||||||
|
|
@ -819,6 +819,12 @@ j11_pre-commit_jobs: &j11_pre-commit_jobs
|
||||||
- j11_unit_tests_repeat:
|
- j11_unit_tests_repeat:
|
||||||
requires:
|
requires:
|
||||||
- j11_build
|
- j11_build
|
||||||
|
- j11_utests_latest:
|
||||||
|
requires:
|
||||||
|
- j11_build
|
||||||
|
- j11_utests_latest_repeat:
|
||||||
|
requires:
|
||||||
|
- j11_build
|
||||||
- j11_simulator_dtests:
|
- j11_simulator_dtests:
|
||||||
requires:
|
requires:
|
||||||
- j11_build
|
- j11_build
|
||||||
|
|
@ -831,10 +837,10 @@ j11_pre-commit_jobs: &j11_pre-commit_jobs
|
||||||
- j11_jvm_dtests_repeat:
|
- j11_jvm_dtests_repeat:
|
||||||
requires:
|
requires:
|
||||||
- j11_build
|
- j11_build
|
||||||
- j11_jvm_dtests_vnode:
|
- j11_jvm_dtests_latest_vnode:
|
||||||
requires:
|
requires:
|
||||||
- j11_build
|
- j11_build
|
||||||
- j11_jvm_dtests_vnode_repeat:
|
- j11_jvm_dtests_latest_vnode_repeat:
|
||||||
requires:
|
requires:
|
||||||
- j11_build
|
- j11_build
|
||||||
- j17_jvm_dtests:
|
- j17_jvm_dtests:
|
||||||
|
|
@ -843,10 +849,10 @@ j11_pre-commit_jobs: &j11_pre-commit_jobs
|
||||||
- j17_jvm_dtests_repeat:
|
- j17_jvm_dtests_repeat:
|
||||||
requires:
|
requires:
|
||||||
- j11_build
|
- j11_build
|
||||||
- j17_jvm_dtests_vnode:
|
- j17_jvm_dtests_latest_vnode:
|
||||||
requires:
|
requires:
|
||||||
- j11_build
|
- j11_build
|
||||||
- j17_jvm_dtests_vnode_repeat:
|
- j17_jvm_dtests_latest_vnode_repeat:
|
||||||
requires:
|
requires:
|
||||||
- j11_build
|
- j11_build
|
||||||
- j11_cqlshlib_tests:
|
- j11_cqlshlib_tests:
|
||||||
|
|
@ -871,6 +877,12 @@ j11_pre-commit_jobs: &j11_pre-commit_jobs
|
||||||
- j17_unit_tests_repeat:
|
- j17_unit_tests_repeat:
|
||||||
requires:
|
requires:
|
||||||
- j11_build
|
- j11_build
|
||||||
|
- j17_utests_latest:
|
||||||
|
requires:
|
||||||
|
- j11_build
|
||||||
|
- j17_utests_latest_repeat:
|
||||||
|
requires:
|
||||||
|
- j11_build
|
||||||
# specialized unit tests (all run on request)
|
# specialized unit tests (all run on request)
|
||||||
- start_utests_long:
|
- start_utests_long:
|
||||||
type: approval
|
type: approval
|
||||||
|
|
@ -926,24 +938,6 @@ j11_pre-commit_jobs: &j11_pre-commit_jobs
|
||||||
requires:
|
requires:
|
||||||
- start_utests_compression
|
- start_utests_compression
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_utests_trie:
|
|
||||||
type: approval
|
|
||||||
- j11_utests_trie:
|
|
||||||
requires:
|
|
||||||
- start_utests_trie
|
|
||||||
- j11_build
|
|
||||||
- j17_utests_trie:
|
|
||||||
requires:
|
|
||||||
- start_utests_trie
|
|
||||||
- j11_build
|
|
||||||
- j11_utests_trie_repeat:
|
|
||||||
requires:
|
|
||||||
- start_utests_trie
|
|
||||||
- j11_build
|
|
||||||
- j17_utests_trie_repeat:
|
|
||||||
requires:
|
|
||||||
- start_utests_trie
|
|
||||||
- j11_build
|
|
||||||
- start_utests_stress:
|
- start_utests_stress:
|
||||||
type: approval
|
type: approval
|
||||||
- j11_utests_stress:
|
- j11_utests_stress:
|
||||||
|
|
@ -1022,15 +1016,11 @@ j11_pre-commit_jobs: &j11_pre-commit_jobs
|
||||||
- j11_dtests_vnode_repeat:
|
- j11_dtests_vnode_repeat:
|
||||||
requires:
|
requires:
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j11_dtests_offheap:
|
- j11_dtests_latest:
|
||||||
type: approval
|
|
||||||
- j11_dtests_offheap:
|
|
||||||
requires:
|
requires:
|
||||||
- start_j11_dtests_offheap
|
|
||||||
- j11_build
|
- j11_build
|
||||||
- j11_dtests_offheap_repeat:
|
- j11_dtests_latest_repeat:
|
||||||
requires:
|
requires:
|
||||||
- start_j11_dtests_offheap
|
|
||||||
- j11_build
|
- j11_build
|
||||||
# Java 17 dtests
|
# Java 17 dtests
|
||||||
- j17_dtests:
|
- j17_dtests:
|
||||||
|
|
@ -1045,15 +1035,11 @@ j11_pre-commit_jobs: &j11_pre-commit_jobs
|
||||||
- j17_dtests_vnode_repeat:
|
- j17_dtests_vnode_repeat:
|
||||||
requires:
|
requires:
|
||||||
- j11_build
|
- j11_build
|
||||||
- start_j17_dtests_offheap:
|
- j17_dtests_latest:
|
||||||
type: approval
|
|
||||||
- j17_dtests_offheap:
|
|
||||||
requires:
|
requires:
|
||||||
- start_j17_dtests_offheap
|
|
||||||
- j11_build
|
- j11_build
|
||||||
- j17_dtests_offheap_repeat:
|
- j17_dtests_latest_repeat:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_dtests_offheap
|
|
||||||
- j11_build
|
- j11_build
|
||||||
# Large Python DTests
|
# Large Python DTests
|
||||||
- start_j11_dtests_large:
|
- start_j11_dtests_large:
|
||||||
|
|
@ -1105,16 +1091,16 @@ j11_pre-commit_jobs: &j11_pre-commit_jobs
|
||||||
- j11_cqlsh_dtests_py311_vnode:
|
- j11_cqlsh_dtests_py311_vnode:
|
||||||
requires:
|
requires:
|
||||||
- j11_build
|
- j11_build
|
||||||
# Java 11 cqlsh dtests offheap
|
# Java 11 cqlsh dtests latest
|
||||||
- start_j11_cqlsh_dtests_offheap:
|
- start_j11_cqlsh_dtests_latest:
|
||||||
type: approval
|
type: approval
|
||||||
- j11_cqlsh_dtests_py38_offheap:
|
- j11_cqlsh_dtests_py38_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j11_cqlsh_dtests_offheap
|
- start_j11_cqlsh_dtests_latest
|
||||||
- j11_build
|
- j11_build
|
||||||
- j11_cqlsh_dtests_py311_offheap:
|
- j11_cqlsh_dtests_py311_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j11_cqlsh_dtests_offheap
|
- start_j11_cqlsh_dtests_latest
|
||||||
- j11_build
|
- j11_build
|
||||||
# Java 17 cqlsh dtests
|
# Java 17 cqlsh dtests
|
||||||
- j17_cqlsh_dtests_py38:
|
- j17_cqlsh_dtests_py38:
|
||||||
|
|
@ -1130,15 +1116,15 @@ j11_pre-commit_jobs: &j11_pre-commit_jobs
|
||||||
requires:
|
requires:
|
||||||
- j11_build
|
- j11_build
|
||||||
# Java 17 cqlsh dtests off-heap
|
# Java 17 cqlsh dtests off-heap
|
||||||
- start_j17_cqlsh-dtests-offheap:
|
- start_j17_cqlsh-dtests-latest:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_cqlsh_dtests_py38_offheap:
|
- j17_cqlsh_dtests_py38_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_cqlsh-dtests-offheap
|
- start_j17_cqlsh-dtests-latest
|
||||||
- j11_build
|
- j11_build
|
||||||
- j17_cqlsh_dtests_py311_offheap:
|
- j17_cqlsh_dtests_py311_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_cqlsh-dtests-offheap
|
- start_j17_cqlsh-dtests-latest
|
||||||
- j11_build
|
- j11_build
|
||||||
# Java 11 upgrade tests (on request)
|
# Java 11 upgrade tests (on request)
|
||||||
- start_j11_upgrade_dtests:
|
- start_j11_upgrade_dtests:
|
||||||
|
|
@ -1178,11 +1164,11 @@ j17_separate_jobs: &j17_separate_jobs
|
||||||
requires:
|
requires:
|
||||||
- start_j17_jvm_dtests
|
- start_j17_jvm_dtests
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_jvm_dtests_vnode:
|
- start_j17_jvm_dtests_latest_vnode:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_jvm_dtests_vnode:
|
- j17_jvm_dtests_latest_vnode:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_jvm_dtests_vnode
|
- start_j17_jvm_dtests_latest_vnode
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_jvm_dtests_repeat:
|
- start_j17_jvm_dtests_repeat:
|
||||||
type: approval
|
type: approval
|
||||||
|
|
@ -1190,11 +1176,11 @@ j17_separate_jobs: &j17_separate_jobs
|
||||||
requires:
|
requires:
|
||||||
- start_j17_jvm_dtests_repeat
|
- start_j17_jvm_dtests_repeat
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_jvm_dtests_vnode_repeat:
|
- start_j17_jvm_dtests_latest_vnode_repeat:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_jvm_dtests_vnode_repeat:
|
- j17_jvm_dtests_latest_vnode_repeat:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_jvm_dtests_vnode_repeat
|
- start_j17_jvm_dtests_latest_vnode_repeat
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_cqlshlib_tests:
|
- start_j17_cqlshlib_tests:
|
||||||
type: approval
|
type: approval
|
||||||
|
|
@ -1221,17 +1207,17 @@ j17_separate_jobs: &j17_separate_jobs
|
||||||
requires:
|
requires:
|
||||||
- start_j17_dtests_vnode
|
- start_j17_dtests_vnode
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_dtests_offheap:
|
- start_j17_dtests_latest:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_dtests_offheap:
|
- j17_dtests_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_dtests_offheap
|
- start_j17_dtests_latest
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_dtests_offheap_repeat:
|
- start_j17_dtests_latest_repeat:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_dtests_offheap_repeat:
|
- j17_dtests_latest_repeat:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_dtests_offheap_repeat
|
- start_j17_dtests_latest_repeat
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_dtests_large:
|
- start_j17_dtests_large:
|
||||||
type: approval
|
type: approval
|
||||||
|
|
@ -1275,15 +1261,15 @@ j17_separate_jobs: &j17_separate_jobs
|
||||||
requires:
|
requires:
|
||||||
- start_j17_cqlsh_tests
|
- start_j17_cqlsh_tests
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_cqlsh-dtests-offheap:
|
- start_j17_cqlsh-dtests-latest:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_cqlsh_dtests_py38_offheap:
|
- j17_cqlsh_dtests_py38_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_cqlsh-dtests-offheap
|
- start_j17_cqlsh-dtests-latest
|
||||||
- j17_build
|
- j17_build
|
||||||
- j17_cqlsh_dtests_py311_offheap:
|
- j17_cqlsh_dtests_py311_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_cqlsh-dtests-offheap
|
- start_j17_cqlsh-dtests-latest
|
||||||
- j17_build
|
- j17_build
|
||||||
# specialized unit tests (all run on request)
|
# specialized unit tests (all run on request)
|
||||||
- start_j17_utests_oa:
|
- start_j17_utests_oa:
|
||||||
|
|
@ -1334,17 +1320,17 @@ j17_separate_jobs: &j17_separate_jobs
|
||||||
requires:
|
requires:
|
||||||
- start_j17_utests_compression_repeat
|
- start_j17_utests_compression_repeat
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_utests_trie:
|
- start_j17_utests_latest:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_utests_trie:
|
- j17_utests_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_utests_trie
|
- start_j17_utests_latest
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_utests_trie_repeat:
|
- start_j17_utests_latest_repeat:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_utests_trie_repeat:
|
- j17_utests_latest_repeat:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_utests_trie_repeat
|
- start_j17_utests_latest_repeat
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_utests_stress:
|
- start_j17_utests_stress:
|
||||||
type: approval
|
type: approval
|
||||||
|
|
@ -1422,16 +1408,22 @@ j17_pre-commit_jobs: &j17_pre-commit_jobs
|
||||||
- j17_unit_tests_repeat:
|
- j17_unit_tests_repeat:
|
||||||
requires:
|
requires:
|
||||||
- j17_build
|
- j17_build
|
||||||
|
- j17_utests_latest:
|
||||||
|
requires:
|
||||||
|
- j17_build
|
||||||
|
- j17_utests_latest_repeat:
|
||||||
|
requires:
|
||||||
|
- j17_build
|
||||||
- j17_jvm_dtests:
|
- j17_jvm_dtests:
|
||||||
requires:
|
requires:
|
||||||
- j17_build
|
- j17_build
|
||||||
- j17_jvm_dtests_repeat:
|
- j17_jvm_dtests_repeat:
|
||||||
requires:
|
requires:
|
||||||
- j17_build
|
- j17_build
|
||||||
- j17_jvm_dtests_vnode:
|
- j17_jvm_dtests_latest_vnode:
|
||||||
requires:
|
requires:
|
||||||
- j17_build
|
- j17_build
|
||||||
- j17_jvm_dtests_vnode_repeat:
|
- j17_jvm_dtests_latest_vnode_repeat:
|
||||||
requires:
|
requires:
|
||||||
- j17_build
|
- j17_build
|
||||||
- j17_cqlshlib_tests:
|
- j17_cqlshlib_tests:
|
||||||
|
|
@ -1452,17 +1444,11 @@ j17_pre-commit_jobs: &j17_pre-commit_jobs
|
||||||
- j17_dtests_vnode_repeat:
|
- j17_dtests_vnode_repeat:
|
||||||
requires:
|
requires:
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_dtests_offheap:
|
- j17_dtests_latest:
|
||||||
type: approval
|
|
||||||
- j17_dtests_offheap:
|
|
||||||
requires:
|
requires:
|
||||||
- start_j17_dtests_offheap
|
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_dtests_offheap_repeat:
|
- j17_dtests_latest_repeat:
|
||||||
type: approval
|
|
||||||
- j17_dtests_offheap_repeat:
|
|
||||||
requires:
|
requires:
|
||||||
- start_j17_dtests_offheap_repeat
|
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_dtests_large:
|
- start_j17_dtests_large:
|
||||||
type: approval
|
type: approval
|
||||||
|
|
@ -1494,15 +1480,15 @@ j17_pre-commit_jobs: &j17_pre-commit_jobs
|
||||||
- j17_cqlsh_dtests_py311_vnode:
|
- j17_cqlsh_dtests_py311_vnode:
|
||||||
requires:
|
requires:
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_j17_cqlsh-dtests-offheap:
|
- start_j17_cqlsh-dtests-latest:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_cqlsh_dtests_py38_offheap:
|
- j17_cqlsh_dtests_py38_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_cqlsh-dtests-offheap
|
- start_j17_cqlsh-dtests-latest
|
||||||
- j17_build
|
- j17_build
|
||||||
- j17_cqlsh_dtests_py311_offheap:
|
- j17_cqlsh_dtests_py311_latest:
|
||||||
requires:
|
requires:
|
||||||
- start_j17_cqlsh-dtests-offheap
|
- start_j17_cqlsh-dtests-latest
|
||||||
- j17_build
|
- j17_build
|
||||||
# specialized unit tests (all run on request)
|
# specialized unit tests (all run on request)
|
||||||
- start_utests_long:
|
- start_utests_long:
|
||||||
|
|
@ -1535,16 +1521,6 @@ j17_pre-commit_jobs: &j17_pre-commit_jobs
|
||||||
requires:
|
requires:
|
||||||
- start_utests_compression
|
- start_utests_compression
|
||||||
- j17_build
|
- j17_build
|
||||||
- start_utests_trie:
|
|
||||||
type: approval
|
|
||||||
- j17_utests_trie:
|
|
||||||
requires:
|
|
||||||
- start_utests_trie
|
|
||||||
- j17_build
|
|
||||||
- j17_utests_trie_repeat:
|
|
||||||
requires:
|
|
||||||
- start_utests_trie
|
|
||||||
- j17_build
|
|
||||||
- start_utests_stress:
|
- start_utests_stress:
|
||||||
type: approval
|
type: approval
|
||||||
- j17_utests_stress:
|
- j17_utests_stress:
|
||||||
|
|
@ -1690,7 +1666,7 @@ jobs:
|
||||||
classlistprefix: distributed
|
classlistprefix: distributed
|
||||||
target: "testclasslist"
|
target: "testclasslist"
|
||||||
|
|
||||||
j11_jvm_dtests_vnode:
|
j11_jvm_dtests_latest_vnode:
|
||||||
<<: *j11_small_par_executor
|
<<: *j11_small_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
|
|
@ -1702,7 +1678,7 @@ jobs:
|
||||||
- run_parallel_junit_tests:
|
- run_parallel_junit_tests:
|
||||||
classlistprefix: distributed
|
classlistprefix: distributed
|
||||||
target: "testclasslist"
|
target: "testclasslist"
|
||||||
arguments: "-Dtest.jvm.args='-Dcassandra.dtest.num_tokens=16'"
|
arguments: "-Dtest.jvm.args='-Dcassandra.dtest.num_tokens=16 -Djvm_dtests.latest=true'"
|
||||||
|
|
||||||
j17_jvm_dtests:
|
j17_jvm_dtests:
|
||||||
<<: *j17_small_par_executor
|
<<: *j17_small_par_executor
|
||||||
|
|
@ -1730,7 +1706,7 @@ jobs:
|
||||||
classlistprefix: distributed
|
classlistprefix: distributed
|
||||||
target: "testclasslist"
|
target: "testclasslist"
|
||||||
|
|
||||||
j17_jvm_dtests_vnode:
|
j17_jvm_dtests_latest_vnode:
|
||||||
<<: *j17_small_par_executor
|
<<: *j17_small_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
|
|
@ -1742,7 +1718,7 @@ jobs:
|
||||||
- run_parallel_junit_tests:
|
- run_parallel_junit_tests:
|
||||||
classlistprefix: distributed
|
classlistprefix: distributed
|
||||||
target: "testclasslist"
|
target: "testclasslist"
|
||||||
arguments: "-Dtest.jvm.args='-Dcassandra.dtest.num_tokens=16'"
|
arguments: "-Dtest.jvm.args='-Dcassandra.dtest.num_tokens=16 -Djvm_dtests.latest=true'"
|
||||||
|
|
||||||
j17_unit_tests:
|
j17_unit_tests:
|
||||||
<<: *j17_par_executor
|
<<: *j17_par_executor
|
||||||
|
|
@ -1847,7 +1823,7 @@ jobs:
|
||||||
- run_parallel_junit_tests:
|
- run_parallel_junit_tests:
|
||||||
target: testclasslist-compression
|
target: testclasslist-compression
|
||||||
|
|
||||||
j11_utests_trie:
|
j11_utests_latest:
|
||||||
<<: *j11_par_executor
|
<<: *j11_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
|
|
@ -1855,9 +1831,9 @@ jobs:
|
||||||
- create_junit_containers
|
- create_junit_containers
|
||||||
- log_environment
|
- log_environment
|
||||||
- run_parallel_junit_tests:
|
- run_parallel_junit_tests:
|
||||||
target: testclasslist-trie
|
target: testclasslist-latest
|
||||||
|
|
||||||
j17_utests_trie:
|
j17_utests_latest:
|
||||||
<<: *j17_par_executor
|
<<: *j17_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
|
|
@ -1865,7 +1841,7 @@ jobs:
|
||||||
- create_junit_containers
|
- create_junit_containers
|
||||||
- log_environment
|
- log_environment
|
||||||
- run_parallel_junit_tests:
|
- run_parallel_junit_tests:
|
||||||
target: testclasslist-trie
|
target: testclasslist-latest
|
||||||
|
|
||||||
j11_utests_stress:
|
j11_utests_stress:
|
||||||
<<: *j11_seq_executor
|
<<: *j11_seq_executor
|
||||||
|
|
@ -1933,7 +1909,7 @@ jobs:
|
||||||
file_tag: j11_with_vnodes
|
file_tag: j11_with_vnodes
|
||||||
pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests'
|
pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests'
|
||||||
|
|
||||||
j11_dtests_offheap:
|
j11_dtests_latest:
|
||||||
<<: *j11_par_executor
|
<<: *j11_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
|
|
@ -1941,11 +1917,11 @@ jobs:
|
||||||
- clone_dtest
|
- clone_dtest
|
||||||
- create_venv
|
- create_venv
|
||||||
- create_dtest_containers:
|
- create_dtest_containers:
|
||||||
file_tag: j11_dtests_offheap
|
file_tag: j11_dtests_latest
|
||||||
run_dtests_extra_args: "--use-vnodes --use-off-heap-memtables --skip-resource-intensive-tests --pytest-options '-k not cql'"
|
run_dtests_extra_args: "--use-vnodes --configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests --pytest-options '-k not cql'"
|
||||||
- run_dtests:
|
- run_dtests:
|
||||||
file_tag: j11_dtests_offheap
|
file_tag: j11_dtests_latest
|
||||||
pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests'
|
pytest_extra_args: '--use-vnodes --num-tokens=16 --configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests'
|
||||||
|
|
||||||
j17_dtests_vnode:
|
j17_dtests_vnode:
|
||||||
<<: *j17_par_executor
|
<<: *j17_par_executor
|
||||||
|
|
@ -1962,7 +1938,7 @@ jobs:
|
||||||
file_tag: j17_with_vnodes
|
file_tag: j17_with_vnodes
|
||||||
pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests'
|
pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests'
|
||||||
|
|
||||||
j17_dtests_offheap:
|
j17_dtests_latest:
|
||||||
<<: *j17_par_executor
|
<<: *j17_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
|
|
@ -1971,11 +1947,11 @@ jobs:
|
||||||
- clone_dtest
|
- clone_dtest
|
||||||
- create_venv
|
- create_venv
|
||||||
- create_dtest_containers:
|
- create_dtest_containers:
|
||||||
file_tag: j17_dtests_offheap
|
file_tag: j17_dtests_latest
|
||||||
run_dtests_extra_args: "--use-vnodes --use-off-heap-memtables --skip-resource-intensive-tests --pytest-options '-k not cql'"
|
run_dtests_extra_args: "--use-vnodes --configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests --pytest-options '-k not cql'"
|
||||||
- run_dtests:
|
- run_dtests:
|
||||||
file_tag: j17_dtests_offheap
|
file_tag: j17_dtests_latest
|
||||||
pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests'
|
pytest_extra_args: '--use-vnodes --num-tokens=16 --configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests'
|
||||||
|
|
||||||
j11_dtests:
|
j11_dtests:
|
||||||
<<: *j11_par_executor
|
<<: *j11_par_executor
|
||||||
|
|
@ -2056,7 +2032,7 @@ jobs:
|
||||||
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.11'
|
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.11'
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
|
|
||||||
j11_cqlsh_dtests_py38_offheap:
|
j11_cqlsh_dtests_py38_latest:
|
||||||
<<: *j11_par_executor
|
<<: *j11_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
|
|
@ -2065,16 +2041,16 @@ jobs:
|
||||||
- create_venv:
|
- create_venv:
|
||||||
python_version: '3.8'
|
python_version: '3.8'
|
||||||
- create_dtest_containers:
|
- create_dtest_containers:
|
||||||
file_tag: j11_dtests_offheap
|
file_tag: j11_dtests_latest
|
||||||
run_dtests_extra_args: "--use-vnodes --use-off-heap-memtables --skip-resource-intensive-tests --pytest-options '-k cql'"
|
run_dtests_extra_args: "--use-vnodes --configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests --pytest-options '-k cql'"
|
||||||
python_version: '3.8'
|
python_version: '3.8'
|
||||||
- run_dtests:
|
- run_dtests:
|
||||||
file_tag: j11_dtests_offheap
|
file_tag: j11_dtests_latest
|
||||||
pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests'
|
pytest_extra_args: '--use-vnodes --num-tokens=16 --configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests'
|
||||||
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.8'
|
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.8'
|
||||||
python_version: '3.8'
|
python_version: '3.8'
|
||||||
|
|
||||||
j11_cqlsh_dtests_py311_offheap:
|
j11_cqlsh_dtests_py311_latest:
|
||||||
<<: *j11_par_executor
|
<<: *j11_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
|
|
@ -2083,12 +2059,12 @@ jobs:
|
||||||
- create_venv:
|
- create_venv:
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
- create_dtest_containers:
|
- create_dtest_containers:
|
||||||
file_tag: j11_dtests_offheap
|
file_tag: j11_dtests_latest
|
||||||
run_dtests_extra_args: "--use-vnodes --use-off-heap-memtables --skip-resource-intensive-tests --pytest-options '-k cql'"
|
run_dtests_extra_args: "--use-vnodes --configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests --pytest-options '-k cql'"
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
- run_dtests:
|
- run_dtests:
|
||||||
file_tag: j11_dtests_offheap
|
file_tag: j11_dtests_latest
|
||||||
pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests'
|
pytest_extra_args: '--use-vnodes --num-tokens=16 --configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests'
|
||||||
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.11'
|
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.11'
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
|
|
||||||
|
|
@ -2164,7 +2140,7 @@ jobs:
|
||||||
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.11'
|
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.11'
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
|
|
||||||
j17_cqlsh_dtests_py38_offheap:
|
j17_cqlsh_dtests_py38_latest:
|
||||||
<<: *j17_par_executor
|
<<: *j17_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
|
|
@ -2173,16 +2149,16 @@ jobs:
|
||||||
- create_venv:
|
- create_venv:
|
||||||
python_version: '3.8'
|
python_version: '3.8'
|
||||||
- create_dtest_containers:
|
- create_dtest_containers:
|
||||||
file_tag: j17_dtests_offheap
|
file_tag: j17_dtests_latest
|
||||||
run_dtests_extra_args: "--use-vnodes --use-off-heap-memtables --skip-resource-intensive-tests --pytest-options '-k cql'"
|
run_dtests_extra_args: "--use-vnodes --configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests --pytest-options '-k cql'"
|
||||||
python_version: '3.8'
|
python_version: '3.8'
|
||||||
- run_dtests:
|
- run_dtests:
|
||||||
file_tag: j17_dtests_offheap
|
file_tag: j17_dtests_latest
|
||||||
pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests'
|
pytest_extra_args: '--use-vnodes --num-tokens=16 --configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests'
|
||||||
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.8'
|
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.8'
|
||||||
python_version: '3.8'
|
python_version: '3.8'
|
||||||
|
|
||||||
j17_cqlsh_dtests_py311_offheap:
|
j17_cqlsh_dtests_py311_latest:
|
||||||
<<: *j17_par_executor
|
<<: *j17_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
|
|
@ -2191,12 +2167,12 @@ jobs:
|
||||||
- create_venv:
|
- create_venv:
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
- create_dtest_containers:
|
- create_dtest_containers:
|
||||||
file_tag: j17_dtests_offheap
|
file_tag: j17_dtests_latest
|
||||||
run_dtests_extra_args: "--use-vnodes --use-off-heap-memtables --skip-resource-intensive-tests --pytest-options '-k cql'"
|
run_dtests_extra_args: "--use-vnodes --configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests --pytest-options '-k cql'"
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
- run_dtests:
|
- run_dtests:
|
||||||
file_tag: j17_dtests_offheap
|
file_tag: j17_dtests_latest
|
||||||
pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests'
|
pytest_extra_args: '--use-vnodes --num-tokens=16 --configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests'
|
||||||
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.11'
|
extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.11'
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
|
|
||||||
|
|
@ -2340,21 +2316,21 @@ jobs:
|
||||||
- log_environment
|
- log_environment
|
||||||
- run_utests_compression_repeat
|
- run_utests_compression_repeat
|
||||||
|
|
||||||
j11_utests_trie_repeat:
|
j11_utests_latest_repeat:
|
||||||
<<: *j11_repeated_utest_executor
|
<<: *j11_repeated_utest_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
- log_environment
|
- log_environment
|
||||||
- run_utests_trie_repeat
|
- run_utests_latest_repeat
|
||||||
|
|
||||||
j17_utests_trie_repeat:
|
j17_utests_latest_repeat:
|
||||||
<<: *j17_repeated_utest_executor
|
<<: *j17_repeated_utest_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
- log_environment
|
- log_environment
|
||||||
- run_utests_trie_repeat
|
- run_utests_latest_repeat
|
||||||
|
|
||||||
j11_utests_oa_repeat:
|
j11_utests_oa_repeat:
|
||||||
<<: *j11_repeated_utest_executor
|
<<: *j11_repeated_utest_executor
|
||||||
|
|
@ -2452,13 +2428,13 @@ jobs:
|
||||||
- log_environment
|
- log_environment
|
||||||
- run_jvm_dtests_repeat
|
- run_jvm_dtests_repeat
|
||||||
|
|
||||||
j11_jvm_dtests_vnode_repeat:
|
j11_jvm_dtests_latest_vnode_repeat:
|
||||||
<<: *j11_repeated_utest_executor
|
<<: *j11_repeated_utest_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
- log_environment
|
- log_environment
|
||||||
- run_jvm_dtests_vnode_repeat
|
- run_jvm_dtests_latest_vnode_repeat
|
||||||
|
|
||||||
j11_simulator_dtests_repeat:
|
j11_simulator_dtests_repeat:
|
||||||
<<: *j11_repeated_utest_executor
|
<<: *j11_repeated_utest_executor
|
||||||
|
|
@ -2476,13 +2452,13 @@ jobs:
|
||||||
- log_environment
|
- log_environment
|
||||||
- run_jvm_dtests_repeat
|
- run_jvm_dtests_repeat
|
||||||
|
|
||||||
j17_jvm_dtests_vnode_repeat:
|
j17_jvm_dtests_latest_vnode_repeat:
|
||||||
<<: *j17_repeated_utest_executor
|
<<: *j17_repeated_utest_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
- log_environment
|
- log_environment
|
||||||
- run_jvm_dtests_vnode_repeat
|
- run_jvm_dtests_latest_vnode_repeat
|
||||||
|
|
||||||
j11_repeated_ant_test:
|
j11_repeated_ant_test:
|
||||||
<<: *j11_repeated_utest_executor
|
<<: *j11_repeated_utest_executor
|
||||||
|
|
@ -2540,7 +2516,7 @@ jobs:
|
||||||
count: ${REPEATED_DTESTS_COUNT}
|
count: ${REPEATED_DTESTS_COUNT}
|
||||||
stop_on_failure: ${REPEATED_TESTS_STOP_ON_FAILURE}
|
stop_on_failure: ${REPEATED_TESTS_STOP_ON_FAILURE}
|
||||||
|
|
||||||
j11_dtests_offheap_repeat:
|
j11_dtests_latest_repeat:
|
||||||
<<: *j11_repeated_dtest_executor
|
<<: *j11_repeated_dtest_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
|
|
@ -2553,7 +2529,7 @@ jobs:
|
||||||
upgrade: "false"
|
upgrade: "false"
|
||||||
count: ${REPEATED_DTESTS_COUNT}
|
count: ${REPEATED_DTESTS_COUNT}
|
||||||
stop_on_failure: ${REPEATED_TESTS_STOP_ON_FAILURE}
|
stop_on_failure: ${REPEATED_TESTS_STOP_ON_FAILURE}
|
||||||
extra_dtest_args: "--use-off-heap-memtables --skip-resource-intensive-tests"
|
extra_dtest_args: "--configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests"
|
||||||
|
|
||||||
j11_dtests_large_repeat:
|
j11_dtests_large_repeat:
|
||||||
<<: *j11_repeated_dtest_executor
|
<<: *j11_repeated_dtest_executor
|
||||||
|
|
@ -2615,7 +2591,7 @@ jobs:
|
||||||
count: ${REPEATED_DTESTS_COUNT}
|
count: ${REPEATED_DTESTS_COUNT}
|
||||||
stop_on_failure: ${REPEATED_TESTS_STOP_ON_FAILURE}
|
stop_on_failure: ${REPEATED_TESTS_STOP_ON_FAILURE}
|
||||||
|
|
||||||
j17_dtests_offheap_repeat:
|
j17_dtests_latest_repeat:
|
||||||
<<: *j17_repeated_dtest_executor
|
<<: *j17_repeated_dtest_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
|
|
@ -2628,7 +2604,7 @@ jobs:
|
||||||
upgrade: "false"
|
upgrade: "false"
|
||||||
count: ${REPEATED_DTESTS_COUNT}
|
count: ${REPEATED_DTESTS_COUNT}
|
||||||
stop_on_failure: ${REPEATED_TESTS_STOP_ON_FAILURE}
|
stop_on_failure: ${REPEATED_TESTS_STOP_ON_FAILURE}
|
||||||
extra_dtest_args: "--use-off-heap-memtables --skip-resource-intensive-tests"
|
extra_dtest_args: "--configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests"
|
||||||
|
|
||||||
j17_dtests_large_repeat:
|
j17_dtests_large_repeat:
|
||||||
<<: *j17_repeated_dtest_executor
|
<<: *j17_repeated_dtest_executor
|
||||||
|
|
@ -3098,10 +3074,10 @@ commands:
|
||||||
count: ${REPEATED_UTESTS_COUNT}
|
count: ${REPEATED_UTESTS_COUNT}
|
||||||
stop_on_failure: ${REPEATED_TESTS_STOP_ON_FAILURE}
|
stop_on_failure: ${REPEATED_TESTS_STOP_ON_FAILURE}
|
||||||
|
|
||||||
run_utests_trie_repeat:
|
run_utests_latest_repeat:
|
||||||
steps:
|
steps:
|
||||||
- run_repeated_utests:
|
- run_repeated_utests:
|
||||||
target: test-trie
|
target: test-latest
|
||||||
tests: ${REPEATED_UTESTS}
|
tests: ${REPEATED_UTESTS}
|
||||||
count: ${REPEATED_UTESTS_COUNT}
|
count: ${REPEATED_UTESTS_COUNT}
|
||||||
stop_on_failure: ${REPEATED_TESTS_STOP_ON_FAILURE}
|
stop_on_failure: ${REPEATED_TESTS_STOP_ON_FAILURE}
|
||||||
|
|
@ -3163,7 +3139,7 @@ commands:
|
||||||
count: ${REPEATED_SIMULATOR_DTESTS_COUNT}
|
count: ${REPEATED_SIMULATOR_DTESTS_COUNT}
|
||||||
stop_on_failure: ${REPEATED_TESTS_STOP_ON_FAILURE}
|
stop_on_failure: ${REPEATED_TESTS_STOP_ON_FAILURE}
|
||||||
|
|
||||||
run_jvm_dtests_vnode_repeat:
|
run_jvm_dtests_latest_vnode_repeat:
|
||||||
steps:
|
steps:
|
||||||
- run_repeated_utests:
|
- run_repeated_utests:
|
||||||
target: test-jvm-dtest-some
|
target: test-jvm-dtest-some
|
||||||
|
|
@ -3233,8 +3209,8 @@ commands:
|
||||||
testtag="compression"
|
testtag="compression"
|
||||||
elif [[ $target == "test-system-keyspace-directory" ]]; then
|
elif [[ $target == "test-system-keyspace-directory" ]]; then
|
||||||
testtag="system_keyspace_directory"
|
testtag="system_keyspace_directory"
|
||||||
elif [[ $target == "test-trie" ]]; then
|
elif [[ $target == "test-latest" ]]; then
|
||||||
testtag="trie"
|
testtag="latest"
|
||||||
elif [[ $target == "test-oa" ]]; then
|
elif [[ $target == "test-oa" ]]; then
|
||||||
testtag="oa"
|
testtag="oa"
|
||||||
fi
|
fi
|
||||||
|
|
@ -3257,7 +3233,7 @@ commands:
|
||||||
if [[ $target == "test" || \
|
if [[ $target == "test" || \
|
||||||
$target == "test-cdc" || \
|
$target == "test-cdc" || \
|
||||||
$target == "test-compression" || \
|
$target == "test-compression" || \
|
||||||
$target == "test-trie" || \
|
$target == "test-latest" || \
|
||||||
$target == "test-oa" || \
|
$target == "test-oa" || \
|
||||||
$target == "test-system-keyspace-directory" || \
|
$target == "test-system-keyspace-directory" || \
|
||||||
$target == "fqltool-test" || \
|
$target == "fqltool-test" || \
|
||||||
|
|
@ -3385,7 +3361,7 @@ commands:
|
||||||
if [[ $target == "test" || \
|
if [[ $target == "test" || \
|
||||||
$target == "test-cdc" || \
|
$target == "test-cdc" || \
|
||||||
$target == "test-compression" || \
|
$target == "test-compression" || \
|
||||||
$target == "test-trie" || \
|
$target == "test-latest" || \
|
||||||
$target == "test-oa" || \
|
$target == "test-oa" || \
|
||||||
$target == "test-system-keyspace-directory" || \
|
$target == "test-system-keyspace-directory" || \
|
||||||
$target == "fqltool-test" || \
|
$target == "fqltool-test" || \
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
--- config_template.yml 2024-01-05 00:32:24.148600479 +0000
|
--- config_template.yml 2024-02-29 12:11:33.962348946 +0200
|
||||||
+++ config_template.yml.PAID 2024-01-05 00:32:40.861079981 +0000
|
+++ config_template.yml.PAID 2024-02-29 12:18:07.186939536 +0200
|
||||||
@@ -157,20 +157,20 @@
|
@@ -157,20 +157,20 @@
|
||||||
j11_par_executor: &j11_par_executor
|
j11_par_executor: &j11_par_executor
|
||||||
executor:
|
executor:
|
||||||
|
|
@ -142,7 +142,7 @@
|
||||||
|
|
||||||
j11_separate_jobs: &j11_separate_jobs
|
j11_separate_jobs: &j11_separate_jobs
|
||||||
jobs:
|
jobs:
|
||||||
@@ -1920,7 +1943,7 @@
|
@@ -1896,7 +1919,7 @@
|
||||||
target: testclasslist-system-keyspace-directory
|
target: testclasslist-system-keyspace-directory
|
||||||
|
|
||||||
j11_dtests_vnode:
|
j11_dtests_vnode:
|
||||||
|
|
@ -151,17 +151,17 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -1934,7 +1957,7 @@
|
@@ -1910,7 +1933,7 @@
|
||||||
pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests'
|
pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests'
|
||||||
|
|
||||||
j11_dtests_offheap:
|
j11_dtests_latest:
|
||||||
- <<: *j11_par_executor
|
- <<: *j11_par_executor
|
||||||
+ <<: *j11_large_par_executor
|
+ <<: *j11_large_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -1948,7 +1971,7 @@
|
@@ -1924,7 +1947,7 @@
|
||||||
pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests'
|
pytest_extra_args: '--use-vnodes --num-tokens=16 --configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests'
|
||||||
|
|
||||||
j17_dtests_vnode:
|
j17_dtests_vnode:
|
||||||
- <<: *j17_par_executor
|
- <<: *j17_par_executor
|
||||||
|
|
@ -169,17 +169,17 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -1963,7 +1986,7 @@
|
@@ -1939,7 +1962,7 @@
|
||||||
pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests'
|
pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests'
|
||||||
|
|
||||||
j17_dtests_offheap:
|
j17_dtests_latest:
|
||||||
- <<: *j17_par_executor
|
- <<: *j17_par_executor
|
||||||
+ <<: *j17_large_par_executor
|
+ <<: *j17_large_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -1978,7 +2001,7 @@
|
@@ -1954,7 +1977,7 @@
|
||||||
pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests'
|
pytest_extra_args: '--use-vnodes --num-tokens=16 --configuration-yaml=cassandra_latest.yaml --skip-resource-intensive-tests'
|
||||||
|
|
||||||
j11_dtests:
|
j11_dtests:
|
||||||
- <<: *j11_par_executor
|
- <<: *j11_par_executor
|
||||||
|
|
@ -187,7 +187,7 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -1992,7 +2015,7 @@
|
@@ -1968,7 +1991,7 @@
|
||||||
pytest_extra_args: '--skip-resource-intensive-tests'
|
pytest_extra_args: '--skip-resource-intensive-tests'
|
||||||
|
|
||||||
j17_dtests:
|
j17_dtests:
|
||||||
|
|
@ -196,7 +196,7 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2007,7 +2030,7 @@
|
@@ -1983,7 +2006,7 @@
|
||||||
pytest_extra_args: '--skip-resource-intensive-tests'
|
pytest_extra_args: '--skip-resource-intensive-tests'
|
||||||
|
|
||||||
j11_upgrade_dtests:
|
j11_upgrade_dtests:
|
||||||
|
|
@ -205,7 +205,7 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2021,7 +2044,7 @@
|
@@ -1997,7 +2020,7 @@
|
||||||
pytest_extra_args: '--execute-upgrade-tests-only --upgrade-target-version-only --upgrade-version-selection all'
|
pytest_extra_args: '--execute-upgrade-tests-only --upgrade-target-version-only --upgrade-version-selection all'
|
||||||
|
|
||||||
j11_cqlsh_dtests_py38_vnode:
|
j11_cqlsh_dtests_py38_vnode:
|
||||||
|
|
@ -214,7 +214,7 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2039,7 +2062,7 @@
|
@@ -2015,7 +2038,7 @@
|
||||||
python_version: '3.8'
|
python_version: '3.8'
|
||||||
|
|
||||||
j11_cqlsh_dtests_py311_vnode:
|
j11_cqlsh_dtests_py311_vnode:
|
||||||
|
|
@ -223,25 +223,25 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2057,7 +2080,7 @@
|
@@ -2033,7 +2056,7 @@
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
|
|
||||||
j11_cqlsh_dtests_py38_offheap:
|
j11_cqlsh_dtests_py38_latest:
|
||||||
- <<: *j11_par_executor
|
- <<: *j11_par_executor
|
||||||
+ <<: *j11_large_par_executor
|
+ <<: *j11_large_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2075,7 +2098,7 @@
|
@@ -2051,7 +2074,7 @@
|
||||||
python_version: '3.8'
|
python_version: '3.8'
|
||||||
|
|
||||||
j11_cqlsh_dtests_py311_offheap:
|
j11_cqlsh_dtests_py311_latest:
|
||||||
- <<: *j11_par_executor
|
- <<: *j11_par_executor
|
||||||
+ <<: *j11_large_par_executor
|
+ <<: *j11_large_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2093,7 +2116,7 @@
|
@@ -2069,7 +2092,7 @@
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
|
|
||||||
j11_cqlsh_dtests_py38:
|
j11_cqlsh_dtests_py38:
|
||||||
|
|
@ -250,7 +250,7 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2111,7 +2134,7 @@
|
@@ -2087,7 +2110,7 @@
|
||||||
python_version: '3.8'
|
python_version: '3.8'
|
||||||
|
|
||||||
j11_cqlsh_dtests_py311:
|
j11_cqlsh_dtests_py311:
|
||||||
|
|
@ -259,7 +259,7 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2129,7 +2152,7 @@
|
@@ -2105,7 +2128,7 @@
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
|
|
||||||
j17_cqlsh_dtests_py38_vnode:
|
j17_cqlsh_dtests_py38_vnode:
|
||||||
|
|
@ -268,7 +268,7 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2147,7 +2170,7 @@
|
@@ -2123,7 +2146,7 @@
|
||||||
python_version: '3.8'
|
python_version: '3.8'
|
||||||
|
|
||||||
j17_cqlsh_dtests_py311_vnode:
|
j17_cqlsh_dtests_py311_vnode:
|
||||||
|
|
@ -277,25 +277,25 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2165,7 +2188,7 @@
|
@@ -2141,7 +2164,7 @@
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
|
|
||||||
j17_cqlsh_dtests_py38_offheap:
|
j17_cqlsh_dtests_py38_latest:
|
||||||
- <<: *j17_par_executor
|
- <<: *j17_par_executor
|
||||||
+ <<: *j17_large_par_executor
|
+ <<: *j17_large_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2183,7 +2206,7 @@
|
@@ -2159,7 +2182,7 @@
|
||||||
python_version: '3.8'
|
python_version: '3.8'
|
||||||
|
|
||||||
j17_cqlsh_dtests_py311_offheap:
|
j17_cqlsh_dtests_py311_latest:
|
||||||
- <<: *j17_par_executor
|
- <<: *j17_par_executor
|
||||||
+ <<: *j17_large_par_executor
|
+ <<: *j17_large_par_executor
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2201,7 +2224,7 @@
|
@@ -2177,7 +2200,7 @@
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
|
|
||||||
j17_cqlsh_dtests_py38:
|
j17_cqlsh_dtests_py38:
|
||||||
|
|
@ -304,7 +304,7 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2219,7 +2242,7 @@
|
@@ -2195,7 +2218,7 @@
|
||||||
python_version: '3.8'
|
python_version: '3.8'
|
||||||
|
|
||||||
j17_cqlsh_dtests_py311:
|
j17_cqlsh_dtests_py311:
|
||||||
|
|
@ -313,7 +313,7 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2237,7 +2260,7 @@
|
@@ -2213,7 +2236,7 @@
|
||||||
python_version: '3.11'
|
python_version: '3.11'
|
||||||
|
|
||||||
j11_dtests_large_vnode:
|
j11_dtests_large_vnode:
|
||||||
|
|
@ -322,7 +322,7 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2251,7 +2274,7 @@
|
@@ -2227,7 +2250,7 @@
|
||||||
pytest_extra_args: '--use-vnodes --num-tokens=16 --only-resource-intensive-tests --force-resource-intensive-tests'
|
pytest_extra_args: '--use-vnodes --num-tokens=16 --only-resource-intensive-tests --force-resource-intensive-tests'
|
||||||
|
|
||||||
j11_dtests_large:
|
j11_dtests_large:
|
||||||
|
|
@ -331,7 +331,7 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2265,7 +2288,7 @@
|
@@ -2241,7 +2264,7 @@
|
||||||
pytest_extra_args: '--only-resource-intensive-tests --force-resource-intensive-tests'
|
pytest_extra_args: '--only-resource-intensive-tests --force-resource-intensive-tests'
|
||||||
|
|
||||||
j17_dtests_large_vnode:
|
j17_dtests_large_vnode:
|
||||||
|
|
@ -340,7 +340,7 @@
|
||||||
steps:
|
steps:
|
||||||
- attach_workspace:
|
- attach_workspace:
|
||||||
at: /home/cassandra
|
at: /home/cassandra
|
||||||
@@ -2279,7 +2302,7 @@
|
@@ -2255,7 +2278,7 @@
|
||||||
pytest_extra_args: '--use-vnodes --num-tokens=16 --only-resource-intensive-tests --force-resource-intensive-tests'
|
pytest_extra_args: '--use-vnodes --num-tokens=16 --only-resource-intensive-tests --force-resource-intensive-tests'
|
||||||
|
|
||||||
j17_dtests_large:
|
j17_dtests_large:
|
||||||
|
|
|
||||||
|
|
@ -283,7 +283,7 @@ pipeline {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('trie') {
|
stage('latest') {
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
def attempt = 1
|
def attempt = 1
|
||||||
|
|
@ -292,18 +292,18 @@ pipeline {
|
||||||
sleep(60 * attempt)
|
sleep(60 * attempt)
|
||||||
}
|
}
|
||||||
attempt = attempt + 1
|
attempt = attempt + 1
|
||||||
trie = build job: "${env.JOB_NAME}-test-trie", propagate: false
|
latest = build job: "${env.JOB_NAME}-test-latest", propagate: false
|
||||||
if (trie.result != 'FAILURE') break
|
if (latest.result != 'FAILURE') break
|
||||||
}
|
}
|
||||||
if (trie.result != 'SUCCESS') unstable('trie failures')
|
if (latest.result != 'SUCCESS') unstable('test-latest failures')
|
||||||
if (trie.result == 'FAILURE') currentBuild.result='FAILURE'
|
if (latest.result == 'FAILURE') currentBuild.result='FAILURE'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
post {
|
post {
|
||||||
always {
|
always {
|
||||||
warnError('missing test xml files') {
|
warnError('missing test xml files') {
|
||||||
script {
|
script {
|
||||||
copyTestResults('test-trie', trie.getNumber())
|
copyTestResults('test-latest', latest.getNumber())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
5.0-beta2
|
5.0-beta2
|
||||||
|
* Add an optimized default configuration to tests and make it available for new users (CASSANDRA-18753)
|
||||||
* Fix remote JMX under Java17 (CASSANDRA-19453)
|
* Fix remote JMX under Java17 (CASSANDRA-19453)
|
||||||
* Avoid consistency violations for SAI intersections over unrepaired data at consistency levels requiring reconciliation (CASSANDRA-19018)
|
* Avoid consistency violations for SAI intersections over unrepaired data at consistency levels requiring reconciliation (CASSANDRA-19018)
|
||||||
* Fix NullPointerException in ANN+WHERE when adding rows in another partition (CASSANDRA-19404)
|
* Fix NullPointerException in ANN+WHERE when adding rows in another partition (CASSANDRA-19404)
|
||||||
|
|
|
||||||
6
NEWS.txt
6
NEWS.txt
|
|
@ -71,6 +71,12 @@ using the provided 'sstableupgrade' tool.
|
||||||
|
|
||||||
New features
|
New features
|
||||||
------------
|
------------
|
||||||
|
- A new configuration file, `cassandra_latest.yaml`, is provided for users that would like to evaluate and
|
||||||
|
experiment with the latest recommended features and changes in Cassandra, which provide improved functionality and
|
||||||
|
performance. This file is intended to be used in a development environment and is only recommended for production
|
||||||
|
use after careful evaluation. The file is located in the conf directory and is not selected by default.
|
||||||
|
To use it, one may specify the file using the `-Dcassandra.config` option, e.g. by running
|
||||||
|
`cassandra -Dcassandra.config=file://$CASSANDRA_HOME/conf/cassandra_latest.yaml`.
|
||||||
- Added a new authorizer, CIDR authorizer, to restrict user access based on CIDR groups.
|
- Added a new authorizer, CIDR authorizer, to restrict user access based on CIDR groups.
|
||||||
- Pluggable crypto providers were made possible via `crypto_provider` section in cassandra.yaml. The default provider is
|
- Pluggable crypto providers were made possible via `crypto_provider` section in cassandra.yaml. The default provider is
|
||||||
Amazon Corretto Crypto Provider and it is installed automatically upon node's start. Only x86_64 and aarch64 architectures are supported now.
|
Amazon Corretto Crypto Provider and it is installed automatically upon node's start. Only x86_64 and aarch64 architectures are supported now.
|
||||||
|
|
|
||||||
47
build.xml
47
build.xml
|
|
@ -1294,22 +1294,22 @@
|
||||||
</sequential>
|
</sequential>
|
||||||
</macrodef>
|
</macrodef>
|
||||||
|
|
||||||
<macrodef name="testlist-trie">
|
<macrodef name="testlist-latest">
|
||||||
<attribute name="test.file.list" />
|
<attribute name="test.file.list" />
|
||||||
<sequential>
|
<sequential>
|
||||||
<property name="trie_yaml" value="${build.test.dir}/cassandra.trie.yaml"/>
|
<property name="latest_yaml" value="${build.test.dir}/cassandra.latest.yaml"/>
|
||||||
<concat destfile="${trie_yaml}">
|
<concat destfile="${latest_yaml}">
|
||||||
<fileset file="${test.conf}/cassandra.yaml"/>
|
<fileset file="${test.conf}/cassandra.yaml"/>
|
||||||
<fileset file="${test.conf}/trie_memtable.yaml"/>
|
<fileset file="${test.conf}/latest_diff.yaml"/>
|
||||||
<fileset file="${test.conf}/storage_compatibility_mode_none.yaml"/>
|
<fileset file="${test.conf}/storage_compatibility_mode_none.yaml"/>
|
||||||
</concat>
|
</concat>
|
||||||
<testmacrohelper inputdir="${test.unit.src}" filelist="@{test.file.list}"
|
<testmacrohelper inputdir="${test.unit.src}" filelist="@{test.file.list}"
|
||||||
exclude="**/*.java" timeout="${test.timeout}" testtag="trie">
|
exclude="**/*.java" timeout="${test.timeout}" testtag="latest">
|
||||||
<jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>
|
<jvmarg value="-Dlegacy-sstable-root=${test.data}/legacy-sstables"/>
|
||||||
<jvmarg value="-Dinvalid-legacy-sstable-root=${test.data}/invalid-legacy-sstables"/>
|
<jvmarg value="-Dinvalid-legacy-sstable-root=${test.data}/invalid-legacy-sstables"/>
|
||||||
<jvmarg value="-Dcassandra.ring_delay_ms=1000"/>
|
<jvmarg value="-Dcassandra.ring_delay_ms=1000"/>
|
||||||
<jvmarg value="-Dcassandra.tolerate_sstable_size=true"/>
|
<jvmarg value="-Dcassandra.tolerate_sstable_size=true"/>
|
||||||
<jvmarg value="-Dcassandra.config=file:///${trie_yaml}"/>
|
<jvmarg value="-Dcassandra.config=file:///${latest_yaml}"/>
|
||||||
<jvmarg value="-Dcassandra.test.storage_compatibility_mode=NONE"/>
|
<jvmarg value="-Dcassandra.test.storage_compatibility_mode=NONE"/>
|
||||||
<jvmarg value="-Dcassandra.skip_sync=true" />
|
<jvmarg value="-Dcassandra.skip_sync=true" />
|
||||||
</testmacrohelper>
|
</testmacrohelper>
|
||||||
|
|
@ -1427,12 +1427,12 @@
|
||||||
<testhelper testdelegate="testlist-cdc" />
|
<testhelper testdelegate="testlist-cdc" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="test-trie" depends="maybe-build-test" description="Execute unit tests with trie memtables">
|
<target name="test-latest" depends="maybe-build-test" description="Execute unit tests with configuration matching cassandra_latest.yaml">
|
||||||
<path id="all-test-classes-path">
|
<path id="all-test-classes-path">
|
||||||
<fileset dir="${test.unit.src}" includes="**/${test.name}.java" />
|
<fileset dir="${test.unit.src}" includes="**/${test.name}.java" />
|
||||||
</path>
|
</path>
|
||||||
<property name="all-test-classes" refid="all-test-classes-path"/>
|
<property name="all-test-classes" refid="all-test-classes-path"/>
|
||||||
<testhelper testdelegate="testlist-trie" />
|
<testhelper testdelegate="testlist-latest" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="test-oa" depends="maybe-build-test" description="Test Runner for the oa sstable format">
|
<target name="test-oa" depends="maybe-build-test" description="Test Runner for the oa sstable format">
|
||||||
|
|
@ -1697,12 +1697,12 @@
|
||||||
<property name="all-test-classes" refid="all-test-classes-path"/>
|
<property name="all-test-classes" refid="all-test-classes-path"/>
|
||||||
<testhelper testdelegate="testlist-compression"/>
|
<testhelper testdelegate="testlist-compression"/>
|
||||||
</target>
|
</target>
|
||||||
<target name="testclasslist-trie" depends="maybe-build-test" description="Run tests given in file -Dtest.classlistfile (one-class-per-line, e.g. org/apache/cassandra/db/SomeTest.java)">
|
<target name="testclasslist-latest" depends="maybe-build-test" description="Run tests given in file -Dtest.classlistfile (one-class-per-line, e.g. org/apache/cassandra/db/SomeTest.java)">
|
||||||
<path id="all-test-classes-path">
|
<path id="all-test-classes-path">
|
||||||
<fileset dir="${test.dir}/${test.classlistprefix}" includesfile="${test.classlistfile}"/>
|
<fileset dir="${test.dir}/${test.classlistprefix}" includesfile="${test.classlistfile}"/>
|
||||||
</path>
|
</path>
|
||||||
<property name="all-test-classes" refid="all-test-classes-path"/>
|
<property name="all-test-classes" refid="all-test-classes-path"/>
|
||||||
<testhelper testdelegate="testlist-trie"/>
|
<testhelper testdelegate="testlist-latest"/>
|
||||||
</target>
|
</target>
|
||||||
<target name="testclasslist-cdc" depends="maybe-build-test" description="Run tests given in file -Dtest.classlistfile (one-class-per-line, e.g. org/apache/cassandra/db/SomeTest.java)">
|
<target name="testclasslist-cdc" depends="maybe-build-test" description="Run tests given in file -Dtest.classlistfile (one-class-per-line, e.g. org/apache/cassandra/db/SomeTest.java)">
|
||||||
<path id="all-test-classes-path">
|
<path id="all-test-classes-path">
|
||||||
|
|
@ -1772,7 +1772,17 @@
|
||||||
</testmacro>
|
</testmacro>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<property name="simulator.asm.print" value="none"/> <!-- Supports: NONE, CLASS_SUMMARY, CLASS_DETAIL, METHOD_SUMMARY, METHOD_DETAIL, ASM; see org.apache.cassandra.simulator.asm.MethodLogger.Level -->
|
<target name="test-jvm-dtest-latest" depends="maybe-build-test" description="Execute in-jvm dtests with latest configuration">
|
||||||
|
<testmacro inputdir="${test.distributed.src}" timeout="${test.distributed.timeout}" forkmode="once" showoutput="true" filter="**/test/${test.name}.java">
|
||||||
|
<jvmarg value="-Djvm_dtests.latest=true"/>
|
||||||
|
<jvmarg value="-Dlogback.configurationFile=test/conf/logback-dtest.xml"/>
|
||||||
|
<jvmarg value="-Dcassandra.ring_delay_ms=10000"/>
|
||||||
|
<jvmarg value="-Dcassandra.tolerate_sstable_size=true"/>
|
||||||
|
<jvmarg value="-Dcassandra.skip_sync=true" />
|
||||||
|
</testmacro>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<property name="simulator.asm.print" value="none"/> <!-- Supports: NONE, CLASS_SUMMARY, CLASS_DETAIL, METHOD_SUMMARY, METHOD_DETAIL, ASM; see org.apache.cassandra.simulator.asm.MethodLogger.Level -->
|
||||||
<target name="test-simulator-dtest" depends="maybe-build-test" description="Execute simulator dtests">
|
<target name="test-simulator-dtest" depends="maybe-build-test" description="Execute simulator dtests">
|
||||||
<testmacro inputdir="${test.simulator-test.src}" timeout="${test.simulation.timeout}" forkmode="perTest" showoutput="true" filter="**/test/${test.name}.java">
|
<testmacro inputdir="${test.simulator-test.src}" timeout="${test.simulation.timeout}" forkmode="perTest" showoutput="true" filter="**/test/${test.name}.java">
|
||||||
<jvmarg value="-Dlogback.configurationFile=test/conf/logback-simulator.xml"/>
|
<jvmarg value="-Dlogback.configurationFile=test/conf/logback-simulator.xml"/>
|
||||||
|
|
@ -1825,7 +1835,20 @@
|
||||||
</testmacro>
|
</testmacro>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="generate-unified-test-report" description="Merge all unit xml files into one, generate html pages, and print summary test numbers">
|
<target name="test-jvm-dtest-latest-some" depends="maybe-build-test" description="Execute some in-jvm dtests with latest configuration">
|
||||||
|
<testmacro inputdir="${test.distributed.src}" timeout="${test.distributed.timeout}" forkmode="once" showoutput="true">
|
||||||
|
<test unless:blank="${test.methods}" name="${test.name}" methods="${test.methods}" todir="${build.test.dir}/output/" outfile="TEST-${test.name}-${test.methods}"/>
|
||||||
|
<test if:blank="${test.methods}" name="${test.name}" todir="${build.test.dir}/output/" outfile="TEST-${test.name}"/>
|
||||||
|
<jvmarg value="-Djvm_dtests.latest=true"/>
|
||||||
|
<jvmarg value="-Dlogback.configurationFile=test/conf/logback-dtest.xml"/>
|
||||||
|
<jvmarg value="-Dcassandra.ring_delay_ms=10000"/>
|
||||||
|
<jvmarg value="-Dcassandra.tolerate_sstable_size=true"/>
|
||||||
|
<jvmarg value="-Dcassandra.skip_sync=true" />
|
||||||
|
</testmacro>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
|
||||||
|
<target name="generate-unified-test-report" description="Merge all unit xml files into one, generate html pages, and print summary test numbers">
|
||||||
<junitreport todir="${build.dir}">
|
<junitreport todir="${build.dir}">
|
||||||
<fileset dir="${build.test.dir}/output">
|
<fileset dir="${build.test.dir}/output">
|
||||||
<include name="**/TEST*.xml"/>
|
<include name="**/TEST*.xml"/>
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,21 @@
|
||||||
# full explanations of configuration directives
|
# full explanations of configuration directives
|
||||||
# /NOTE
|
# /NOTE
|
||||||
|
|
||||||
|
# NOTE:
|
||||||
|
# This file is provided in two versions:
|
||||||
|
# - cassandra.yaml: Contains configuration defaults for a "compatible"
|
||||||
|
# configuration that operates using settings that are backwards-compatible
|
||||||
|
# and interoperable with machines running older versions of Cassandra.
|
||||||
|
# This version is provided to facilitate pain-free upgrades for existing
|
||||||
|
# users of Cassandra running in production who want to gradually and
|
||||||
|
# carefully introduce new features.
|
||||||
|
# - cassandra_latest.yaml: Contains configuration defaults that enable
|
||||||
|
# the latest features of Cassandra, including improved functionality as
|
||||||
|
# well as higher performance. This version is provided for new users of
|
||||||
|
# Cassandra who want to get the most out of their cluster, and for users
|
||||||
|
# evaluating the technology.
|
||||||
|
# /NOTE
|
||||||
|
|
||||||
# The name of the cluster. This is mainly used to prevent machines in
|
# The name of the cluster. This is mainly used to prevent machines in
|
||||||
# one logical cluster from joining another.
|
# one logical cluster from joining another.
|
||||||
cluster_name: 'Test Cluster'
|
cluster_name: 'Test Cluster'
|
||||||
|
|
@ -703,6 +718,31 @@ concurrent_materialized_view_writes: 32
|
||||||
# spinning (for spinning disks)
|
# spinning (for spinning disks)
|
||||||
# disk_optimization_strategy: ssd
|
# disk_optimization_strategy: ssd
|
||||||
|
|
||||||
|
# Supported memtable implementations and selected default.
|
||||||
|
# Currently Cassandra offers two memtable implementations:
|
||||||
|
# - SkipListMemtable is the legacy memtable implementation provided by earlier
|
||||||
|
# versions of Cassandra.
|
||||||
|
# - TrieMemtable is a new memtable that utilizes a trie data structure. This
|
||||||
|
# implementation significantly reduces garbage collection load by moving
|
||||||
|
# more of the sstable metadata off-heap, fits more data in the same allocation
|
||||||
|
# and can reliably handle higher write throughput.
|
||||||
|
# Because the trie memtable is a sharded single-writer solution, it can perform
|
||||||
|
# worse when the load is very unevenly distributed, e.g. when most of the writes
|
||||||
|
# access a very small number of partitions or with legacy secondary indexes.
|
||||||
|
# The memtable implementation can be selected per table by setting memtable
|
||||||
|
# property in the table definition to one of the configurations specified below.
|
||||||
|
# If the memtable property is not set, the "default" configuration will be used.
|
||||||
|
# See src/java/org/apache/cassandra/db/memtable/Memtable_API.md for further
|
||||||
|
# information.
|
||||||
|
memtable:
|
||||||
|
configurations:
|
||||||
|
skiplist:
|
||||||
|
class_name: SkipListMemtable
|
||||||
|
trie:
|
||||||
|
class_name: TrieMemtable
|
||||||
|
default:
|
||||||
|
inherits: skiplist
|
||||||
|
|
||||||
# Total permitted memory to use for memtables. Cassandra will stop
|
# Total permitted memory to use for memtables. Cassandra will stop
|
||||||
# accepting writes when the limit is exceeded until a flush completes,
|
# accepting writes when the limit is exceeded until a flush completes,
|
||||||
# and will trigger a flush based on memtable_cleanup_threshold
|
# and will trigger a flush based on memtable_cleanup_threshold
|
||||||
|
|
@ -848,6 +888,7 @@ memtable_allocation_type: heap_buffers
|
||||||
# shrink their index summaries in order to meet this limit. However, this
|
# shrink their index summaries in order to meet this limit. However, this
|
||||||
# is a best-effort process. In extreme conditions Cassandra may need to use
|
# is a best-effort process. In extreme conditions Cassandra may need to use
|
||||||
# more than this amount of memory.
|
# more than this amount of memory.
|
||||||
|
# Only relevant to formats that use an index summary, e.g. BIG.
|
||||||
# Min unit: KiB
|
# Min unit: KiB
|
||||||
index_summary_capacity:
|
index_summary_capacity:
|
||||||
|
|
||||||
|
|
@ -855,6 +896,7 @@ index_summary_capacity:
|
||||||
# periodically to redistribute memory from the fixed-size pool to sstables
|
# periodically to redistribute memory from the fixed-size pool to sstables
|
||||||
# proportional their recent read rates. Setting to null value will disable this
|
# proportional their recent read rates. Setting to null value will disable this
|
||||||
# process, leaving existing index summaries at their current sampling level.
|
# process, leaving existing index summaries at their current sampling level.
|
||||||
|
# Only relevant to formats that use an index summary, e.g. BIG.
|
||||||
# Min unit: m
|
# Min unit: m
|
||||||
index_summary_resize_interval: 60m
|
index_summary_resize_interval: 60m
|
||||||
|
|
||||||
|
|
@ -1112,14 +1154,14 @@ column_index_cache_size: 2KiB
|
||||||
# specify compaction.
|
# specify compaction.
|
||||||
# The selected compaction strategy will also apply to system tables.
|
# The selected compaction strategy will also apply to system tables.
|
||||||
#
|
#
|
||||||
# The default is to use SizeTieredCompactionStrategy, with its default
|
# If no value is specified, the default is to use SizeTieredCompactionStrategy,
|
||||||
# compaction parameters.
|
# with its default compaction parameters.
|
||||||
#
|
#
|
||||||
# default_compaction:
|
# default_compaction:
|
||||||
# class_name: UnifiedCompactionStrategy
|
# class_name: SizeTieredCompactionStrategy
|
||||||
# parameters:
|
# parameters:
|
||||||
# scaling_parameters: T4
|
# min_threshold: 4
|
||||||
# target_sstable_size: 1GiB
|
# max_threshold: 32
|
||||||
|
|
||||||
|
|
||||||
# Number of simultaneous compactions to allow, NOT including
|
# Number of simultaneous compactions to allow, NOT including
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -205,6 +205,8 @@ public enum CassandraRelevantProperties
|
||||||
DTEST_API_LOG_TOPOLOGY("cassandra.dtest.api.log.topology"),
|
DTEST_API_LOG_TOPOLOGY("cassandra.dtest.api.log.topology"),
|
||||||
/** This property indicates if the code is running under the in-jvm dtest framework */
|
/** 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"),
|
DTEST_IS_IN_JVM_DTEST("org.apache.cassandra.dtest.is_in_jvm_dtest"),
|
||||||
|
/** In_JVM dtest property indicating that the test should use "latest" configuration */
|
||||||
|
DTEST_JVM_DTESTS_USE_LATEST("jvm_dtests.latest"),
|
||||||
ENABLE_DC_LOCAL_COMMIT("cassandra.enable_dc_local_commit", "true"),
|
ENABLE_DC_LOCAL_COMMIT("cassandra.enable_dc_local_commit", "true"),
|
||||||
/**
|
/**
|
||||||
* Whether {@link org.apache.cassandra.db.ConsistencyLevel#NODE_LOCAL} should be allowed.
|
* Whether {@link org.apache.cassandra.db.ConsistencyLevel#NODE_LOCAL} should be allowed.
|
||||||
|
|
|
||||||
|
|
@ -175,7 +175,7 @@ public class DatabaseDescriptor
|
||||||
|
|
||||||
/* Hashing strategy Random or OPHF */
|
/* Hashing strategy Random or OPHF */
|
||||||
private static IPartitioner partitioner;
|
private static IPartitioner partitioner;
|
||||||
private static String paritionerName;
|
private static String partitionerName;
|
||||||
|
|
||||||
private static DiskAccessMode indexAccessMode;
|
private static DiskAccessMode indexAccessMode;
|
||||||
|
|
||||||
|
|
@ -1434,7 +1434,7 @@ public class DatabaseDescriptor
|
||||||
throw new ConfigurationException("Invalid partitioner class " + name, e);
|
throw new ConfigurationException("Invalid partitioner class " + name, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
paritionerName = partitioner.getClass().getCanonicalName();
|
partitionerName = partitioner.getClass().getCanonicalName();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static DiskAccessMode resolveCommitLogWriteDiskAccessMode(DiskAccessMode providedDiskAccessMode)
|
private static DiskAccessMode resolveCommitLogWriteDiskAccessMode(DiskAccessMode providedDiskAccessMode)
|
||||||
|
|
@ -1944,7 +1944,7 @@ public class DatabaseDescriptor
|
||||||
|
|
||||||
public static String getPartitionerName()
|
public static String getPartitionerName()
|
||||||
{
|
{
|
||||||
return paritionerName;
|
return partitionerName;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For tests ONLY, don't use otherwise or all hell will break loose. Tests should restore value at the end. */
|
/* For tests ONLY, don't use otherwise or all hell will break loose. Tests should restore value at the end. */
|
||||||
|
|
@ -1952,6 +1952,7 @@ public class DatabaseDescriptor
|
||||||
{
|
{
|
||||||
IPartitioner old = partitioner;
|
IPartitioner old = partitioner;
|
||||||
partitioner = newPartitioner;
|
partitioner = newPartitioner;
|
||||||
|
partitionerName = partitioner.getClass().getCanonicalName();
|
||||||
return old;
|
return old;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -658,6 +658,9 @@ public abstract class ReadCommand extends AbstractReadQuery
|
||||||
@Override
|
@Override
|
||||||
protected Row applyToStatic(Row row)
|
protected Row applyToStatic(Row row)
|
||||||
{
|
{
|
||||||
|
if (row == Rows.EMPTY_STATIC_ROW)
|
||||||
|
return row;
|
||||||
|
|
||||||
return applyToRow(row);
|
return applyToRow(row);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,7 @@ public class UnifiedCompactionStrategy extends AbstractCompactionStrategy
|
||||||
super(cfs, options);
|
super(cfs, options);
|
||||||
this.controller = controller;
|
this.controller = controller;
|
||||||
estimatedRemainingTasks = 0;
|
estimatedRemainingTasks = 0;
|
||||||
|
lastExpiredCheck = Clock.Global.currentTimeMillis();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Map<String, String> validateOptions(Map<String, String> options) throws ConfigurationException
|
public static Map<String, String> validateOptions(Map<String, String> options) throws ConfigurationException
|
||||||
|
|
|
||||||
|
|
@ -268,9 +268,10 @@ public class Controller
|
||||||
if (minSSTableSize > 0)
|
if (minSSTableSize > 0)
|
||||||
{
|
{
|
||||||
double count = localDensity / minSSTableSize;
|
double count = localDensity / minSSTableSize;
|
||||||
// Minimum size only applies if it is smaller than the base count.
|
// Minimum size only applies if the base count would result in smaller sstables.
|
||||||
|
// We also want to use the min size if we don't yet know the flush size (density is NaN).
|
||||||
// Note: the minimum size cannot be larger than the target size's minimum.
|
// Note: the minimum size cannot be larger than the target size's minimum.
|
||||||
if (count < baseShardCount)
|
if (!(count >= baseShardCount)) // also true for count == NaN
|
||||||
{
|
{
|
||||||
// Make it a power of two, rounding down so that sstables are greater in size than the min.
|
// Make it a power of two, rounding down so that sstables are greater in size than the min.
|
||||||
// Setting the bottom bit to 1 ensures the result is at least 1.
|
// Setting the bottom bit to 1 ensures the result is at least 1.
|
||||||
|
|
|
||||||
|
|
@ -15,18 +15,47 @@
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
# This file changes the configuration for tests to match the
|
||||||
|
# cassandra_latest.yaml file, which enables new features.
|
||||||
|
|
||||||
|
# This file was constructed by running:
|
||||||
|
# `diff conf/cassandra.yaml conf/cassandra_latest.yaml | grep '^>' | cut -c 3-`
|
||||||
|
# and moving the `default: inherits: trie` lines to the start of the file.
|
||||||
|
# On any change to this file, please also update
|
||||||
|
# test/distributed/org/apache/cassandra/distributed/impl/InstanceConfig.java
|
||||||
|
|
||||||
# Change default memtable implementation to TrieMemtable
|
# Change default memtable implementation to TrieMemtable
|
||||||
# Note: this attaches at the end of cassandra.yaml, where the memtable configuration setting must be.
|
# Note: this attaches at the end of cassandra.yaml, where the memtable configuration setting must be.
|
||||||
default:
|
default:
|
||||||
inherits: trie
|
inherits: trie
|
||||||
|
|
||||||
# Change the default SSTable format to BTI.
|
key_cache_size: 0MiB
|
||||||
# Note: This can also be achieved by passing -Dcassandra.sstable.format.default=bti
|
|
||||||
|
memtable_allocation_type: offheap_objects
|
||||||
|
|
||||||
|
commitlog_disk_access_mode: auto
|
||||||
|
|
||||||
|
trickle_fsync: true
|
||||||
|
|
||||||
sstable:
|
sstable:
|
||||||
selected_format: bti
|
selected_format: bti
|
||||||
|
|
||||||
# Change default compaction to UCS
|
column_index_size: 4KiB
|
||||||
|
|
||||||
default_compaction:
|
default_compaction:
|
||||||
class_name: UnifiedCompactionStrategy
|
class_name: UnifiedCompactionStrategy
|
||||||
parameters:
|
parameters:
|
||||||
base_shard_count: 1
|
scaling_parameters: T4
|
||||||
|
max_sstables_to_compact: 64
|
||||||
|
target_sstable_size: 1GiB
|
||||||
|
sstable_growth: 0.3333333333333333
|
||||||
|
min_sstable_size: 100MiB
|
||||||
|
|
||||||
|
concurrent_compactors: 8
|
||||||
|
|
||||||
|
stream_entire_sstables: true
|
||||||
|
|
||||||
|
default_secondary_index: sai
|
||||||
|
default_secondary_index_enabled: true
|
||||||
|
|
||||||
|
storage_compatibility_mode: NONE
|
||||||
|
|
@ -31,6 +31,7 @@ import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.vdurmont.semver4j.Semver;
|
import com.vdurmont.semver4j.Semver;
|
||||||
|
import org.apache.cassandra.config.CassandraRelevantProperties;
|
||||||
import org.apache.cassandra.distributed.api.Feature;
|
import org.apache.cassandra.distributed.api.Feature;
|
||||||
import org.apache.cassandra.distributed.api.IInstanceConfig;
|
import org.apache.cassandra.distributed.api.IInstanceConfig;
|
||||||
import org.apache.cassandra.distributed.shared.NetworkTopology;
|
import org.apache.cassandra.distributed.shared.NetworkTopology;
|
||||||
|
|
@ -114,6 +115,44 @@ public class InstanceConfig implements IInstanceConfig
|
||||||
.set("counter_cache_size", "50MiB")
|
.set("counter_cache_size", "50MiB")
|
||||||
.set("key_cache_size", "50MiB")
|
.set("key_cache_size", "50MiB")
|
||||||
.set("commitlog_disk_access_mode", "legacy");
|
.set("commitlog_disk_access_mode", "legacy");
|
||||||
|
if (CassandraRelevantProperties.DTEST_JVM_DTESTS_USE_LATEST.getBoolean())
|
||||||
|
{
|
||||||
|
// TODO: make this load latest_diff.yaml or cassandra_latest.yaml
|
||||||
|
this.set("memtable", Map.of(
|
||||||
|
"configurations", Map.of(
|
||||||
|
"default", Map.of(
|
||||||
|
"class_name", "TrieMemtable"))))
|
||||||
|
.set("key_cache_size", "0MiB")
|
||||||
|
|
||||||
|
.set("memtable_allocation_type", "offheap_objects")
|
||||||
|
|
||||||
|
.set("commitlog_disk_access_mode", "auto")
|
||||||
|
|
||||||
|
.set("trickle_fsync", "true")
|
||||||
|
|
||||||
|
.set("sstable", Map.of(
|
||||||
|
"selected_format", "bti"))
|
||||||
|
|
||||||
|
.set("column_index_size", "4KiB")
|
||||||
|
|
||||||
|
.set("default_compaction", Map.of(
|
||||||
|
"class_name", "UnifiedCompactionStrategy",
|
||||||
|
"parameters", Map.of(
|
||||||
|
"scaling_parameters", "T4",
|
||||||
|
"max_sstables_to_compact", "64",
|
||||||
|
"target_sstable_size", "1GiB",
|
||||||
|
"sstable_growth","0.3333333333333333",
|
||||||
|
"min_sstable_size", "100MiB")))
|
||||||
|
|
||||||
|
.set("concurrent_compactors", "8")
|
||||||
|
|
||||||
|
.set("stream_entire_sstables", "true")
|
||||||
|
|
||||||
|
.set("default_secondary_index", "sai")
|
||||||
|
.set("default_secondary_index_enabled", "true")
|
||||||
|
|
||||||
|
.set("storage_compatibility_mode", "NONE");
|
||||||
|
}
|
||||||
this.featureFlags = EnumSet.noneOf(Feature.class);
|
this.featureFlags = EnumSet.noneOf(Feature.class);
|
||||||
this.jmxPort = jmx_port;
|
this.jmxPort = jmx_port;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,9 +44,11 @@ import org.junit.rules.ExpectedException;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import org.apache.cassandra.config.Config;
|
||||||
import org.apache.cassandra.distributed.Cluster;
|
import org.apache.cassandra.distributed.Cluster;
|
||||||
import org.apache.cassandra.distributed.api.ConsistencyLevel;
|
import org.apache.cassandra.distributed.api.ConsistencyLevel;
|
||||||
import org.apache.cassandra.distributed.api.ICluster;
|
import org.apache.cassandra.distributed.api.ICluster;
|
||||||
|
import org.apache.cassandra.distributed.api.IMessageFilters;
|
||||||
import org.apache.cassandra.distributed.shared.InstanceClassLoader;
|
import org.apache.cassandra.distributed.shared.InstanceClassLoader;
|
||||||
import org.apache.cassandra.exceptions.CasWriteTimeoutException;
|
import org.apache.cassandra.exceptions.CasWriteTimeoutException;
|
||||||
import org.apache.cassandra.exceptions.CasWriteUnknownResultException;
|
import org.apache.cassandra.exceptions.CasWriteUnknownResultException;
|
||||||
|
|
@ -55,8 +57,9 @@ import org.apache.cassandra.utils.FBUtilities;
|
||||||
import org.hamcrest.BaseMatcher;
|
import org.hamcrest.BaseMatcher;
|
||||||
import org.hamcrest.Description;
|
import org.hamcrest.Description;
|
||||||
|
|
||||||
|
import static org.apache.cassandra.distributed.shared.AssertUtils.assertRows;
|
||||||
|
import static org.apache.cassandra.distributed.shared.AssertUtils.row;
|
||||||
import static org.hamcrest.CoreMatchers.containsString;
|
import static org.hamcrest.CoreMatchers.containsString;
|
||||||
import static org.apache.cassandra.distributed.shared.AssertUtils.*;
|
|
||||||
|
|
||||||
// TODO: this test should be removed after running in-jvm dtests is set up via the shared API repository
|
// TODO: this test should be removed after running in-jvm dtests is set up via the shared API repository
|
||||||
public class CasWriteTest extends TestBaseImpl
|
public class CasWriteTest extends TestBaseImpl
|
||||||
|
|
@ -110,6 +113,7 @@ public class CasWriteTest extends TestBaseImpl
|
||||||
{
|
{
|
||||||
expectCasWriteTimeout();
|
expectCasWriteTimeout();
|
||||||
cluster.filters().verbs(Verb.PAXOS_PREPARE_REQ.id).from(1).to(2, 3).drop().on(); // drop the internode messages to acceptors
|
cluster.filters().verbs(Verb.PAXOS_PREPARE_REQ.id).from(1).to(2, 3).drop().on(); // drop the internode messages to acceptors
|
||||||
|
cluster.filters().verbs(Verb.PAXOS2_PREPARE_REQ.id).from(1).to(2, 3).drop().on(); // drop the internode messages to acceptors
|
||||||
cluster.coordinator(1).execute(mkUniqueCasInsertQuery(1), ConsistencyLevel.QUORUM);
|
cluster.coordinator(1).execute(mkUniqueCasInsertQuery(1), ConsistencyLevel.QUORUM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -118,6 +122,7 @@ public class CasWriteTest extends TestBaseImpl
|
||||||
{
|
{
|
||||||
expectCasWriteTimeout();
|
expectCasWriteTimeout();
|
||||||
cluster.filters().verbs(Verb.PAXOS_PREPARE_RSP.id).from(2, 3).to(1).drop().on(); // drop the internode messages to acceptors
|
cluster.filters().verbs(Verb.PAXOS_PREPARE_RSP.id).from(2, 3).to(1).drop().on(); // drop the internode messages to acceptors
|
||||||
|
cluster.filters().verbs(Verb.PAXOS2_PREPARE_RSP.id).from(2, 3).to(1).drop().on(); // drop the internode messages to acceptors
|
||||||
cluster.coordinator(1).execute(mkUniqueCasInsertQuery(1), ConsistencyLevel.QUORUM);
|
cluster.coordinator(1).execute(mkUniqueCasInsertQuery(1), ConsistencyLevel.QUORUM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -126,6 +131,7 @@ public class CasWriteTest extends TestBaseImpl
|
||||||
{
|
{
|
||||||
expectCasWriteTimeout();
|
expectCasWriteTimeout();
|
||||||
cluster.filters().verbs(Verb.PAXOS_PROPOSE_REQ.id).from(1).to(2, 3).drop().on();
|
cluster.filters().verbs(Verb.PAXOS_PROPOSE_REQ.id).from(1).to(2, 3).drop().on();
|
||||||
|
cluster.filters().verbs(Verb.PAXOS2_PROPOSE_REQ.id).from(1).to(2, 3).drop().on();
|
||||||
cluster.coordinator(1).execute(mkUniqueCasInsertQuery(1), ConsistencyLevel.QUORUM);
|
cluster.coordinator(1).execute(mkUniqueCasInsertQuery(1), ConsistencyLevel.QUORUM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -134,6 +140,7 @@ public class CasWriteTest extends TestBaseImpl
|
||||||
{
|
{
|
||||||
expectCasWriteTimeout();
|
expectCasWriteTimeout();
|
||||||
cluster.filters().verbs(Verb.PAXOS_PROPOSE_RSP.id).from(2, 3).to(1).drop().on();
|
cluster.filters().verbs(Verb.PAXOS_PROPOSE_RSP.id).from(2, 3).to(1).drop().on();
|
||||||
|
cluster.filters().verbs(Verb.PAXOS2_PROPOSE_RSP.id).from(2, 3).to(1).drop().on();
|
||||||
cluster.coordinator(1).execute(mkUniqueCasInsertQuery(1), ConsistencyLevel.QUORUM);
|
cluster.coordinator(1).execute(mkUniqueCasInsertQuery(1), ConsistencyLevel.QUORUM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -142,6 +149,7 @@ public class CasWriteTest extends TestBaseImpl
|
||||||
{
|
{
|
||||||
expectCasWriteTimeout();
|
expectCasWriteTimeout();
|
||||||
cluster.filters().verbs(Verb.PAXOS_COMMIT_REQ.id).from(1).to(2, 3).drop().on();
|
cluster.filters().verbs(Verb.PAXOS_COMMIT_REQ.id).from(1).to(2, 3).drop().on();
|
||||||
|
cluster.filters().verbs(Verb.PAXOS2_COMMIT_AND_PREPARE_REQ.id).from(1).to(2, 3).drop().on();
|
||||||
cluster.coordinator(1).execute(mkUniqueCasInsertQuery(1), ConsistencyLevel.QUORUM);
|
cluster.coordinator(1).execute(mkUniqueCasInsertQuery(1), ConsistencyLevel.QUORUM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -150,6 +158,7 @@ public class CasWriteTest extends TestBaseImpl
|
||||||
{
|
{
|
||||||
expectCasWriteTimeout();
|
expectCasWriteTimeout();
|
||||||
cluster.filters().verbs(Verb.PAXOS_COMMIT_RSP.id).from(2, 3).to(1).drop().on();
|
cluster.filters().verbs(Verb.PAXOS_COMMIT_RSP.id).from(2, 3).to(1).drop().on();
|
||||||
|
cluster.filters().verbs(Verb.PAXOS2_COMMIT_REMOTE_RSP.id).from(2, 3).to(1).drop().on();
|
||||||
cluster.coordinator(1).execute(mkUniqueCasInsertQuery(1), ConsistencyLevel.QUORUM);
|
cluster.coordinator(1).execute(mkUniqueCasInsertQuery(1), ConsistencyLevel.QUORUM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -164,6 +173,8 @@ public class CasWriteTest extends TestBaseImpl
|
||||||
c.filters().reset();
|
c.filters().reset();
|
||||||
c.filters().verbs(Verb.PAXOS_PREPARE_REQ.id).from(1).to(3).drop();
|
c.filters().verbs(Verb.PAXOS_PREPARE_REQ.id).from(1).to(3).drop();
|
||||||
c.filters().verbs(Verb.PAXOS_PROPOSE_REQ.id).from(1).to(2).drop();
|
c.filters().verbs(Verb.PAXOS_PROPOSE_REQ.id).from(1).to(2).drop();
|
||||||
|
c.filters().verbs(Verb.PAXOS2_PREPARE_REQ.id).from(1).to(3).drop();
|
||||||
|
c.filters().verbs(Verb.PAXOS2_PROPOSE_REQ.id).from(1).to(2).drop();
|
||||||
},
|
},
|
||||||
failure ->
|
failure ->
|
||||||
failure.get() != null &&
|
failure.get() != null &&
|
||||||
|
|
@ -253,18 +264,22 @@ public class CasWriteTest extends TestBaseImpl
|
||||||
cluster.filters().reset();
|
cluster.filters().reset();
|
||||||
int pk = pkGen.getAndIncrement();
|
int pk = pkGen.getAndIncrement();
|
||||||
CountDownLatch ready = new CountDownLatch(1);
|
CountDownLatch ready = new CountDownLatch(1);
|
||||||
cluster.filters().verbs(Verb.PAXOS_PROPOSE_REQ.id).from(1).to(2, 3).messagesMatching((from, to, msg) -> {
|
final IMessageFilters.Matcher matcher = (from, to, msg) -> {
|
||||||
if (to == 2)
|
if (to == 2)
|
||||||
{
|
{
|
||||||
// Inject a single CAS request in-between prepare and propose phases
|
// Inject a single CAS request in-between prepare and propose phases
|
||||||
cluster.coordinator(2).execute(mkCasInsertQuery((a) -> pk, 1, 2),
|
cluster.coordinator(2).execute(mkCasInsertQuery((a) -> pk, 1, 2),
|
||||||
ConsistencyLevel.QUORUM);
|
ConsistencyLevel.QUORUM);
|
||||||
ready.countDown();
|
ready.countDown();
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
Uninterruptibles.awaitUninterruptibly(ready);
|
Uninterruptibles.awaitUninterruptibly(ready);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}).drop();
|
};
|
||||||
|
cluster.filters().verbs(Verb.PAXOS_PROPOSE_REQ.id).from(1).to(2, 3).messagesMatching(matcher).drop();
|
||||||
|
cluster.filters().verbs(Verb.PAXOS2_PROPOSE_REQ.id).from(1).to(2, 3).messagesMatching(matcher).drop();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -272,13 +287,19 @@ public class CasWriteTest extends TestBaseImpl
|
||||||
}
|
}
|
||||||
catch (Throwable t)
|
catch (Throwable t)
|
||||||
{
|
{
|
||||||
Assert.assertEquals("Expecting cause to be CasWriteUnknownResultException",
|
final Class<?> exceptionClass = isPaxosVariant2() ? CasWriteTimeoutException.class : CasWriteUnknownResultException.class;
|
||||||
CasWriteUnknownResultException.class.getCanonicalName(), t.getClass().getCanonicalName());
|
Assert.assertEquals("Expecting cause to be " + exceptionClass.getSimpleName(),
|
||||||
|
exceptionClass.getCanonicalName(), t.getClass().getCanonicalName());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Assert.fail("Expecting test to throw a CasWriteUnknownResultException");
|
Assert.fail("Expecting test to throw a CasWriteUnknownResultException");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean isPaxosVariant2()
|
||||||
|
{
|
||||||
|
return Config.PaxosVariant.v2.name().equals(cluster.coordinator(1).instance().config().getString("paxos_variant"));
|
||||||
|
}
|
||||||
|
|
||||||
// every invokation returns a query with an unique pk
|
// every invokation returns a query with an unique pk
|
||||||
private String mkUniqueCasInsertQuery(int v)
|
private String mkUniqueCasInsertQuery(int v)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -19,12 +19,14 @@
|
||||||
package org.apache.cassandra.distributed.test;
|
package org.apache.cassandra.distributed.test;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import org.apache.cassandra.Util;
|
||||||
import org.apache.cassandra.db.ColumnFamilyStore;
|
import org.apache.cassandra.db.ColumnFamilyStore;
|
||||||
import org.apache.cassandra.db.Keyspace;
|
import org.apache.cassandra.db.Keyspace;
|
||||||
import org.apache.cassandra.dht.Bounds;
|
import org.apache.cassandra.dht.Bounds;
|
||||||
|
|
@ -65,11 +67,14 @@ public class PreviewRepairSnapshotTest extends TestBaseImpl
|
||||||
.with(NETWORK)).start()))
|
.with(NETWORK)).start()))
|
||||||
{
|
{
|
||||||
Set<Integer> tokensToMismatch = Sets.newHashSet(1, 50, 99);
|
Set<Integer> tokensToMismatch = Sets.newHashSet(1, 50, 99);
|
||||||
cluster.schemaChange(withKeyspace("create table %s.tbl (id int primary key) with compaction = {'class' : 'SizeTieredCompactionStrategy', 'enabled':false }"));
|
cluster.schemaChange(withKeyspace("create table %s.tbl (id blob primary key) with compaction = {'class' : 'SizeTieredCompactionStrategy', 'enabled':false }"));
|
||||||
// 1 token per sstable;
|
// 1 token per sstable;
|
||||||
for (int i = 0; i < 100; i++)
|
for (int i = 0; i < 100; i++)
|
||||||
{
|
{
|
||||||
cluster.coordinator(1).execute(withKeyspace("insert into %s.tbl (id) values (?)"), ConsistencyLevel.ALL, i);
|
// BigFormat severely overestimates the number of partitions per range when the sstable size is small.
|
||||||
|
// Do multiple writes per sstable, with the same token, to compensate.
|
||||||
|
for (int j = 0; j < 10; ++j)
|
||||||
|
cluster.coordinator(1).execute(withKeyspace("insert into %s.tbl (id) values (?)"), ConsistencyLevel.ALL, matchingHashBlob(i, j));
|
||||||
cluster.stream().forEach(instance -> instance.flush(KEYSPACE));
|
cluster.stream().forEach(instance -> instance.flush(KEYSPACE));
|
||||||
}
|
}
|
||||||
cluster.stream().forEach(instance -> instance.flush(KEYSPACE));
|
cluster.stream().forEach(instance -> instance.flush(KEYSPACE));
|
||||||
|
|
@ -85,9 +90,10 @@ public class PreviewRepairSnapshotTest extends TestBaseImpl
|
||||||
Set<Token> mismatchingTokens = new HashSet<>();
|
Set<Token> mismatchingTokens = new HashSet<>();
|
||||||
for (Integer token : tokensToMismatch)
|
for (Integer token : tokensToMismatch)
|
||||||
{
|
{
|
||||||
cluster.get(2).executeInternal(withKeyspace("insert into %s.tbl (id) values (?)"), token);
|
final ByteBuffer b = matchingHashBlob(token, 0);
|
||||||
|
cluster.get(2).executeInternal(withKeyspace("insert into %s.tbl (id) values (?)"), b);
|
||||||
cluster.get(2).flush(KEYSPACE);
|
cluster.get(2).flush(KEYSPACE);
|
||||||
Object[][] res = cluster.get(2).executeInternal(withKeyspace("select token(id) from %s.tbl where id = ?"), token);
|
Object[][] res = cluster.get(2).executeInternal(withKeyspace("select token(id) from %s.tbl where id = ?"), b);
|
||||||
mismatchingTokens.add(new Murmur3Partitioner.LongToken((long) res[0][0]));
|
mismatchingTokens.add(new Murmur3Partitioner.LongToken((long) res[0][0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -105,6 +111,13 @@ public class PreviewRepairSnapshotTest extends TestBaseImpl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ByteBuffer matchingHashBlob(int hashAffectingComponent, int hashUnaffectingComponent)
|
||||||
|
{
|
||||||
|
// Generate blobs with mathing hash for the same i, but different for the different j
|
||||||
|
ByteBuffer base = ByteBuffer.wrap(Integer.toHexString(hashAffectingComponent).getBytes());
|
||||||
|
return Util.generateMurmurCollision(base, Integer.toHexString(hashUnaffectingComponent).getBytes());
|
||||||
|
}
|
||||||
|
|
||||||
private IIsolatedExecutor.SerializableRunnable checkSnapshot(Set<Token> mismatchingTokens, int expectedSnapshotSize)
|
private IIsolatedExecutor.SerializableRunnable checkSnapshot(Set<Token> mismatchingTokens, int expectedSnapshotSize)
|
||||||
{
|
{
|
||||||
return () -> {
|
return () -> {
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ package org.apache.cassandra.distributed.test;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.junit.Assume;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.apache.cassandra.db.ColumnFamilyStore;
|
import org.apache.cassandra.db.ColumnFamilyStore;
|
||||||
|
|
@ -43,6 +44,8 @@ public class SecondaryIndexCompactionTest extends TestBaseImpl
|
||||||
{
|
{
|
||||||
try (Cluster cluster = init(Cluster.build(1).start()))
|
try (Cluster cluster = init(Cluster.build(1).start()))
|
||||||
{
|
{
|
||||||
|
Assume.assumeFalse("Test only valid for legacy index",
|
||||||
|
"sai".equals(cluster.get(1).config().getString("default_secondary_index")));
|
||||||
cluster.schemaChange(withKeyspace("create table %s.tbl (id int, ck int, something int, else int, primary key (id, ck));"));
|
cluster.schemaChange(withKeyspace("create table %s.tbl (id int, ck int, something int, else int, primary key (id, ck));"));
|
||||||
cluster.schemaChange(withKeyspace("create index tbl_idx on %s.tbl (ck)"));
|
cluster.schemaChange(withKeyspace("create index tbl_idx on %s.tbl (ck)"));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ public class SecondaryIndexTest extends TestBaseImpl
|
||||||
cluster.forEach(i -> i.flush(KEYSPACE));
|
cluster.forEach(i -> i.flush(KEYSPACE));
|
||||||
|
|
||||||
Pattern indexScanningPattern =
|
Pattern indexScanningPattern =
|
||||||
Pattern.compile(String.format("Index mean cardinalities are v_index_%d:[0-9]+. Scanning with v_index_%d.", seq.get(), seq.get()));
|
Pattern.compile(String.format("Index mean cardinalities are v_index_%d:[-0-9]+. Scanning with v_index_%d.", seq.get(), seq.get()));
|
||||||
|
|
||||||
for (int i = 0 ; i < 33; ++i)
|
for (int i = 0 ; i < 33; ++i)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -60,8 +60,8 @@ public class UpgradeSSTablesTest extends TestBaseImpl
|
||||||
cluster.get(1).acceptsOnInstance((String ks) -> {
|
cluster.get(1).acceptsOnInstance((String ks) -> {
|
||||||
ColumnFamilyStore cfs = Keyspace.open(ks).getColumnFamilyStore("tbl");
|
ColumnFamilyStore cfs = Keyspace.open(ks).getColumnFamilyStore("tbl");
|
||||||
cfs.disableAutoCompaction();
|
cfs.disableAutoCompaction();
|
||||||
CompactionManager.instance.setMaximumCompactorThreads(1);
|
|
||||||
CompactionManager.instance.setCoreCompactorThreads(1);
|
CompactionManager.instance.setCoreCompactorThreads(1);
|
||||||
|
CompactionManager.instance.setMaximumCompactorThreads(1);
|
||||||
}).accept(KEYSPACE);
|
}).accept(KEYSPACE);
|
||||||
|
|
||||||
String blob = "blob";
|
String blob = "blob";
|
||||||
|
|
@ -104,8 +104,8 @@ public class UpgradeSSTablesTest extends TestBaseImpl
|
||||||
cluster.get(1).acceptsOnInstance((String ks) -> {
|
cluster.get(1).acceptsOnInstance((String ks) -> {
|
||||||
ColumnFamilyStore cfs = Keyspace.open(ks).getColumnFamilyStore("tbl");
|
ColumnFamilyStore cfs = Keyspace.open(ks).getColumnFamilyStore("tbl");
|
||||||
cfs.disableAutoCompaction();
|
cfs.disableAutoCompaction();
|
||||||
CompactionManager.instance.setMaximumCompactorThreads(1);
|
|
||||||
CompactionManager.instance.setCoreCompactorThreads(1);
|
CompactionManager.instance.setCoreCompactorThreads(1);
|
||||||
|
CompactionManager.instance.setMaximumCompactorThreads(1);
|
||||||
}).accept(KEYSPACE);
|
}).accept(KEYSPACE);
|
||||||
|
|
||||||
String blob = "blob";
|
String blob = "blob";
|
||||||
|
|
@ -198,8 +198,8 @@ public class UpgradeSSTablesTest extends TestBaseImpl
|
||||||
cluster.get(1).acceptsOnInstance((String ks) -> {
|
cluster.get(1).acceptsOnInstance((String ks) -> {
|
||||||
ColumnFamilyStore cfs = Keyspace.open(ks).getColumnFamilyStore("tbl");
|
ColumnFamilyStore cfs = Keyspace.open(ks).getColumnFamilyStore("tbl");
|
||||||
cfs.disableAutoCompaction();
|
cfs.disableAutoCompaction();
|
||||||
CompactionManager.instance.setMaximumCompactorThreads(1);
|
|
||||||
CompactionManager.instance.setCoreCompactorThreads(1);
|
CompactionManager.instance.setCoreCompactorThreads(1);
|
||||||
|
CompactionManager.instance.setMaximumCompactorThreads(1);
|
||||||
}).accept(KEYSPACE);
|
}).accept(KEYSPACE);
|
||||||
|
|
||||||
String blob = "blob";
|
String blob = "blob";
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ public class ConcurrencyFactorTest extends TestBaseImpl
|
||||||
|
|
||||||
// Token-restricted range query not using SAI so should use initial concurrency estimation
|
// Token-restricted range query not using SAI so should use initial concurrency estimation
|
||||||
query = String.format("SELECT * FROM %s.%s WHERE token(pk) > 0", KEYSPACE, SAI_TABLE);
|
query = String.format("SELECT * FROM %s.%s WHERE token(pk) > 0", KEYSPACE, SAI_TABLE);
|
||||||
runAndValidate("Submitting range requests on 2 ranges with a concurrency of 2 (230.4 rows per range expected)", query);
|
runAndValidate("Submitting range requests on 2 ranges with a concurrency of 2.*", query);
|
||||||
|
|
||||||
// Token-restricted range query with SAI so should bypass initial concurrency estimation
|
// Token-restricted range query with SAI so should bypass initial concurrency estimation
|
||||||
query = String.format("SELECT * FROM %s.%s WHERE token(pk) > 0 AND gdp > ?", KEYSPACE, SAI_TABLE);
|
query = String.format("SELECT * FROM %s.%s WHERE token(pk) > 0 AND gdp > ?", KEYSPACE, SAI_TABLE);
|
||||||
|
|
@ -124,7 +124,7 @@ public class ConcurrencyFactorTest extends TestBaseImpl
|
||||||
|
|
||||||
await().atMost(5, TimeUnit.SECONDS).until(() -> {
|
await().atMost(5, TimeUnit.SECONDS).until(() -> {
|
||||||
List<TracingUtil.TraceEntry> traceEntries = TracingUtil.getTrace(cluster, sessionId, ConsistencyLevel.ONE);
|
List<TracingUtil.TraceEntry> traceEntries = TracingUtil.getTrace(cluster, sessionId, ConsistencyLevel.ONE);
|
||||||
return traceEntries.stream().anyMatch(entry -> entry.activity.equals(trace));
|
return traceEntries.stream().anyMatch(entry -> entry.activity.matches(trace));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,7 @@ import com.google.common.base.Preconditions;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.common.collect.Iterators;
|
import com.google.common.collect.Iterators;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.junit.Assume;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|
@ -110,6 +111,7 @@ import org.apache.cassandra.dht.Token;
|
||||||
import org.apache.cassandra.gms.ApplicationState;
|
import org.apache.cassandra.gms.ApplicationState;
|
||||||
import org.apache.cassandra.gms.Gossiper;
|
import org.apache.cassandra.gms.Gossiper;
|
||||||
import org.apache.cassandra.gms.VersionedValue;
|
import org.apache.cassandra.gms.VersionedValue;
|
||||||
|
import org.apache.cassandra.index.internal.CassandraIndex;
|
||||||
import org.apache.cassandra.io.sstable.Descriptor;
|
import org.apache.cassandra.io.sstable.Descriptor;
|
||||||
import org.apache.cassandra.io.sstable.SSTableId;
|
import org.apache.cassandra.io.sstable.SSTableId;
|
||||||
import org.apache.cassandra.io.sstable.SSTableLoader;
|
import org.apache.cassandra.io.sstable.SSTableLoader;
|
||||||
|
|
@ -659,6 +661,12 @@ public class Util
|
||||||
return new PartitionerSwitcher(p);
|
return new PartitionerSwitcher(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void assumeLegacySecondaryIndex()
|
||||||
|
{
|
||||||
|
Assume.assumeTrue("Test only valid for legacy secondary index",
|
||||||
|
DatabaseDescriptor.getDefaultSecondaryIndex().equals(CassandraIndex.NAME));
|
||||||
|
}
|
||||||
|
|
||||||
public static class PartitionerSwitcher implements AutoCloseable
|
public static class PartitionerSwitcher implements AutoCloseable
|
||||||
{
|
{
|
||||||
final IPartitioner oldP;
|
final IPartitioner oldP;
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,8 @@ public class ParseAndConvertUnitsTest
|
||||||
assertNull(config.file_cache_size);
|
assertNull(config.file_cache_size);
|
||||||
assertNull(config.index_summary_capacity);
|
assertNull(config.index_summary_capacity);
|
||||||
assertEquals(new DataStorageSpec.LongMebibytesBound(1), config.prepared_statements_cache_size);
|
assertEquals(new DataStorageSpec.LongMebibytesBound(1), config.prepared_statements_cache_size);
|
||||||
assertNull(config.key_cache_size);
|
if (config.key_cache_size != null) // null in default test config, 0 in latest test config (CASSANDRA-18753)
|
||||||
|
assertEquals(new DataStorageSpec.IntMebibytesBound(0), config.key_cache_size);
|
||||||
assertEquals(new DataStorageSpec.LongMebibytesBound(16), config.row_cache_size);
|
assertEquals(new DataStorageSpec.LongMebibytesBound(16), config.row_cache_size);
|
||||||
assertNull(config.native_transport_max_request_data_in_flight);
|
assertNull(config.native_transport_max_request_data_in_flight);
|
||||||
assertNull(config.native_transport_max_request_data_in_flight_per_ip);
|
assertNull(config.native_transport_max_request_data_in_flight_per_ip);
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ import org.apache.cassandra.config.DatabaseDescriptor;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
import org.apache.cassandra.cql3.CqlBuilder;
|
import org.apache.cassandra.cql3.CqlBuilder;
|
||||||
import org.apache.cassandra.dht.Token;
|
import org.apache.cassandra.dht.Token;
|
||||||
|
import org.apache.cassandra.index.internal.CassandraIndex;
|
||||||
import org.apache.cassandra.locator.InetAddressAndPort;
|
import org.apache.cassandra.locator.InetAddressAndPort;
|
||||||
import org.apache.cassandra.locator.TokenMetadata;
|
import org.apache.cassandra.locator.TokenMetadata;
|
||||||
import org.apache.cassandra.schema.CompactionParams;
|
import org.apache.cassandra.schema.CompactionParams;
|
||||||
|
|
@ -447,12 +448,12 @@ public class DescribeStatementTest extends CQLTester
|
||||||
{
|
{
|
||||||
assertRowsNet(executeDescribeNet(describeKeyword + " CLUSTER"),
|
assertRowsNet(executeDescribeNet(describeKeyword + " CLUSTER"),
|
||||||
row("Test Cluster",
|
row("Test Cluster",
|
||||||
"ByteOrderedPartitioner",
|
trimIfPresent(DatabaseDescriptor.getPartitionerName(), "org.apache.cassandra.dht."),
|
||||||
DatabaseDescriptor.getEndpointSnitch().getClass().getName()));
|
DatabaseDescriptor.getEndpointSnitch().getClass().getName()));
|
||||||
|
|
||||||
assertRowsNet(executeDescribeNet("system_virtual_schema", describeKeyword + " CLUSTER"),
|
assertRowsNet(executeDescribeNet("system_virtual_schema", describeKeyword + " CLUSTER"),
|
||||||
row("Test Cluster",
|
row("Test Cluster",
|
||||||
"ByteOrderedPartitioner",
|
trimIfPresent(DatabaseDescriptor.getPartitionerName(), "org.apache.cassandra.dht."),
|
||||||
DatabaseDescriptor.getEndpointSnitch().getClass().getName()));
|
DatabaseDescriptor.getEndpointSnitch().getClass().getName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -462,11 +463,18 @@ public class DescribeStatementTest extends CQLTester
|
||||||
|
|
||||||
assertRowsNet(executeDescribeNet(KEYSPACE_PER_TEST, "DESCRIBE CLUSTER"),
|
assertRowsNet(executeDescribeNet(KEYSPACE_PER_TEST, "DESCRIBE CLUSTER"),
|
||||||
row("Test Cluster",
|
row("Test Cluster",
|
||||||
"ByteOrderedPartitioner",
|
trimIfPresent(DatabaseDescriptor.getPartitionerName(), "org.apache.cassandra.dht."),
|
||||||
DatabaseDescriptor.getEndpointSnitch().getClass().getName(),
|
DatabaseDescriptor.getEndpointSnitch().getClass().getName(),
|
||||||
ImmutableMap.of(token.toString(), ImmutableList.of(addressAndPort.toString()))));
|
ImmutableMap.of(token.toString(), ImmutableList.of(addressAndPort.toString()))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String trimIfPresent(String src, String begin)
|
||||||
|
{
|
||||||
|
if (src.startsWith(begin))
|
||||||
|
return src.substring(begin.length());
|
||||||
|
return src;
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDescribeTableWithInternals() throws Throwable
|
public void testDescribeTableWithInternals() throws Throwable
|
||||||
{
|
{
|
||||||
|
|
@ -1005,7 +1013,11 @@ public class DescribeStatementTest extends CQLTester
|
||||||
|
|
||||||
private static String indexOutput(String index, String table, String col)
|
private static String indexOutput(String index, String table, String col)
|
||||||
{
|
{
|
||||||
return format("CREATE INDEX %s ON %s.%s (%s);", index, "test", table, col);
|
if (DatabaseDescriptor.getDefaultSecondaryIndex() == CassandraIndex.NAME)
|
||||||
|
return format("CREATE INDEX %s ON %s.%s (%s);", index, "test", table, col);
|
||||||
|
else
|
||||||
|
return format("CREATE CUSTOM INDEX %s ON %s.%s (%s) USING '%s';",
|
||||||
|
index, "test", table, col, DatabaseDescriptor.getDefaultSecondaryIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String usersMvTableOutput()
|
private static String usersMvTableOutput()
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ import org.junit.BeforeClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.apache.cassandra.ServerTestUtils;
|
import org.apache.cassandra.ServerTestUtils;
|
||||||
|
import org.apache.cassandra.Util;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
||||||
import org.apache.cassandra.db.marshal.*;
|
import org.apache.cassandra.db.marshal.*;
|
||||||
|
|
@ -831,6 +832,7 @@ public class FrozenCollectionsTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testSecondaryIndex() throws Throwable
|
public void testSecondaryIndex() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (a frozen<map<int, text>> PRIMARY KEY, b frozen<map<int, text>>)");
|
createTable("CREATE TABLE %s (a frozen<map<int, text>> PRIMARY KEY, b frozen<map<int, text>>)");
|
||||||
|
|
||||||
// for now, we don't support indexing values or keys of collections in the primary key
|
// for now, we don't support indexing values or keys of collections in the primary key
|
||||||
|
|
@ -996,6 +998,7 @@ public class FrozenCollectionsTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testClusteringColumnFiltering() throws Throwable
|
public void testClusteringColumnFiltering() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (a int, b frozen<map<int, int>>, c int, d int, PRIMARY KEY (a, b, c))");
|
createTable("CREATE TABLE %s (a int, b frozen<map<int, int>>, c int, d int, PRIMARY KEY (a, b, c))");
|
||||||
createIndex("CREATE INDEX c_index ON %s (c)");
|
createIndex("CREATE INDEX c_index ON %s (c)");
|
||||||
createIndex("CREATE INDEX d_index ON %s (d)");
|
createIndex("CREATE INDEX d_index ON %s (d)");
|
||||||
|
|
|
||||||
|
|
@ -17,18 +17,20 @@
|
||||||
*/
|
*/
|
||||||
package org.apache.cassandra.cql3.validation.entities;
|
package org.apache.cassandra.cql3.validation.entities;
|
||||||
|
|
||||||
import org.apache.cassandra.config.DatabaseDescriptor;
|
import java.util.ArrayList;
|
||||||
import org.apache.cassandra.cql3.UntypedResultSet;
|
import java.util.List;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import java.util.Map;
|
||||||
import org.apache.cassandra.dht.ByteOrderedPartitioner;
|
|
||||||
import org.apache.cassandra.exceptions.InvalidRequestException;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import org.apache.cassandra.Util;
|
||||||
import java.util.List;
|
import org.apache.cassandra.config.DatabaseDescriptor;
|
||||||
import java.util.Map;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
|
import org.apache.cassandra.cql3.UntypedResultSet;
|
||||||
|
import org.apache.cassandra.dht.ByteOrderedPartitioner;
|
||||||
|
import org.apache.cassandra.exceptions.InvalidRequestException;
|
||||||
|
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
|
|
@ -39,6 +41,7 @@ public class SecondaryIndexOnMapEntriesTest extends CQLTester
|
||||||
public static void setUp()
|
public static void setUp()
|
||||||
{
|
{
|
||||||
DatabaseDescriptor.setPartitionerUnsafe(ByteOrderedPartitioner.instance);
|
DatabaseDescriptor.setPartitionerUnsafe(ByteOrderedPartitioner.instance);
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ import java.util.List;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
|
|
||||||
|
import com.google.common.collect.Iterables;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
@ -50,14 +51,17 @@ public class CrcCheckChanceTest extends CQLTester
|
||||||
execute("INSERT INTO %s(p, s) values (?, ?)", "p2", "sv2");
|
execute("INSERT INTO %s(p, s) values (?, ?)", "p2", "sv2");
|
||||||
|
|
||||||
ColumnFamilyStore cfs = Keyspace.open(CQLTester.KEYSPACE).getColumnFamilyStore(currentTable());
|
ColumnFamilyStore cfs = Keyspace.open(CQLTester.KEYSPACE).getColumnFamilyStore(currentTable());
|
||||||
ColumnFamilyStore indexCfs = cfs.indexManager.getAllIndexColumnFamilyStores().iterator().next();
|
ColumnFamilyStore indexCfs = Iterables.getFirst(cfs.indexManager.getAllIndexColumnFamilyStores(), null);
|
||||||
Util.flush(cfs);
|
Util.flush(cfs);
|
||||||
|
|
||||||
Assert.assertEquals(0.99, cfs.getCrcCheckChance(), 0.0);
|
Assert.assertEquals(0.99, cfs.getCrcCheckChance(), 0.0);
|
||||||
Assert.assertEquals(0.99, cfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
Assert.assertEquals(0.99, cfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
||||||
|
|
||||||
Assert.assertEquals(0.99, indexCfs.getCrcCheckChance(), 0.0);
|
if (indexCfs != null)
|
||||||
Assert.assertEquals(0.99, indexCfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
{
|
||||||
|
Assert.assertEquals(0.99, indexCfs.getCrcCheckChance(), 0.0);
|
||||||
|
Assert.assertEquals(0.99, indexCfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
//Test for stack overflow
|
//Test for stack overflow
|
||||||
alterTable("ALTER TABLE %s WITH crc_check_chance = 0.99");
|
alterTable("ALTER TABLE %s WITH crc_check_chance = 0.99");
|
||||||
|
|
@ -96,8 +100,11 @@ public class CrcCheckChanceTest extends CQLTester
|
||||||
|
|
||||||
Assert.assertEquals(0.01, cfs.getCrcCheckChance(), 0.0);
|
Assert.assertEquals(0.01, cfs.getCrcCheckChance(), 0.0);
|
||||||
Assert.assertEquals(0.01, cfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
Assert.assertEquals(0.01, cfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
||||||
Assert.assertEquals(0.01, indexCfs.getCrcCheckChance(), 0.0);
|
if (indexCfs != null)
|
||||||
Assert.assertEquals(0.01, indexCfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
{
|
||||||
|
Assert.assertEquals(0.01, indexCfs.getCrcCheckChance(), 0.0);
|
||||||
|
Assert.assertEquals(0.01, indexCfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
assertRows(execute("SELECT * FROM %s WHERE p=?", "p1"),
|
assertRows(execute("SELECT * FROM %s WHERE p=?", "p1"),
|
||||||
row("p1", "k1", "sv1", "v1"),
|
row("p1", "k1", "sv1", "v1"),
|
||||||
|
|
@ -116,29 +123,47 @@ public class CrcCheckChanceTest extends CQLTester
|
||||||
|
|
||||||
//but previous JMX-set value will persist until next restart
|
//but previous JMX-set value will persist until next restart
|
||||||
Assert.assertEquals(0.01, cfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
Assert.assertEquals(0.01, cfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
||||||
Assert.assertEquals(0.01, indexCfs.getCrcCheckChance(), 0.0);
|
if (indexCfs != null)
|
||||||
Assert.assertEquals(0.01, indexCfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
{
|
||||||
|
Assert.assertEquals(0.01, indexCfs.getCrcCheckChance(), 0.0);
|
||||||
|
Assert.assertEquals(0.01, indexCfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
//Verify the call used by JMX still works
|
//Verify the call used by JMX still works
|
||||||
cfs.setCrcCheckChance(0.03);
|
cfs.setCrcCheckChance(0.03);
|
||||||
Assert.assertEquals(0.03, cfs.getCrcCheckChance(), 0.0);
|
Assert.assertEquals(0.03, cfs.getCrcCheckChance(), 0.0);
|
||||||
Assert.assertEquals(0.03, cfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
Assert.assertEquals(0.03, cfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
||||||
Assert.assertEquals(0.03, indexCfs.getCrcCheckChance(), 0.0);
|
if (indexCfs != null)
|
||||||
Assert.assertEquals(0.03, indexCfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
{
|
||||||
|
Assert.assertEquals(0.03, indexCfs.getCrcCheckChance(), 0.0);
|
||||||
|
Assert.assertEquals(0.03, indexCfs.getLiveSSTables().iterator().next().getCrcCheckChance(), 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
// Also check that any open readers also use the updated value
|
// Also check that any open readers also use the updated value
|
||||||
// note: only compressed files currently perform crc checks, so only the dfile reader is relevant here
|
// note: only compressed files currently perform crc checks, so only the dfile reader is relevant here
|
||||||
SSTableReader baseSSTable = cfs.getLiveSSTables().iterator().next();
|
SSTableReader baseSSTable = cfs.getLiveSSTables().iterator().next();
|
||||||
SSTableReader idxSSTable = indexCfs.getLiveSSTables().iterator().next();
|
if (indexCfs != null)
|
||||||
try (RandomAccessReader baseDataReader = baseSSTable.openDataReader();
|
|
||||||
RandomAccessReader idxDataReader = idxSSTable.openDataReader())
|
|
||||||
{
|
{
|
||||||
Assert.assertEquals(0.03, baseDataReader.getCrcCheckChance(), 0.0);
|
SSTableReader idxSSTable = indexCfs.getLiveSSTables().iterator().next();
|
||||||
Assert.assertEquals(0.03, idxDataReader.getCrcCheckChance(), 0.0);
|
try (RandomAccessReader baseDataReader = baseSSTable.openDataReader();
|
||||||
|
RandomAccessReader idxDataReader = idxSSTable.openDataReader())
|
||||||
|
{
|
||||||
|
Assert.assertEquals(0.03, baseDataReader.getCrcCheckChance(), 0.0);
|
||||||
|
Assert.assertEquals(0.03, idxDataReader.getCrcCheckChance(), 0.0);
|
||||||
|
|
||||||
cfs.setCrcCheckChance(0.31);
|
cfs.setCrcCheckChance(0.31);
|
||||||
Assert.assertEquals(0.31, baseDataReader.getCrcCheckChance(), 0.0);
|
Assert.assertEquals(0.31, baseDataReader.getCrcCheckChance(), 0.0);
|
||||||
Assert.assertEquals(0.31, idxDataReader.getCrcCheckChance(), 0.0);
|
Assert.assertEquals(0.31, idxDataReader.getCrcCheckChance(), 0.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
try (RandomAccessReader baseDataReader = baseSSTable.openDataReader())
|
||||||
|
{
|
||||||
|
Assert.assertEquals(0.03, baseDataReader.getCrcCheckChance(), 0.0);
|
||||||
|
cfs.setCrcCheckChance(0.31);
|
||||||
|
Assert.assertEquals(0.31, baseDataReader.getCrcCheckChance(), 0.0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ import java.util.UUID;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import org.apache.cassandra.Util;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
import org.apache.cassandra.cql3.validation.entities.SecondaryIndexTest;
|
import org.apache.cassandra.cql3.validation.entities.SecondaryIndexTest;
|
||||||
|
|
||||||
|
|
@ -722,6 +723,7 @@ public class CompactStorageSplit1Test extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testCompactTableWithValueOver64k() throws Throwable
|
public void testCompactTableWithValueOver64k() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s(a int, b blob, PRIMARY KEY (a)) WITH COMPACT STORAGE");
|
createTable("CREATE TABLE %s(a int, b blob, PRIMARY KEY (a)) WITH COMPACT STORAGE");
|
||||||
createIndex("CREATE INDEX ON %s(b)");
|
createIndex("CREATE INDEX ON %s(b)");
|
||||||
failInsert("INSERT INTO %s (a, b) VALUES (0, ?)", ByteBuffer.allocate(SecondaryIndexTest.TOO_BIG));
|
failInsert("INSERT INTO %s (a, b) VALUES (0, ?)", ByteBuffer.allocate(SecondaryIndexTest.TOO_BIG));
|
||||||
|
|
@ -768,6 +770,7 @@ public class CompactStorageSplit1Test extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testEmptyRestrictionValueWithSecondaryIndexAndCompactTables() throws Throwable
|
public void testEmptyRestrictionValueWithSecondaryIndexAndCompactTables() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (pk blob, c blob, v blob, PRIMARY KEY ((pk), c)) WITH COMPACT STORAGE");
|
createTable("CREATE TABLE %s (pk blob, c blob, v blob, PRIMARY KEY ((pk), c)) WITH COMPACT STORAGE");
|
||||||
assertInvalidMessage("Secondary indexes are not supported on PRIMARY KEY columns in COMPACT STORAGE tables",
|
assertInvalidMessage("Secondary indexes are not supported on PRIMARY KEY columns in COMPACT STORAGE tables",
|
||||||
"CREATE INDEX on %s(c)");
|
"CREATE INDEX on %s(c)");
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ import com.google.common.base.StandardSystemProperty;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import com.datastax.driver.core.exceptions.InvalidQueryException;
|
import com.datastax.driver.core.exceptions.InvalidQueryException;
|
||||||
|
import org.apache.cassandra.Util;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
import org.apache.cassandra.io.util.File;
|
import org.apache.cassandra.io.util.File;
|
||||||
import org.apache.cassandra.tools.ToolRunner;
|
import org.apache.cassandra.tools.ToolRunner;
|
||||||
|
|
@ -145,6 +146,7 @@ public class InsertInvalidateSizedRecordsTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void singleValueIndex()
|
public void singleValueIndex()
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable(KEYSPACE, "CREATE TABLE %s (a blob, b blob, PRIMARY KEY (a))");
|
createTable(KEYSPACE, "CREATE TABLE %s (a blob, b blob, PRIMARY KEY (a))");
|
||||||
String table = KEYSPACE + "." + currentTable();
|
String table = KEYSPACE + "." + currentTable();
|
||||||
execute("CREATE INDEX single_value_index ON %s (b)");
|
execute("CREATE INDEX single_value_index ON %s (b)");
|
||||||
|
|
|
||||||
|
|
@ -459,7 +459,7 @@ public class InsertUpdateIfConditionTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testDropCreateIndexIfNotExists()
|
public void testDropCreateIndexIfNotExists()
|
||||||
{
|
{
|
||||||
String tableName = createTable("CREATE TABLE %s (id text PRIMARY KEY, value1 blob, value2 blob)with comment = 'foo'");
|
String tableName = createTable("CREATE TABLE %s (id text PRIMARY KEY, value1 text, value2 blob)with comment = 'foo'");
|
||||||
|
|
||||||
// try dropping when doesn't exist
|
// try dropping when doesn't exist
|
||||||
schemaChange(format("DROP INDEX IF EXISTS %s.myindex", KEYSPACE));
|
schemaChange(format("DROP INDEX IF EXISTS %s.myindex", KEYSPACE));
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ import org.junit.BeforeClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.apache.cassandra.ServerTestUtils;
|
import org.apache.cassandra.ServerTestUtils;
|
||||||
|
import org.apache.cassandra.Util;
|
||||||
import org.apache.cassandra.config.DatabaseDescriptor;
|
import org.apache.cassandra.config.DatabaseDescriptor;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
import org.apache.cassandra.dht.ByteOrderedPartitioner;
|
import org.apache.cassandra.dht.ByteOrderedPartitioner;
|
||||||
|
|
@ -542,8 +543,9 @@ public class SelectLimitTest extends CQLTester
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIndexOnRegularColumnWithPartitionWithoutRows() throws Throwable
|
public void testIndexOnRegularColumnWithPartitionWithoutRows()
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (pk int, c int, s int static, v int, PRIMARY KEY(pk, c))");
|
createTable("CREATE TABLE %s (pk int, c int, s int static, v int, PRIMARY KEY(pk, c))");
|
||||||
createIndex("CREATE INDEX ON %s (v)");
|
createIndex("CREATE INDEX ON %s (v)");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ import org.junit.Test;
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
|
import org.apache.cassandra.Util;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
||||||
import org.apache.cassandra.utils.ByteBufferUtil;
|
import org.apache.cassandra.utils.ByteBufferUtil;
|
||||||
|
|
@ -785,6 +786,7 @@ public class SelectMultiColumnRelationTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testMultipleClusteringWithIndex() throws Throwable
|
public void testMultipleClusteringWithIndex() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (a int, b int, c int, d int, e int, PRIMARY KEY (a, b, c, d))");
|
createTable("CREATE TABLE %s (a int, b int, c int, d int, e int, PRIMARY KEY (a, b, c, d))");
|
||||||
createIndex("CREATE INDEX ON %s (b)");
|
createIndex("CREATE INDEX ON %s (b)");
|
||||||
createIndex("CREATE INDEX ON %s (e)");
|
createIndex("CREATE INDEX ON %s (e)");
|
||||||
|
|
@ -864,6 +866,7 @@ public class SelectMultiColumnRelationTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testMultipleClusteringWithIndexAndValueOver64K() throws Throwable
|
public void testMultipleClusteringWithIndexAndValueOver64K() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (a int, b blob, c int, d int, PRIMARY KEY (a, b, c))");
|
createTable("CREATE TABLE %s (a int, b blob, c int, d int, PRIMARY KEY (a, b, c))");
|
||||||
createIndex("CREATE INDEX ON %s (b)");
|
createIndex("CREATE INDEX ON %s (b)");
|
||||||
|
|
||||||
|
|
@ -904,6 +907,7 @@ public class SelectMultiColumnRelationTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testMultiplePartitionKeyAndMultiClusteringWithIndex() throws Throwable
|
public void testMultiplePartitionKeyAndMultiClusteringWithIndex() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (a int, b int, c int, d int, e int, f int, PRIMARY KEY ((a, b), c, d, e))");
|
createTable("CREATE TABLE %s (a int, b int, c int, d int, e int, f int, PRIMARY KEY ((a, b), c, d, e))");
|
||||||
createIndex("CREATE INDEX ON %s (c)");
|
createIndex("CREATE INDEX ON %s (c)");
|
||||||
createIndex("CREATE INDEX ON %s (f)");
|
createIndex("CREATE INDEX ON %s (f)");
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ import java.util.Arrays;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import org.apache.cassandra.Util;
|
||||||
import org.apache.cassandra.config.DatabaseDescriptor;
|
import org.apache.cassandra.config.DatabaseDescriptor;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
||||||
|
|
@ -47,6 +48,7 @@ public class SelectOrderedPartitionerTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testTokenAndIndex() throws Throwable
|
public void testTokenAndIndex() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (a int, b int, c int, d int, PRIMARY KEY (a, b, c))");
|
createTable("CREATE TABLE %s (a int, b int, c int, d int, PRIMARY KEY (a, b, c))");
|
||||||
createIndex("CREATE INDEX ON %s(c)");
|
createIndex("CREATE INDEX ON %s(c)");
|
||||||
|
|
||||||
|
|
@ -86,6 +88,7 @@ public class SelectOrderedPartitionerTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testFilteringOnPartitionKeyWithToken() throws Throwable
|
public void testFilteringOnPartitionKeyWithToken() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (a int, b int, c int, d int, PRIMARY KEY ((a, b), c))");
|
createTable("CREATE TABLE %s (a int, b int, c int, d int, PRIMARY KEY ((a, b), c))");
|
||||||
createIndex("CREATE INDEX ON %s(d)");
|
createIndex("CREATE INDEX ON %s(d)");
|
||||||
|
|
||||||
|
|
@ -316,6 +319,7 @@ public class SelectOrderedPartitionerTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testMultiColumnPartitionKeyWithIndexAndTokenNonTokenRestrictionsMix() throws Throwable
|
public void testMultiColumnPartitionKeyWithIndexAndTokenNonTokenRestrictionsMix() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (a int, b int, c int, primary key((a, b)))");
|
createTable("CREATE TABLE %s (a int, b int, c int, primary key((a, b)))");
|
||||||
createIndex("CREATE INDEX ON %s(b)");
|
createIndex("CREATE INDEX ON %s(b)");
|
||||||
createIndex("CREATE INDEX ON %s(c)");
|
createIndex("CREATE INDEX ON %s(c)");
|
||||||
|
|
@ -402,6 +406,7 @@ public class SelectOrderedPartitionerTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testCompositeIndexWithPK() throws Throwable
|
public void testCompositeIndexWithPK() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (blog_id int, time1 int, time2 int, author text, content text, PRIMARY KEY (blog_id, time1, time2))");
|
createTable("CREATE TABLE %s (blog_id int, time1 int, time2 int, author text, content text, PRIMARY KEY (blog_id, time1, time2))");
|
||||||
|
|
||||||
createIndex("CREATE INDEX ON %s(author)");
|
createIndex("CREATE INDEX ON %s(author)");
|
||||||
|
|
@ -533,6 +538,7 @@ public class SelectOrderedPartitionerTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testIndexOnCompositeWithCollections() throws Throwable
|
public void testIndexOnCompositeWithCollections() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (blog_id int, time1 int, time2 int, author text, content set<text>, PRIMARY KEY (blog_id, time1, time2))");
|
createTable("CREATE TABLE %s (blog_id int, time1 int, time2 int, author text, content set<text>, PRIMARY KEY (blog_id, time1, time2))");
|
||||||
|
|
||||||
createIndex("CREATE INDEX ON %s (author)");
|
createIndex("CREATE INDEX ON %s (author)");
|
||||||
|
|
|
||||||
|
|
@ -21,11 +21,12 @@ import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import org.apache.cassandra.Util;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
||||||
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
public class SelectSingleColumnRelationTest extends CQLTester
|
public class SelectSingleColumnRelationTest extends CQLTester
|
||||||
{
|
{
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -456,6 +457,8 @@ public class SelectSingleColumnRelationTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testMultiplePartitionKeyWithIndex() throws Throwable
|
public void testMultiplePartitionKeyWithIndex() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex(); // SAI does not allow multi-column slice restrictions
|
||||||
|
|
||||||
createTable("CREATE TABLE %s (a int, b int, c int, d int, e int, f int, PRIMARY KEY ((a, b), c, d, e))");
|
createTable("CREATE TABLE %s (a int, b int, c int, d int, e int, f int, PRIMARY KEY ((a, b), c, d, e))");
|
||||||
createIndex("CREATE INDEX ON %s (c)");
|
createIndex("CREATE INDEX ON %s (c)");
|
||||||
createIndex("CREATE INDEX ON %s (f)");
|
createIndex("CREATE INDEX ON %s (f)");
|
||||||
|
|
|
||||||
|
|
@ -23,11 +23,14 @@ import java.util.UUID;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
||||||
|
import org.apache.cassandra.Util;
|
||||||
|
import org.apache.cassandra.config.DatabaseDescriptor;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
import org.apache.cassandra.cql3.Duration;
|
import org.apache.cassandra.cql3.Duration;
|
||||||
import org.apache.cassandra.cql3.UntypedResultSet;
|
import org.apache.cassandra.cql3.UntypedResultSet;
|
||||||
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
||||||
import org.apache.cassandra.exceptions.InvalidRequestException;
|
import org.apache.cassandra.exceptions.InvalidRequestException;
|
||||||
|
import org.apache.cassandra.index.internal.CassandraIndex;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
@ -341,8 +344,11 @@ public class SelectTest extends CQLTester
|
||||||
assertInvalidMessage("Unsupported unset value for column categories",
|
assertInvalidMessage("Unsupported unset value for column categories",
|
||||||
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ?", "test", 5, unset());
|
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ?", "test", 5, unset());
|
||||||
|
|
||||||
assertInvalidMessage(StatementRestrictions.REQUIRES_ALLOW_FILTERING_MESSAGE,
|
if (DatabaseDescriptor.getDefaultSecondaryIndex().equals(CassandraIndex.NAME))
|
||||||
"SELECT * FROM %s WHERE account = ? AND categories CONTAINS ? AND categories CONTAINS ?", "xyz", "lmn", "notPresent");
|
assertInvalidMessage(StatementRestrictions.REQUIRES_ALLOW_FILTERING_MESSAGE,
|
||||||
|
"SELECT * FROM %s WHERE account = ? AND categories CONTAINS ? AND categories CONTAINS ?", "xyz", "lmn", "notPresent");
|
||||||
|
else
|
||||||
|
assertEmpty(execute("SELECT * FROM %s WHERE account = ? AND categories CONTAINS ? AND categories CONTAINS ?", "xyz", "lmn", "notPresent"));
|
||||||
assertEmpty(execute("SELECT * FROM %s WHERE account = ? AND categories CONTAINS ? AND categories CONTAINS ? ALLOW FILTERING", "xyz", "lmn", "notPresent"));
|
assertEmpty(execute("SELECT * FROM %s WHERE account = ? AND categories CONTAINS ? AND categories CONTAINS ? ALLOW FILTERING", "xyz", "lmn", "notPresent"));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -375,9 +381,13 @@ public class SelectTest extends CQLTester
|
||||||
assertInvalidMessage("Unsupported unset value for column categories",
|
assertInvalidMessage("Unsupported unset value for column categories",
|
||||||
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ?", "test", 5, unset());
|
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ?", "test", 5, unset());
|
||||||
|
|
||||||
assertInvalidMessage(StatementRestrictions.REQUIRES_ALLOW_FILTERING_MESSAGE,
|
if (DatabaseDescriptor.getDefaultSecondaryIndex().equals(CassandraIndex.NAME))
|
||||||
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ? AND categories CONTAINS ?",
|
assertInvalidMessage(StatementRestrictions.REQUIRES_ALLOW_FILTERING_MESSAGE,
|
||||||
"test", 5, "lmn", "notPresent");
|
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ? AND categories CONTAINS ?",
|
||||||
|
"test", 5, "lmn", "notPresent");
|
||||||
|
else
|
||||||
|
assertEmpty(execute("SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ? AND categories CONTAINS ?",
|
||||||
|
"test", 5, "lmn", "notPresent"));
|
||||||
assertEmpty(execute("SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ? AND categories CONTAINS ? ALLOW FILTERING",
|
assertEmpty(execute("SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ? AND categories CONTAINS ? ALLOW FILTERING",
|
||||||
"test", 5, "lmn", "notPresent"));
|
"test", 5, "lmn", "notPresent"));
|
||||||
});
|
});
|
||||||
|
|
@ -432,15 +442,24 @@ public class SelectTest extends CQLTester
|
||||||
assertInvalidMessage("Unsupported unset value for column categories",
|
assertInvalidMessage("Unsupported unset value for column categories",
|
||||||
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS KEY ?", "test", 5, unset());
|
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS KEY ?", "test", 5, unset());
|
||||||
|
|
||||||
assertInvalidMessage(StatementRestrictions.REQUIRES_ALLOW_FILTERING_MESSAGE,
|
if (DatabaseDescriptor.getDefaultSecondaryIndex().equals(CassandraIndex.NAME))
|
||||||
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS KEY ? AND categories CONTAINS KEY ?",
|
assertInvalidMessage(StatementRestrictions.REQUIRES_ALLOW_FILTERING_MESSAGE,
|
||||||
"test", 5, "lmn", "notPresent");
|
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS KEY ? AND categories CONTAINS KEY ?",
|
||||||
|
"test", 5, "lmn", "notPresent");
|
||||||
|
else
|
||||||
|
assertEmpty(execute("SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS KEY ? AND categories CONTAINS KEY ?",
|
||||||
|
"test", 5, "lmn", "notPresent"));
|
||||||
assertEmpty(execute("SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS KEY ? AND categories CONTAINS KEY ? ALLOW FILTERING",
|
assertEmpty(execute("SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS KEY ? AND categories CONTAINS KEY ? ALLOW FILTERING",
|
||||||
"test", 5, "lmn", "notPresent"));
|
"test", 5, "lmn", "notPresent"));
|
||||||
|
|
||||||
assertInvalidMessage(StatementRestrictions.REQUIRES_ALLOW_FILTERING_MESSAGE,
|
if (DatabaseDescriptor.getDefaultSecondaryIndex().equals(CassandraIndex.NAME))
|
||||||
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS KEY ? AND categories CONTAINS ?",
|
assertInvalidMessage(StatementRestrictions.REQUIRES_ALLOW_FILTERING_MESSAGE,
|
||||||
"test", 5, "lmn", "foo");
|
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS KEY ? AND categories CONTAINS ?",
|
||||||
|
"test", 5, "lmn", "foo");
|
||||||
|
else
|
||||||
|
assertRows(execute("SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS KEY ? AND categories CONTAINS ?",
|
||||||
|
"test", 5, "lmn", "foo"),
|
||||||
|
row("test", 5, map("lmn", "foo")));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -473,9 +492,13 @@ public class SelectTest extends CQLTester
|
||||||
assertInvalidMessage("Unsupported unset value for column categories",
|
assertInvalidMessage("Unsupported unset value for column categories",
|
||||||
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ?", "test", 5, unset());
|
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ?", "test", 5, unset());
|
||||||
|
|
||||||
assertInvalidMessage(StatementRestrictions.REQUIRES_ALLOW_FILTERING_MESSAGE,
|
if (DatabaseDescriptor.getDefaultSecondaryIndex().equals(CassandraIndex.NAME))
|
||||||
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ? AND categories CONTAINS ?",
|
assertInvalidMessage(StatementRestrictions.REQUIRES_ALLOW_FILTERING_MESSAGE,
|
||||||
"test", 5, "foo", "notPresent");
|
"SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ? AND categories CONTAINS ?",
|
||||||
|
"test", 5, "foo", "notPresent");
|
||||||
|
else
|
||||||
|
assertEmpty(execute("SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ? AND categories CONTAINS ?",
|
||||||
|
"test", 5, "foo", "notPresent"));
|
||||||
|
|
||||||
assertEmpty(execute("SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ? AND categories CONTAINS ? ALLOW FILTERING",
|
assertEmpty(execute("SELECT * FROM %s WHERE account = ? AND id = ? AND categories CONTAINS ? AND categories CONTAINS ? ALLOW FILTERING",
|
||||||
"test", 5, "foo", "notPresent"));
|
"test", 5, "foo", "notPresent"));
|
||||||
|
|
@ -1593,6 +1616,7 @@ public class SelectTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testIndexQueryWithValueOver64K() throws Throwable
|
public void testIndexQueryWithValueOver64K() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (a int, b int, c blob, PRIMARY KEY (a, b))");
|
createTable("CREATE TABLE %s (a int, b int, c blob, PRIMARY KEY (a, b))");
|
||||||
String idx = createIndex("CREATE INDEX ON %s (c)");
|
String idx = createIndex("CREATE INDEX ON %s (c)");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,10 +28,12 @@ import org.junit.Test;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import org.apache.cassandra.*;
|
import org.apache.cassandra.*;
|
||||||
|
import org.apache.cassandra.config.DatabaseDescriptor;
|
||||||
import org.apache.cassandra.cql3.*;
|
import org.apache.cassandra.cql3.*;
|
||||||
import org.apache.cassandra.cql3.statements.schema.IndexTarget;
|
import org.apache.cassandra.cql3.statements.schema.IndexTarget;
|
||||||
import org.apache.cassandra.db.marshal.*;
|
import org.apache.cassandra.db.marshal.*;
|
||||||
import org.apache.cassandra.exceptions.ConfigurationException;
|
import org.apache.cassandra.exceptions.ConfigurationException;
|
||||||
|
import org.apache.cassandra.index.internal.CassandraIndex;
|
||||||
import org.apache.cassandra.index.sasi.SASIIndex;
|
import org.apache.cassandra.index.sasi.SASIIndex;
|
||||||
import org.apache.cassandra.schema.*;
|
import org.apache.cassandra.schema.*;
|
||||||
import org.apache.cassandra.service.reads.SpeculativeRetryPolicy;
|
import org.apache.cassandra.service.reads.SpeculativeRetryPolicy;
|
||||||
|
|
@ -444,13 +446,17 @@ public class SchemaCQLHelperTest extends CQLTester
|
||||||
containsString("ALTER TABLE " + keyspace() + "." + tableName + " DROP reg3 USING TIMESTAMP 10000;"),
|
containsString("ALTER TABLE " + keyspace() + "." + tableName + " DROP reg3 USING TIMESTAMP 10000;"),
|
||||||
containsString("ALTER TABLE " + keyspace() + "." + tableName + " ADD reg3 int;")));
|
containsString("ALTER TABLE " + keyspace() + "." + tableName + " ADD reg3 int;")));
|
||||||
|
|
||||||
assertThat(schema, containsString("CREATE INDEX IF NOT EXISTS " + tableName + "_reg2_idx ON " + keyspace() + '.' + tableName + " (reg2);"));
|
final boolean isIndexLegacy = DatabaseDescriptor.getDefaultSecondaryIndex().equals(CassandraIndex.NAME);
|
||||||
|
assertThat(schema, containsString(
|
||||||
|
"CREATE " + (isIndexLegacy ? "" : "CUSTOM ") +
|
||||||
|
"INDEX IF NOT EXISTS " + tableName + "_reg2_idx ON " + keyspace() + '.' + tableName + " (reg2)" +
|
||||||
|
(isIndexLegacy ? "" : " USING '" + DatabaseDescriptor.getDefaultSecondaryIndex() + "'") + ";"));
|
||||||
|
|
||||||
JsonNode manifest = JsonUtils.JSON_OBJECT_MAPPER.readTree(cfs.getDirectories().getSnapshotManifestFile(SNAPSHOT).toJavaIOFile());
|
JsonNode manifest = JsonUtils.JSON_OBJECT_MAPPER.readTree(cfs.getDirectories().getSnapshotManifestFile(SNAPSHOT).toJavaIOFile());
|
||||||
JsonNode files = manifest.get("files");
|
JsonNode files = manifest.get("files");
|
||||||
// two files, the second is index
|
// two files, the second is index
|
||||||
Assert.assertTrue(files.isArray());
|
Assert.assertTrue(files.isArray());
|
||||||
Assert.assertEquals(2, files.size());
|
Assert.assertEquals(isIndexLegacy ? 2 : 1, files.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ import com.google.common.collect.Sets;
|
||||||
import com.google.common.util.concurrent.Uninterruptibles;
|
import com.google.common.util.concurrent.Uninterruptibles;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import org.apache.cassandra.Util;
|
||||||
import org.apache.cassandra.cache.AutoSavingCache;
|
import org.apache.cassandra.cache.AutoSavingCache;
|
||||||
import org.apache.cassandra.config.DatabaseDescriptor;
|
import org.apache.cassandra.config.DatabaseDescriptor;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
|
|
@ -78,7 +79,7 @@ public class ActiveCompactionsTest extends CQLTester
|
||||||
|
|
||||||
ExecutorService es = Executors.newFixedThreadPool(2);
|
ExecutorService es = Executors.newFixedThreadPool(2);
|
||||||
|
|
||||||
final int loopCount = 5000;
|
final int loopCount = 3500;
|
||||||
for (int ii = 0; ii < loopCount; ii++)
|
for (int ii = 0; ii < loopCount; ii++)
|
||||||
{
|
{
|
||||||
CountDownLatch trigger = new CountDownLatch(1);
|
CountDownLatch trigger = new CountDownLatch(1);
|
||||||
|
|
@ -108,6 +109,7 @@ public class ActiveCompactionsTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testSecondaryIndexTracking() throws Throwable
|
public void testSecondaryIndexTracking() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (pk int, ck int, a int, b int, PRIMARY KEY (pk, ck))");
|
createTable("CREATE TABLE %s (pk int, ck int, a int, b int, PRIMARY KEY (pk, ck))");
|
||||||
String idxName = createIndex("CREATE INDEX on %s(a)");
|
String idxName = createIndex("CREATE INDEX on %s(a)");
|
||||||
getCurrentColumnFamilyStore().disableAutoCompaction();
|
getCurrentColumnFamilyStore().disableAutoCompaction();
|
||||||
|
|
|
||||||
|
|
@ -32,8 +32,10 @@ import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.util.concurrent.Uninterruptibles;
|
import com.google.common.util.concurrent.Uninterruptibles;
|
||||||
|
import org.junit.Assume;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import org.apache.cassandra.config.DatabaseDescriptor;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
import org.apache.cassandra.db.ColumnFamilyStore;
|
import org.apache.cassandra.db.ColumnFamilyStore;
|
||||||
import org.apache.cassandra.db.lifecycle.LifecycleTransaction;
|
import org.apache.cassandra.db.lifecycle.LifecycleTransaction;
|
||||||
|
|
@ -44,6 +46,7 @@ import org.apache.cassandra.dht.Range;
|
||||||
import org.apache.cassandra.dht.Token;
|
import org.apache.cassandra.dht.Token;
|
||||||
import org.apache.cassandra.index.Index;
|
import org.apache.cassandra.index.Index;
|
||||||
import org.apache.cassandra.index.StubIndex;
|
import org.apache.cassandra.index.StubIndex;
|
||||||
|
import org.apache.cassandra.index.internal.CassandraIndex;
|
||||||
import org.apache.cassandra.index.internal.CollatedViewIndexBuilder;
|
import org.apache.cassandra.index.internal.CollatedViewIndexBuilder;
|
||||||
import org.apache.cassandra.io.sstable.ISSTableScanner;
|
import org.apache.cassandra.io.sstable.ISSTableScanner;
|
||||||
import org.apache.cassandra.io.sstable.ReducingKeyIterator;
|
import org.apache.cassandra.io.sstable.ReducingKeyIterator;
|
||||||
|
|
@ -426,6 +429,8 @@ public class CancelCompactionsTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void test2iCancellation() throws Throwable
|
public void test2iCancellation() throws Throwable
|
||||||
{
|
{
|
||||||
|
Assume.assumeTrue("Tests legacy index",
|
||||||
|
DatabaseDescriptor.getDefaultSecondaryIndex().equals(CassandraIndex.NAME));
|
||||||
createTable("create table %s (id int primary key, something int)");
|
createTable("create table %s (id int primary key, something int)");
|
||||||
createIndex("create index on %s(something)");
|
createIndex("create index on %s(something)");
|
||||||
getCurrentColumnFamilyStore().disableAutoCompaction();
|
getCurrentColumnFamilyStore().disableAutoCompaction();
|
||||||
|
|
@ -446,6 +451,8 @@ public class CancelCompactionsTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testSubrangeCompactionWith2i() throws Throwable
|
public void testSubrangeCompactionWith2i() throws Throwable
|
||||||
{
|
{
|
||||||
|
Assume.assumeTrue("Tests legacy index",
|
||||||
|
DatabaseDescriptor.getDefaultSecondaryIndex().equals(CassandraIndex.NAME));
|
||||||
createTable("create table %s (id int primary key, something int)");
|
createTable("create table %s (id int primary key, something int)");
|
||||||
createIndex("create index on %s(something)");
|
createIndex("create index on %s(something)");
|
||||||
getCurrentColumnFamilyStore().disableAutoCompaction();
|
getCurrentColumnFamilyStore().disableAutoCompaction();
|
||||||
|
|
|
||||||
|
|
@ -271,7 +271,7 @@ public class ControllerTest
|
||||||
assertEquals(3 * (int) Controller.MAX_SHARD_SPLIT, controller.getNumShards(Math.scalb(10, 60)));
|
assertEquals(3 * (int) Controller.MAX_SHARD_SPLIT, controller.getNumShards(Math.scalb(10, 60)));
|
||||||
assertEquals(3 * (int) Controller.MAX_SHARD_SPLIT, controller.getNumShards(Double.POSITIVE_INFINITY));
|
assertEquals(3 * (int) Controller.MAX_SHARD_SPLIT, controller.getNumShards(Double.POSITIVE_INFINITY));
|
||||||
// Check NaN
|
// Check NaN
|
||||||
assertEquals(3, controller.getNumShards(Double.NaN));
|
assertEquals(1, controller.getNumShards(Double.NaN));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -310,7 +310,7 @@ public class ControllerTest
|
||||||
assertEquals(3, controller.getNumShards(Math.scalb(10, 60)));
|
assertEquals(3, controller.getNumShards(Math.scalb(10, 60)));
|
||||||
assertEquals(3, controller.getNumShards(Double.POSITIVE_INFINITY));
|
assertEquals(3, controller.getNumShards(Double.POSITIVE_INFINITY));
|
||||||
// Check NaN
|
// Check NaN
|
||||||
assertEquals(3, controller.getNumShards(Double.NaN));
|
assertEquals(1, controller.getNumShards(Double.NaN));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -349,7 +349,7 @@ public class ControllerTest
|
||||||
assertEquals(3 * (int) Controller.MAX_SHARD_SPLIT, controller.getNumShards(Math.scalb(10, 80)));
|
assertEquals(3 * (int) Controller.MAX_SHARD_SPLIT, controller.getNumShards(Math.scalb(10, 80)));
|
||||||
assertEquals(3 * (int) Controller.MAX_SHARD_SPLIT, controller.getNumShards(Double.POSITIVE_INFINITY));
|
assertEquals(3 * (int) Controller.MAX_SHARD_SPLIT, controller.getNumShards(Double.POSITIVE_INFINITY));
|
||||||
// Check NaN
|
// Check NaN
|
||||||
assertEquals(3, controller.getNumShards(Double.NaN));
|
assertEquals(1, controller.getNumShards(Double.NaN));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -387,7 +387,7 @@ public class ControllerTest
|
||||||
assertEquals(3 * (int) Controller.MAX_SHARD_SPLIT, controller.getNumShards(Math.scalb(600, 50)));
|
assertEquals(3 * (int) Controller.MAX_SHARD_SPLIT, controller.getNumShards(Math.scalb(600, 50)));
|
||||||
assertEquals(3 * (int) Controller.MAX_SHARD_SPLIT, controller.getNumShards(Math.scalb(10, 60)));
|
assertEquals(3 * (int) Controller.MAX_SHARD_SPLIT, controller.getNumShards(Math.scalb(10, 60)));
|
||||||
assertEquals(3 * (int) Controller.MAX_SHARD_SPLIT, controller.getNumShards(Double.POSITIVE_INFINITY));
|
assertEquals(3 * (int) Controller.MAX_SHARD_SPLIT, controller.getNumShards(Double.POSITIVE_INFINITY));
|
||||||
assertEquals(3, controller.getNumShards(Double.NaN));
|
assertEquals(1, controller.getNumShards(Double.NaN));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ public class ShardedMultiWriterTest extends CQLTester
|
||||||
long totSizeBytes = ((minSSTableSizeMB << 20) * numShards) * 2;
|
long totSizeBytes = ((minSSTableSizeMB << 20) * numShards) * 2;
|
||||||
|
|
||||||
// We have double the data required for 5 shards so we should get 5 shards
|
// We have double the data required for 5 shards so we should get 5 shards
|
||||||
testShardedCompactionWriter(numShards, totSizeBytes, numShards);
|
testShardedCompactionWriter(numShards, totSizeBytes, numShards, minSSTableSizeMB);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -61,7 +61,7 @@ public class ShardedMultiWriterTest extends CQLTester
|
||||||
long totSizeBytes = (minSSTableSizeMB << 20);
|
long totSizeBytes = (minSSTableSizeMB << 20);
|
||||||
|
|
||||||
// there should be only 1 shard if there is <= minSSTableSize
|
// there should be only 1 shard if there is <= minSSTableSize
|
||||||
testShardedCompactionWriter(numShards, totSizeBytes, 1);
|
testShardedCompactionWriter(numShards, totSizeBytes, 1, minSSTableSizeMB);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -72,18 +72,19 @@ public class ShardedMultiWriterTest extends CQLTester
|
||||||
long totSizeBytes = (minSSTableSizeMB << 20) * 3;
|
long totSizeBytes = (minSSTableSizeMB << 20) * 3;
|
||||||
|
|
||||||
// there should be only 3 shards if there is minSSTableSize * 3 data
|
// there should be only 3 shards if there is minSSTableSize * 3 data
|
||||||
testShardedCompactionWriter(numShards, totSizeBytes, 3);
|
testShardedCompactionWriter(numShards, totSizeBytes, 3, minSSTableSizeMB);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void testShardedCompactionWriter(int numShards, long totSizeBytes, int numOutputSSTables) throws Throwable
|
private void testShardedCompactionWriter(int numShards, long totSizeBytes, int numOutputSSTables, int minSSTableSizeMB) throws Throwable
|
||||||
{
|
{
|
||||||
createTable(String.format("CREATE TABLE %%s (k int, t int, v blob, PRIMARY KEY (k, t)) with compaction = " +
|
createTable(String.format("CREATE TABLE %%s (k int, t int, v blob, PRIMARY KEY (k, t)) with compaction = " +
|
||||||
"{'class':'UnifiedCompactionStrategy', 'base_shard_count' : '%d'} ", numShards));
|
"{'class':'UnifiedCompactionStrategy', 'base_shard_count' : '%d', 'min_sstable_size': '" + minSSTableSizeMB + "MiB'} ", numShards));
|
||||||
|
|
||||||
ColumnFamilyStore cfs = getCurrentColumnFamilyStore();
|
ColumnFamilyStore cfs = getCurrentColumnFamilyStore();
|
||||||
cfs.disableAutoCompaction();
|
cfs.disableAutoCompaction();
|
||||||
|
|
||||||
int rowCount = insertData(totSizeBytes);
|
int rowCount = insertData(totSizeBytes);
|
||||||
|
cfs.metric.flushSizeOnDisk.update(totSizeBytes); // flush size is only updated after the flush completes; set here so that flush uses correct size
|
||||||
cfs.forceBlockingFlush(ColumnFamilyStore.FlushReason.UNIT_TESTS);
|
cfs.forceBlockingFlush(ColumnFamilyStore.FlushReason.UNIT_TESTS);
|
||||||
|
|
||||||
assertEquals(numOutputSSTables, cfs.getLiveSSTables().size());
|
assertEquals(numOutputSSTables, cfs.getLiveSSTables().size());
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,8 @@ public class CompactionAwareWriterTest extends CQLTester
|
||||||
{
|
{
|
||||||
// Disabling durable write since we don't care
|
// Disabling durable write since we don't care
|
||||||
schemaChange("CREATE KEYSPACE IF NOT EXISTS " + KEYSPACE + " WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes=false");
|
schemaChange("CREATE KEYSPACE IF NOT EXISTS " + KEYSPACE + " WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes=false");
|
||||||
schemaChange(String.format("CREATE TABLE %s.%s (k int, t int, v blob, PRIMARY KEY (k, t))", KEYSPACE, TABLE));
|
schemaChange(String.format("CREATE TABLE %s.%s (k int, t int, v blob, PRIMARY KEY (k, t)) WITH compaction = {'class': 'SizeTieredCompactionStrategy'}", KEYSPACE, TABLE));
|
||||||
|
// The compaction specification above is to avoid failures caused by UCS splitting large files.
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass
|
@AfterClass
|
||||||
|
|
|
||||||
|
|
@ -32,10 +32,12 @@ import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
|
import org.junit.Assume;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import com.datastax.driver.core.exceptions.QueryValidationException;
|
import com.datastax.driver.core.exceptions.QueryValidationException;
|
||||||
import org.apache.cassandra.Util;
|
import org.apache.cassandra.Util;
|
||||||
|
import org.apache.cassandra.config.DatabaseDescriptor;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
import org.apache.cassandra.cql3.ColumnIdentifier;
|
import org.apache.cassandra.cql3.ColumnIdentifier;
|
||||||
import org.apache.cassandra.cql3.Operator;
|
import org.apache.cassandra.cql3.Operator;
|
||||||
|
|
@ -43,8 +45,8 @@ import org.apache.cassandra.cql3.restrictions.IndexRestrictions;
|
||||||
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
||||||
import org.apache.cassandra.cql3.statements.schema.IndexTarget;
|
import org.apache.cassandra.cql3.statements.schema.IndexTarget;
|
||||||
import org.apache.cassandra.cql3.statements.ModificationStatement;
|
import org.apache.cassandra.cql3.statements.ModificationStatement;
|
||||||
import org.apache.cassandra.db.ColumnFamilyStore.FlushReason;
|
|
||||||
import org.apache.cassandra.db.*;
|
import org.apache.cassandra.db.*;
|
||||||
|
import org.apache.cassandra.db.ColumnFamilyStore.FlushReason;
|
||||||
import org.apache.cassandra.db.filter.RowFilter;
|
import org.apache.cassandra.db.filter.RowFilter;
|
||||||
import org.apache.cassandra.db.lifecycle.LifecycleNewTracker;
|
import org.apache.cassandra.db.lifecycle.LifecycleNewTracker;
|
||||||
import org.apache.cassandra.db.marshal.AbstractType;
|
import org.apache.cassandra.db.marshal.AbstractType;
|
||||||
|
|
@ -55,10 +57,11 @@ import org.apache.cassandra.db.partitions.UnfilteredPartitionIterator;
|
||||||
import org.apache.cassandra.db.rows.Row;
|
import org.apache.cassandra.db.rows.Row;
|
||||||
import org.apache.cassandra.db.rows.Unfiltered;
|
import org.apache.cassandra.db.rows.Unfiltered;
|
||||||
import org.apache.cassandra.exceptions.InvalidRequestException;
|
import org.apache.cassandra.exceptions.InvalidRequestException;
|
||||||
|
import org.apache.cassandra.index.internal.CassandraIndex;
|
||||||
|
import org.apache.cassandra.index.transactions.IndexTransaction;
|
||||||
import org.apache.cassandra.io.sstable.Component;
|
import org.apache.cassandra.io.sstable.Component;
|
||||||
import org.apache.cassandra.io.sstable.Descriptor;
|
import org.apache.cassandra.io.sstable.Descriptor;
|
||||||
import org.apache.cassandra.io.sstable.SSTableFlushObserver;
|
import org.apache.cassandra.io.sstable.SSTableFlushObserver;
|
||||||
import org.apache.cassandra.index.transactions.IndexTransaction;
|
|
||||||
import org.apache.cassandra.schema.ColumnMetadata;
|
import org.apache.cassandra.schema.ColumnMetadata;
|
||||||
import org.apache.cassandra.schema.IndexMetadata;
|
import org.apache.cassandra.schema.IndexMetadata;
|
||||||
import org.apache.cassandra.schema.Indexes;
|
import org.apache.cassandra.schema.Indexes;
|
||||||
|
|
@ -162,6 +165,8 @@ public class CustomIndexTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void nonCustomIndexesRequireExactlyOneTargetColumn() throws Throwable
|
public void nonCustomIndexesRequireExactlyOneTargetColumn() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
|
|
||||||
createTable("CREATE TABLE %s(k int, c int, v1 int, v2 int, PRIMARY KEY (k,c))");
|
createTable("CREATE TABLE %s(k int, c int, v1 int, v2 int, PRIMARY KEY (k,c))");
|
||||||
|
|
||||||
assertInvalidMessage("Only CUSTOM indexes support multiple columns", "CREATE INDEX multi_idx on %s(v1,v2)");
|
assertInvalidMessage("Only CUSTOM indexes support multiple columns", "CREATE INDEX multi_idx on %s(v1,v2)");
|
||||||
|
|
@ -350,6 +355,8 @@ public class CustomIndexTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void createIndexWithoutTargets() throws Throwable
|
public void createIndexWithoutTargets() throws Throwable
|
||||||
{
|
{
|
||||||
|
Assume.assumeTrue("Test does not work with different default secondary index",
|
||||||
|
DatabaseDescriptor.getDefaultSecondaryIndex().equals(CassandraIndex.NAME));
|
||||||
createTable("CREATE TABLE %s(k int, c int, v1 int, v2 int, PRIMARY KEY(k,c))");
|
createTable("CREATE TABLE %s(k int, c int, v1 int, v2 int, PRIMARY KEY(k,c))");
|
||||||
// only allowed for CUSTOM indexes
|
// only allowed for CUSTOM indexes
|
||||||
assertInvalidMessage("Only CUSTOM indexes can be created without specifying a target column",
|
assertInvalidMessage("Only CUSTOM indexes can be created without specifying a target column",
|
||||||
|
|
@ -458,6 +465,8 @@ public class CustomIndexTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void customExpressionsMustTargetCustomIndex() throws Throwable
|
public void customExpressionsMustTargetCustomIndex() throws Throwable
|
||||||
{
|
{
|
||||||
|
Assume.assumeTrue("Test does not work with different default secondary index",
|
||||||
|
DatabaseDescriptor.getDefaultSecondaryIndex().equals(CassandraIndex.NAME));
|
||||||
createTable("CREATE TABLE %s (a int, b int, c int, d int, PRIMARY KEY (a, b))");
|
createTable("CREATE TABLE %s (a int, b int, c int, d int, PRIMARY KEY (a, b))");
|
||||||
createIndex("CREATE INDEX non_custom_index ON %s(c)");
|
createIndex("CREATE INDEX non_custom_index ON %s(c)");
|
||||||
assertInvalidThrowMessage(Optional.of(ProtocolVersion.CURRENT),
|
assertInvalidThrowMessage(Optional.of(ProtocolVersion.CURRENT),
|
||||||
|
|
@ -1393,6 +1402,8 @@ public class CustomIndexTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void testIndexGroupsInstancesManagement() throws Throwable
|
public void testIndexGroupsInstancesManagement() throws Throwable
|
||||||
{
|
{
|
||||||
|
Assume.assumeTrue("Test does not work with different default secondary index",
|
||||||
|
DatabaseDescriptor.getDefaultSecondaryIndex().equals(CassandraIndex.NAME));
|
||||||
String indexClassName = IndexWithSharedGroup.class.getName();
|
String indexClassName = IndexWithSharedGroup.class.getName();
|
||||||
createTable("CREATE TABLE %s (k int PRIMARY KEY, v1 int, v2 int, v3 int, v4 int, v5 int)");
|
createTable("CREATE TABLE %s (k int PRIMARY KEY, v1 int, v2 int, v3 int, v4 int, v5 int)");
|
||||||
SecondaryIndexManager indexManager = getCurrentColumnFamilyStore().indexManager;
|
SecondaryIndexManager indexManager = getCurrentColumnFamilyStore().indexManager;
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ import com.google.common.collect.Sets;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import org.apache.cassandra.Util;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
import org.apache.cassandra.db.ColumnFamilyStore;
|
import org.apache.cassandra.db.ColumnFamilyStore;
|
||||||
import org.apache.cassandra.db.SystemKeyspace;
|
import org.apache.cassandra.db.SystemKeyspace;
|
||||||
|
|
@ -109,6 +110,7 @@ public class SecondaryIndexManagerTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void addingSSTablesMarksTheIndexAsBuilt()
|
public void addingSSTablesMarksTheIndexAsBuilt()
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
createTable("CREATE TABLE %s (a int, b int, c int, PRIMARY KEY (a, b))");
|
createTable("CREATE TABLE %s (a int, b int, c int, PRIMARY KEY (a, b))");
|
||||||
String indexName = createIndex("CREATE INDEX ON %s(c)");
|
String indexName = createIndex("CREATE INDEX ON %s(c)");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ import com.google.common.base.Joiner;
|
||||||
import com.google.common.collect.*;
|
import com.google.common.collect.*;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import org.apache.cassandra.Util;
|
||||||
import org.apache.cassandra.cql3.CQLTester;
|
import org.apache.cassandra.cql3.CQLTester;
|
||||||
import org.apache.cassandra.cql3.UntypedResultSet;
|
import org.apache.cassandra.cql3.UntypedResultSet;
|
||||||
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
||||||
|
|
@ -480,6 +481,7 @@ public class CassandraIndexTest extends CQLTester
|
||||||
@Test
|
@Test
|
||||||
public void updateTTLOnIndexedClusteringValue() throws Throwable
|
public void updateTTLOnIndexedClusteringValue() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
int basePk = 1;
|
int basePk = 1;
|
||||||
int indexedVal = 2;
|
int indexedVal = 2;
|
||||||
int initialTtl = 3600;
|
int initialTtl = 3600;
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ package org.apache.cassandra.index.sai.cql;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import org.apache.cassandra.Util;
|
||||||
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
import org.apache.cassandra.cql3.restrictions.StatementRestrictions;
|
||||||
import org.apache.cassandra.index.sai.SAITester;
|
import org.apache.cassandra.index.sai.SAITester;
|
||||||
import org.apache.cassandra.index.sai.StorageAttachedIndex;
|
import org.apache.cassandra.index.sai.StorageAttachedIndex;
|
||||||
|
|
@ -81,6 +82,8 @@ public class MixedIndexImplementationsTest extends SAITester
|
||||||
@Test
|
@Test
|
||||||
public void shouldRequireAllowFilteringWithOtherIndex() throws Throwable
|
public void shouldRequireAllowFilteringWithOtherIndex() throws Throwable
|
||||||
{
|
{
|
||||||
|
Util.assumeLegacySecondaryIndex();
|
||||||
|
|
||||||
createTable("CREATE TABLE %s (" +
|
createTable("CREATE TABLE %s (" +
|
||||||
"k1 int, k2 int, " +
|
"k1 int, k2 int, " +
|
||||||
"s1 int static, " +
|
"s1 int static, " +
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ public class CQLSSTableWriterClientTest extends CQLSSTableWriterTest
|
||||||
@After
|
@After
|
||||||
public void tearDown()
|
public void tearDown()
|
||||||
{
|
{
|
||||||
DatabaseDescriptor.setPartitionerUnsafe(oldPartitioner);
|
if (oldPartitioner != null)
|
||||||
|
DatabaseDescriptor.setPartitionerUnsafe(oldPartitioner);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -476,7 +476,7 @@ public class LegacySSTableTest
|
||||||
{
|
{
|
||||||
// Only perform test if format uses cache.
|
// Only perform test if format uses cache.
|
||||||
SSTableReader sstable = Iterables.getFirst(Keyspace.open("legacy_tables").getColumnFamilyStore(String.format("legacy_%s_simple", legacyVersion)).getLiveSSTables(), null);
|
SSTableReader sstable = Iterables.getFirst(Keyspace.open("legacy_tables").getColumnFamilyStore(String.format("legacy_%s_simple", legacyVersion)).getLiveSSTables(), null);
|
||||||
if (!(sstable instanceof KeyCacheSupport))
|
if (!(sstable instanceof KeyCacheSupport) || DatabaseDescriptor.getKeyCacheSizeInMiB() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//For https://issues.apache.org/jira/browse/CASSANDRA-10778
|
//For https://issues.apache.org/jira/browse/CASSANDRA-10778
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,7 @@ public class StorageProxyTest
|
||||||
@Test
|
@Test
|
||||||
public void testSetGetPaxosVariant()
|
public void testSetGetPaxosVariant()
|
||||||
{
|
{
|
||||||
|
StorageProxy.instance.setPaxosVariant("v1"); // test-latest uses v2 as default, ensure we are starting with a known state
|
||||||
Assert.assertEquals(Config.PaxosVariant.v1, DatabaseDescriptor.getPaxosVariant());
|
Assert.assertEquals(Config.PaxosVariant.v1, DatabaseDescriptor.getPaxosVariant());
|
||||||
Assert.assertEquals("v1", StorageProxy.instance.getPaxosVariant());
|
Assert.assertEquals("v1", StorageProxy.instance.getPaxosVariant());
|
||||||
StorageProxy.instance.setPaxosVariant("v2");
|
StorageProxy.instance.setPaxosVariant("v2");
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ public class CompactionStressTest extends OfflineToolUtils
|
||||||
"-p",
|
"-p",
|
||||||
profileFile,
|
profileFile,
|
||||||
"-t",
|
"-t",
|
||||||
"4");
|
"8");
|
||||||
tool.assertOnCleanExit();
|
tool.assertOnCleanExit();
|
||||||
|
|
||||||
tool = ToolRunner.invokeClass("org.apache.cassandra.stress.CompactionStress",
|
tool = ToolRunner.invokeClass("org.apache.cassandra.stress.CompactionStress",
|
||||||
|
|
@ -59,7 +59,7 @@ public class CompactionStressTest extends OfflineToolUtils
|
||||||
"-p",
|
"-p",
|
||||||
profileFile,
|
profileFile,
|
||||||
"-t",
|
"-t",
|
||||||
"4");
|
"8");
|
||||||
tool.assertOnCleanExit();
|
tool.assertOnCleanExit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue