This is an automated email from the ASF dual-hosted git repository.

mck pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 3cfc850  Updated default num_tokens from 256 to 16 with associated 
allocate_tokens_for_local_replication_factor set to 3
3cfc850 is described below

commit 3cfc8502b82ba88da6ffc69fdad476f7fa0819ca
Author: Jeremy Hanna <[email protected]>
AuthorDate: Tue Jul 7 13:19:55 2020 +1000

    Updated default num_tokens from 256 to 16 with associated 
allocate_tokens_for_local_replication_factor set to 3
    
     patch by Jeremy Hanna; reviewed by Alexander Dejanovski, Paulo Motta, 
Brandon Williams, Michael Semb Wever for CASSANDRA-13701
---
 .circleci/config-2_1.yml               | 16 ++++++++--------
 .circleci/config-2_1.yml.mid_res.patch |  4 ++--
 .circleci/config.yml                   | 16 ++++++++--------
 .circleci/config.yml.HIGHRES           | 16 ++++++++--------
 .circleci/config.yml.LOWRES            | 16 ++++++++--------
 .circleci/config.yml.MIDRES            | 16 ++++++++--------
 CHANGES.txt                            |  1 +
 NEWS.txt                               |  8 ++++++++
 conf/cassandra.yaml                    |  7 +++++--
 9 files changed, 56 insertions(+), 44 deletions(-)

diff --git a/.circleci/config-2_1.yml b/.circleci/config-2_1.yml
index c80eaee..07c406b 100644
--- a/.circleci/config-2_1.yml
+++ b/.circleci/config-2_1.yml
@@ -467,7 +467,7 @@ jobs:
           run_dtests_extra_args: "--use-vnodes --skip-resource-intensive-tests 
--pytest-options '-k not cql'"
       - run_dtests:
           file_tag: j8_with_vnodes
-          pytest_extra_args: '--use-vnodes --num-tokens=32 
--skip-resource-intensive-tests'
+          pytest_extra_args: '--use-vnodes --num-tokens=16 
--skip-resource-intensive-tests'
 
   j11_dtests-with-vnodes:
     <<: *j11_par_executor
@@ -482,7 +482,7 @@ jobs:
         run_dtests_extra_args: "--use-vnodes --skip-resource-intensive-tests 
--pytest-options '-k not cql'"
     - run_dtests:
         file_tag: j11_with_vnodes
-        pytest_extra_args: '--use-vnodes --num-tokens=32 
--skip-resource-intensive-tests'
+        pytest_extra_args: '--use-vnodes --num-tokens=16 
--skip-resource-intensive-tests'
 
   j8_dtests-no-vnodes:
     <<: *j8_par_executor
@@ -539,7 +539,7 @@ jobs:
           run_dtests_extra_args: "--use-vnodes --skip-resource-intensive-tests 
--pytest-options '-k cql'"
       - run_dtests:
           file_tag: j8_with_vnodes
-          pytest_extra_args: '--use-vnodes --num-tokens=32 
--skip-resource-intensive-tests'
+          pytest_extra_args: '--use-vnodes --num-tokens=16 
--skip-resource-intensive-tests'
           extra_env_args: 'CQLSH_PYTHON=/usr/bin/python2.7'
 
   j8_cqlsh-dtests-py3-with-vnodes:
@@ -554,7 +554,7 @@ jobs:
           run_dtests_extra_args: "--use-vnodes --skip-resource-intensive-tests 
--pytest-options '-k cql'"
       - run_dtests:
           file_tag: j8_with_vnodes
-          pytest_extra_args: '--use-vnodes --num-tokens=32 
--skip-resource-intensive-tests'
+          pytest_extra_args: '--use-vnodes --num-tokens=16 
--skip-resource-intensive-tests'
           extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.6'
 
   j8_cqlsh-dtests-py38-with-vnodes:
@@ -571,7 +571,7 @@ jobs:
           python_version: '3.8'
       - run_dtests:
           file_tag: j8_with_vnodes
-          pytest_extra_args: '--use-vnodes --num-tokens=32 
--skip-resource-intensive-tests'
+          pytest_extra_args: '--use-vnodes --num-tokens=16 
--skip-resource-intensive-tests'
           extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.8'
           python_version: '3.8'
 
@@ -635,7 +635,7 @@ jobs:
           run_dtests_extra_args: "--use-vnodes --skip-resource-intensive-tests 
--pytest-options '-k cql'"
       - run_dtests:
           file_tag: j11_with_vnodes
-          pytest_extra_args: '--use-vnodes --num-tokens=32 
--skip-resource-intensive-tests'
+          pytest_extra_args: '--use-vnodes --num-tokens=16 
--skip-resource-intensive-tests'
           extra_env_args: 'CQLSH_PYTHON=/usr/bin/python2.7'
 
   j11_cqlsh-dtests-py3-with-vnodes:
@@ -650,7 +650,7 @@ jobs:
           run_dtests_extra_args: "--use-vnodes --skip-resource-intensive-tests 
--pytest-options '-k cql'"
       - run_dtests:
           file_tag: j11_with_vnodes
-          pytest_extra_args: '--use-vnodes --num-tokens=32 
--skip-resource-intensive-tests'
+          pytest_extra_args: '--use-vnodes --num-tokens=16 
--skip-resource-intensive-tests'
           extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.6'
 
   j11_cqlsh-dtests-py38-with-vnodes:
@@ -667,7 +667,7 @@ jobs:
           python_version: '3.8'
       - run_dtests:
           file_tag: j11_with_vnodes
-          pytest_extra_args: '--use-vnodes --num-tokens=32 
--skip-resource-intensive-tests'
+          pytest_extra_args: '--use-vnodes --num-tokens=16 
--skip-resource-intensive-tests'
           extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.8'
           python_version: '3.8'
 
diff --git a/.circleci/config-2_1.yml.mid_res.patch 
b/.circleci/config-2_1.yml.mid_res.patch
index 838e3fd..3b4d8ae 100644
--- a/.circleci/config-2_1.yml.mid_res.patch
+++ b/.circleci/config-2_1.yml.mid_res.patch
@@ -78,7 +78,7 @@
        - attach_workspace:
            at: /home/cassandra
 @@ -470,7 +488,7 @@ jobs:
-           pytest_extra_args: '--use-vnodes --num-tokens=32 
--skip-resource-intensive-tests'
+           pytest_extra_args: '--use-vnodes --num-tokens=16 
--skip-resource-intensive-tests'
  
    j11_dtests-with-vnodes:
 -    <<: *j11_par_executor
@@ -87,7 +87,7 @@
      - attach_workspace:
          at: /home/cassandra
 @@ -485,7 +503,7 @@ jobs:
-         pytest_extra_args: '--use-vnodes --num-tokens=32 
--skip-resource-intensive-tests'
+         pytest_extra_args: '--use-vnodes --num-tokens=16 
--skip-resource-intensive-tests'
  
    j8_dtests-no-vnodes:
 -    <<: *j8_par_executor
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 7b49ca6..26da01d 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -143,7 +143,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -389,7 +389,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -545,7 +545,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -623,7 +623,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -777,7 +777,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -858,7 +858,7 @@ jobs:
     - run:
         name: Run dtests (j11_with_vnodes)
         no_output_timeout: 15m
-        command: "echo \"cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the  [...]
+        command: "echo \"cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the  [...]
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -1457,7 +1457,7 @@ jobs:
     - run:
         name: Run dtests (j8_with_vnodes)
         no_output_timeout: 15m
-        command: "echo \"cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the ex [...]
+        command: "echo \"cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the ex [...]
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -1860,7 +1860,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
diff --git a/.circleci/config.yml.HIGHRES b/.circleci/config.yml.HIGHRES
index 1fb38d2..a6ef867 100644
--- a/.circleci/config.yml.HIGHRES
+++ b/.circleci/config.yml.HIGHRES
@@ -143,7 +143,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -389,7 +389,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -545,7 +545,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -623,7 +623,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -777,7 +777,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -858,7 +858,7 @@ jobs:
     - run:
         name: Run dtests (j11_with_vnodes)
         no_output_timeout: 15m
-        command: "echo \"cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the  [...]
+        command: "echo \"cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the  [...]
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -1457,7 +1457,7 @@ jobs:
     - run:
         name: Run dtests (j8_with_vnodes)
         no_output_timeout: 15m
-        command: "echo \"cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the ex [...]
+        command: "echo \"cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the ex [...]
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -1860,7 +1860,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
diff --git a/.circleci/config.yml.LOWRES b/.circleci/config.yml.LOWRES
index 7b49ca6..26da01d 100644
--- a/.circleci/config.yml.LOWRES
+++ b/.circleci/config.yml.LOWRES
@@ -143,7 +143,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -389,7 +389,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -545,7 +545,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -623,7 +623,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -777,7 +777,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -858,7 +858,7 @@ jobs:
     - run:
         name: Run dtests (j11_with_vnodes)
         no_output_timeout: 15m
-        command: "echo \"cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the  [...]
+        command: "echo \"cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the  [...]
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -1457,7 +1457,7 @@ jobs:
     - run:
         name: Run dtests (j8_with_vnodes)
         no_output_timeout: 15m
-        command: "echo \"cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the ex [...]
+        command: "echo \"cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the ex [...]
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -1860,7 +1860,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
diff --git a/.circleci/config.yml.MIDRES b/.circleci/config.yml.MIDRES
index 2f928ef..7da043f 100644
--- a/.circleci/config.yml.MIDRES
+++ b/.circleci/config.yml.MIDRES
@@ -143,7 +143,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -389,7 +389,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -545,7 +545,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -623,7 +623,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -777,7 +777,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j11_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -858,7 +858,7 @@ jobs:
     - run:
         name: Run dtests (j11_with_vnodes)
         no_output_timeout: 15m
-        command: "echo \"cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the  [...]
+        command: "echo \"cat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j11_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the  [...]
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -1457,7 +1457,7 @@ jobs:
     - run:
         name: Run dtests (j8_with_vnodes)
         no_output_timeout: 15m
-        command: "echo \"cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the ex [...]
+        command: "echo \"cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\"\ncat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt\n\nsource 
~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\nif [ -n '' ]; then\n  
export \nfi\n\njava -version\ncd ~/cassandra-dtest\nmkdir -p /tmp/dtest\n\necho 
\"env: $(env)\"\necho \"** done env\"\nmkdir -p /tmp/results/dtests\n# we need 
the \"set -o pipefail\" here so that the exit code that circleci will actually 
use is from pytest and not the ex [...]
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
@@ -1860,7 +1860,7 @@ jobs:
           mkdir -p /tmp/results/dtests
           # we need the "set -o pipefail" here so that the exit code that 
circleci will actually use is from pytest and not the exit code from tee
           export SPLIT_TESTS=`cat 
/tmp/split_dtest_tests_j8_with_vnodes_final.txt`
-          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=32 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
+          set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes 
--num-tokens=16 --skip-resource-intensive-tests --log-cli-level=DEBUG 
--junit-xml=/tmp/results/dtests/pytest_result_j8_with_vnodes.xml -s 
--cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | 
tee /tmp/dtest/stdout.txt
     - store_test_results:
         path: /tmp/results
     - store_artifacts:
diff --git a/CHANGES.txt b/CHANGES.txt
index 6aa6343..59205c5 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 4.0-beta4
+ * Update default num_tokens to 16 and 
allocate_tokens_for_local_replication_factor to 3 (CASSANDRA-13701)
  * Remove use of String.intern() (CASSANDRA-15810)
  * Fix the missing bb position in ByteBufferAccessor.getUnsignedShort 
(CASSANDRA-16249)
  * Make sure OOM errors are rethrown on truncation failure (CASSANDRA-16254)
diff --git a/NEWS.txt b/NEWS.txt
index 987a6b6..a16670d 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -257,6 +257,14 @@ Upgrading
     - In cassandra.yaml, when using vnodes num_tokens must be defined if 
initial_token is defined.
       If it is not defined, or not equal to the numbers of tokens defined in 
initial_tokens,
       the node will not start. See CASSANDRA-14477 for details.
+    - CASSANDRA-13701 To give a better out of the box experience, the default 
'num_tokens'
+      value has been changed from 256 to 16 for reasons described in
+      
https://cassandra.apache.org/doc/latest/getting_started/production.html#tokens
+      'allocate_tokens_for_local_replication_factor' is also uncommented and 
set to 3.
+      Please note when upgrading that if the 'num_tokens' value is different 
than what you have
+      configured, the upgraded node will refuse to start. Also note that if a 
new node joining
+      the cluster has a different value for 'num_tokens' than the rest of the 
datacenter,
+      the new node will be responsible for a different amount of data than the 
rest of the datacenter.
 
 Deprecation
 -----------
diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml
index abfc063..5a67071 100644
--- a/conf/cassandra.yaml
+++ b/conf/cassandra.yaml
@@ -20,7 +20,10 @@ cluster_name: 'Test Cluster'
 # Specifying initial_token will override this setting on the node's initial 
start,
 # on subsequent starts, this setting will apply even if initial token is set.
 #
-num_tokens: 256
+# See 
https://cassandra.apache.org/doc/latest/getting_started/production.html#tokens 
for
+# best practice information about num_tokens.
+#
+num_tokens: 16
 
 # Triggers automatic allocation of num_tokens tokens for this node. The 
allocation
 # algorithm attempts to choose tokens in a way that optimizes replicated load 
over
@@ -37,7 +40,7 @@ num_tokens: 256
 
 # Replica factor is explicitly set, regardless of keyspace or datacenter.
 # This is the replica factor within the datacenter, like NTS.
-# allocate_tokens_for_local_replication_factor: 3
+allocate_tokens_for_local_replication_factor: 3
 
 # initial_token allows you to specify tokens manually.  While you can use it 
with
 # vnodes (num_tokens > 1, above) -- in which case you should provide a 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to