I am evaluating Cassandra and playing with some data model ideas. One model I’m thinking about is to take privacy concerns into account, such that interleaving tenant data in the same column family is not allowed.
Another reason I can think to keep the data for different tenants in separate CFs is to simplify the data model, such that I can avoid using SuperColumns to categorize the data. I may have lots of columns and I don’t want to deserialize all of them when I have to drill into a super column.
I expect one solution is to separate each tenant into their own key space and use separate connection pools for each. I expect another solution would be to create one column family per tenant.
Since adding/removing CFs requires editing the storage-conf file and restarting Cassandra to pick up the change, I’m wondering if there’s a better way to implement this model? Alternatively, is there a mechanism by which I can tell Cassandra to refresh/reload it’s config file, without disrupting the work it’s doing?