On 10 Jan 2013, at 01:30, Edward Capriolo <edlinuxg...@gmail.com> wrote:

> Column families that mix static and dynamic columns are pretty common. In 
> fact it is pretty much the default case, you have a default validator then 
> some columns have specific validators. In the old days people used to say 
> "You only need one column family" you would subdivide your row key into parts 
> username=username, password=password, friend-friene = friends, pet-pets = 
> pets. It's very efficient and very easy if you understand what a slice is. Is 
> everyone else just adding a column family every time they have new data? :) 
> Sounds very un-no-sql-like. 

Well, we for sure are heavily mixing static and dynamic columns; it's quite 
useful, really. Which is why upgrading to CQL3 isn't really something I've 
considered seriously at any point.

> Most people are probably going to store column names as tersely as possible. 
> Your not going to store "password" as a multibyte UTF8("password"). You store 
> it as ascii("password"). (or really ascii('pw')

UTF8('password') === ascii('password'), actually - as long as you're within 
ascii range, UTF8 and ascii are equal byte for byte. It's not until code points 
> 128 where you start getting multibytes.

Having said that, doesn't the sparse storage lend itself really well for 
further column name optimisation - like using a single byte to denote the 
column name and then have a lookup table?  The server could do a lot of nice 
tricks in this area, when afforded so by a tighter schema. Also, I think that 
compression pretty much does this already - effect is the same even if 
mechanism is different.

/Janne

Reply via email to