cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Cassandra Wiki] Update of "DataModel" by JonathanEllis
Date Mon, 07 Mar 2011 15:14:36 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Cassandra Wiki" for change notification.

The "DataModel" page has been changed by JonathanEllis.
The comment on this change is: r/m link to WTFIASC; it's too dated now.
http://wiki.apache.org/cassandra/DataModel?action=diff&rev1=11&rev2=12

--------------------------------------------------

  Cassandra supports pluggable partitioning schemes with a relatively small amount of code.
 Out of the box, Cassandra provides the hash-based RandomPartitioner and an OrderPreservingPartitioner.
 RandomPartitioner gives you pretty good load balancing with no further work required.  OrderPreservingPartitioner
on the other hand lets you perform range queries on the keys you have stored, but requires
choosing node tokens carefully or active load balancing.  Systems that only support hash-based
partitioning cannot perform range queries efficiently.
  
  = Modeling your application =
- Unlike with relational systems, where you model entities and relationships and then just
add indexes to support whatever queries become necessary, with Cassandra you need to think
about what queries you want to support efficiently ahead of time, and model appropriately.
 Since there are no automatically-provided indexes, you will be much closer to one !ColumnFamily
per query than you would have been with tables:queries relationally.  Don't be afraid to denormalize
accordingly; Cassandra is much, much faster at writes than relational systems.
+ Unlike with relational systems, where you model entities and relationships and then just
add indexes to support whatever queries become necessary, with Cassandra you need to think
about what queries you want to support efficiently ahead of time, and model appropriately.
 Since there are no automatically-provided indexes, you will be much closer to one !ColumnFamily
per query than you would have been with tables:queries relationally.  Don't be afraid to denormalize
accordingly; Cassandra is much, much faster at writes than relational systems, without giving
up speed on reads.
- 
- Arin Sarkissian of Digg has an excellent post detailing [[http://arin.me/blog/wtf-is-a-supercolumn-cassandra-data-model|Cassandra's
data model]] with highly illustrative examples.
  
  See the CassandraLimitations page for other things to keep in mind when designing a model.
  

Mime
View raw message