What we have done to avoid creating multiple column families is to sort of
namespace the row key.  So if we have a column family of Users and
accounts: "AccountA" and "AccountB", we do the following:

Column Family User:
   "AccountA/ryan" : { first: Ryan, last: Lowe }
   "AccountB/ryan" : { first: Ryan, last: Smith}

etc.

For our needs, this did the same thing as having 2 "User" column families
for "AccountA" and "AccountB"

Ryan

On Wed, Dec 21, 2011 at 10:34 AM, Flavio Baronti
<f.baro...@list-group.com>wrote:

> Hi,
>
> based on my experience with Cassandra 0.7.4, i strongly discourage you to
> do that: we tried dynamical creation of column families, and it was a
> nightmare.
> First of all, the operation can not be done concurrently, therefore you
> must find a way to avoid parallel creation (over all the cluster, not in a
> single node).
> The main problem however is with timestamps. The structure of your
> keyspace is versioned with a time-dependent id, which is assigned by the
> host where you perform the schema update based on the local machine time.
> If you do two updates in close succession on two different nodes, and their
> clocks are not perfectly synchronized (and they will never be), Cassandra
> might be confused by their relative ordering, and stop working altogether.
>
> Bottom line: don't.
>
> Flavio
>
> Il 12/21/2011 14:45 PM, Rafael Almeida ha scritto:
>
>  Hello,
>>
>> I am evaluating the usage of cassandra for my system. I will have several
>> clients who won't share data with each other. My idea is to create one
>> column family per client. When a new client comes in and adds data to the
>> system, I'd like to create a column family dynamically. Is that reliable?
>> Can I create a column family on a node and imediately add new data on that
>> column family and be confident that the data added will eventually become
>> visible to a read?
>>
>> []'s
>> Rafael
>>
>>
>>
>>
>

Reply via email to