I run a middle size community and some time ago I started to develop social capabilities such as follow, status update, wall etc.

For some reason i thought that Cassandra was the right tool for the job so I looked online for a Cassandra developer and I found a very talented one.

Unluckily in the midst of the development the dev left (too much jobs) and so I'm here with a very nice class, a very nice demo, but a lot of fears that I won't be able to handle basic things such as compaction, scaling etc.

My biggest fear is to go online with all this coolness and then having a site inaccessible for hours or days.

The mysql consultant (very talented too) keeps saying me that I should stick with Mysql which I know rather well and in case something's wrong we can manage.

In that case I should take the class made for cassandra and abstract it for Mysql.

My question is this: Should I find another dev/consultant and stick with Cassandra because for social things it is definitely the best tool for the job, or should I listen to the Mysql consultant and revert to Mysql?

About 15k login each day Average 20 actions per user Avg 6 followers x user

(These are current statistics, but of course I'd like to increase them as much as possible.)

  • 1
    Given your current statistics, MySQL can do it. But you will definitively have more problem to scale with MySQL than a solution like Cassandra.
    – deadalnix
    Commented Nov 22, 2011 at 10:27
  • 8
    @Tom -- this is not a Troll attracting "which is best" question. Its more go with a complex technology without the consultant, or, dump the work so far and use a simpler better understood technology. The poster is in a very specific situation and is genuinely unsure of his course of action. There is likely to be someone here who can give him valuable advice on his dilemma. Commented Nov 22, 2011 at 10:42
  • 1
    Sathia, I think MySQL will always be the tool of choice for a MySQL consultant. Same goes for a Casssandra consultant.
    – Raku
    Commented Nov 22, 2011 at 12:11
  • 2
    On an unrelated note, this would make a great nerd blues song. It could be called "NoSQL blues". I bet many people can relate to that :). Commented Nov 22, 2011 at 12:35
  • 6
    @tom -- this is not a which is better question! Its an "I have a difficult choice to make, can you help guide me" question. The poster has a very difficult choice of abandoning a substantial investment, or, playing it safe -- I am sure many readers here have faced a similar dilemma. This "close all questions" mania will be the death of this forum. Commented Nov 23, 2011 at 1:36

3 Answers 3


If you are familiar with MySQL and your site isn't of incredibly huge magnitude, I'd stay with MySQL for now until there are more resources to look into hiring people well-versed with technologies like Cassandra.

MySQL is a great choice for different functionalities due to its pluggable engine architecture. There's a transactional engine using fractal trees for storing its index structure called TokuDB. It scales incredibly well compared to InnoDB for example and has great additional functionality such as specifying multiple clustered indexes. It isn't free but it isn't expensive to the point it's not worth thinking about it. AFAIK, it's free up to 50gb of data used in production.

I've been using that engine after trying out HandlerSocket and I must say it's really, really an impressive piece of software. Since it's a drop in replacement for InnoDB, there is no learning curve. My suggestion is sticking with MySQL for the moment. Stats you mentioned aren't something MySQL can't handle.


I am not qualified to judge between MySQL and Cassandra. I know a little MySql but zero about Cassandra.

However I have seen many projects in similar situations. An investment has been made in a new technology which is not working out for whatever reason. At some stage, there is a crunch point where the decision hsa to be made on whether to make a humiliating about turn and abandon the new stuff, or, soldier on regardless and risk getting it in late over budget, and/or full of bugs.

My experience is that the projects which had the courage to admit defeat on the technology front and put the bushiness's priorities first are much more likely to be successful in the long run.

So my advice would be "Bite the bullet" and stick with MySql. After all MySql worked for Facebook right up until the 2147483646th picture of a cute puppy was posted.


I won't judge between MySQL and Cassandra for your situation. But it looks like you cannot find another talented Cassandra developer easily... So, unless you are doing experimental stuff and don't mind if it fails in production, go the safe way and continue with MySQL, you will have problems with MySQL as well as you will have problems with Cassandra but at least you will be able to manage them with MySQL.

If one day you cannot scale further with MySQL you will know exactly why and where the limits are, and at this moment you may choose another tool (Cassandra or not)...

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