[Advanced DB concepts] Is cassandra really a column DB

When I first time read about column DBs, I understood that column DBs are those where all values of a column are stored together in consecutive memoery locations. And at many places I also read that cassandra is the most popular column DB. So good So far

But then few days back I started reading the book called cassandra the definitve guide, and bam, I realised cassandra doesnt even store data column wise, its a row store, and then a lot of questions came to my mind
Is cassandra really a column DB ?
What does even a column DB mean ?
Does it mean storing columns consecutively in memory ?
In that case does Cassandra really store it's column family column wise ?
Are columns DBs non relational ?

I was having all these sorts of confusions and I then I found this gem of an article
sharing it here because many people might have this similar confusion
Because cassandra is touted as the poster child for column db but in reality its not a column DB
But again before knowing that you need to know what do we call a column db, what are the specification for a column DB
there are very subtle conceptual points here, if you pick those up then you will be very comfortable with all these jargons

http://dbmsmusings.blogspot.com/2010/03/distinguishing-two-major-types-of_29.html
https://community.datastax.com/questions/6138/is-cassandra-column-oriented.html
https://stackoverflow.com/questions/25441921/is-cassandra-a-column-oriented-or-columnar-database/25447422

After going through different articles, this is what I think

  • Its misleading to say cassandra is a column store if you are not also explaining what is the definition for column store
  • If we say column store means the data model is designed in a way where columns are first class citizen, then yes cassandra is a column db
  • But if we define column DBs as those DBs where columns are stored consecutively in memory, then no its not
    Do post you opinions

Do upvote this post if you think its insightful :)

Comments (2)