2

To give some context, I am from a small start up (4 team members) and we work in the education space.

We've developed an e-learning platform that several schools are already using. We currently have around 20k page requests to the platform coming in a day.

We want to start gathering every bit of data we can about our users so that we can start doing some data analysis and learning from our data.

I've spent the last couple of weeks learning up about Cassandra as I think it will be a great solution for gathering all this user data and being able to read it quickly. I've also learned that to do things like SUM and AVG queries, I'll have to use something like Hadoop to be able to run mapreduce operations on the data as Cassandra doesn't allow for this sort of querying.

Our current MySQL data base is VERY small (150mb or so). With that in mind, is it worth going down the Cassandra road yet?

I'm beginning to wonder if I'm looking too far ahead, so far as scalability is concerned. An option I have been considering is to simplify things and begin with ElasticSearch, storing all our user event data and allowing us to easily search it without having to use something like Hadoop.

The main question: Is Cassandra going to be suitable for us yet at such a small scale? Or should we consider a simpler noSQL store like ElasticSearch?

2

If you foresee that moving to Cassandra is definitely in your future, it will be easier to do while your dataset is still small and manageable. Also, as you learn and get a feel for Cassandra, a small dataset is a better one to make mistakes on (and thus, easier to correct them). That way your data model is solid by the time your dataset gets big, and that's when it really matters. And IMHO, there is no such thing as "too small" for Cassandra.

One of our applications uses Cassandra and ElasticSearch in prod. Based on those experiences, I would offer some caution about using ElasticSearch as a persistent datastore. We've seen it lose writes fairly often. Have a read through this discussion on Quora, appropriately titled: Why should I NOT use ElasticSearch as my primary datastore? That being said, it works great as a search engine.

  • This is a very helpful answer. I was leaning more towards Cassandra as I've got a lot of confidence in it as a system. Your point on the data model management is great, thanks! – Sneaksta Sep 23 '14 at 22:47
  • 1
    +1 for the caution on ElasticSearch as a persistent data storage. It is nowhere near robust enough. I run ElasticSearch to facilitate text searches in Oracle database and I find that indexes will have to be repopulated from the primary databases after transaction log corruption, a failed cluster initalization or mysteriously lost updates. – Roy Dec 10 '14 at 18:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.