You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by osishkin osishkin <os...@gmail.com> on 2011/11/08 10:11:12 UTC

System keyspace behavior

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