I'm trying to figure out the correct way to restart a cluster when I want to make schema changes. I'm using Cassandra 0.7.0
So far I simply shutdown all the nodes in my simple test cluster (1-2 nodes at most), deleted all the data in /var/lib/cassandra, restarted and applied the new schema. Obviously this is not good practice, and now that I'm starting to test larger clusters this is not very practical. So I want to figure out the correct way to do this. I started reading in the mailing list and the Cassandra wiki, to have a better understanding of the System Keyspace, which as I understand is where the actual schema is stored for every node. But I feel I don't really understand it I have several questions I'd appreciate some answers to: 1. Is the system keyspace replicated on all the nodes, similarly to other keyspaces? if so, what happens when I insert a new node - the replication factor of the system keyspace increases every time? So how does a schema and its changes propagate across a cluster (for example, changing the replication factor of a keyspace), and what's the correct way to do it on a live cluster? or is it special in the sense that it only keeps internal data relevant to the local node, and the gossiping and (mysterious to me) "promulgation" process make sure schema is agreed upon between all nodes? 2. What happens to old data in a node, that no longer fits to the new schema (example: deleted keyspace)? should it be deleted manually (delete actual data files)? I apologize if these questions were answered before, I was not able to easily find answers. Thank you, Osi