On Thu, May 22, 2014 at 4:31 AM, Phil Luckhurst < phil.luckhu...@powerassure.com> wrote:
> We have a 3 node 2.0.7 cluster with RF=3. At the moment these are > configured > to have the default 256 vnodes we'd like to try reducing that to see what > effect it has on some of our CQL query times. > Because you have RF=N, all nodes have all data. This means that it is actually irrelevant how many vnodes (or nodes) you have, you just get lose from using them at all. However to reduce the number of vnodes to a number that is ok in your case but also might be reasonable when you have RF != N, you can just : 1) get a list of tokens per node via a one-liner like this : nodetool info -T | grep Token | awk '{print $3}' | paste -s -d, 2) modify this list by removing however many tokens you want to get to the new number of vnodes 3) insert this list into the initial_token line of cassandra.yaml on each node [1] 4) rolling re-start nodes with auto_bootstrap:false [2] My *belief* is that you do not need a step 3.5 "nuke the system keyspace and reload schema, potentially with the entire cluster down", but it's possible that other nodes may remember your old vnodes unless you do. Test in a non-production environment, obviously. If the above is too complicated and you have the spare hosts, adding 3 new nodes and then decommissioning the old ones is a safe and simple way to achieve the same goal. =Rob [1] Note that I recommend this as a best practice for the use of vnodes, always populate initial_token. [2] https://engineering.eventbrite.com/changing-the-ip-address-of-a-cassandra-node-with-auto_bootstrapfalse/