Cassandra at Twitter Today
engineering.twitter.com
engineering.twitter.com
In my experience this was not the case -- after quite a lot of prototyping, we moved away from Cassandra. It scales brilliantly, but its query time has a pretty solid floor that I was unable to shift to speeds approaching what I needed: it never went up, but nor did it go down.
Of course, I am a total noob at distributed systems -- perhaps it's simple to get it to go faster, but Twitter's move away suggests not. (Facebook's use-case is quite different, and in any case they still use an awful lot of MySQL too) The other systems they cite as currently using Cassandra in production are nowhere near the scale of the primary tweet store.
As for query time, maybe your problem was I/O throughput? I've read Cassandra can be really slow if you have poor I/O throughput. This happens a lot in the cloud, where I/O is usually shared.
[1] http://blog.twitter.com/2010/02/measuring-tweets.html
Edit: As of mid June, it was about 65 million per day.
http://blog.twitter.com/2010/06/big-goals-big-game-big-recor...
Don't use what others are using or suggesting. Download a few stores, take your time to understand how they work, and then do your pick. Time consuming? Not as time consuming as starting a big project with a system that is not a good fit.
2. Pool read-performance is also due to the poor local storage implementation.
3. The local storage, indexing and persistence structures are not stable. They need to be re-designed /re-implemented. If Twitter move data to current Cassandra, they should do another move later for a new local storage, indexing and persistence structure.
4. There are many good techniques in Cassandra and other open-sourced projects (such as Hadoop, HBase) etc. But, they are not ready for production. Understand the detail of these techniques and implement them in your projects/products.
Schubert Zhang
Twitter :
- can't find my @ replies. Shows zero. Not correct.
- has been showing 2-5 copies of each message in my own history for the past week
- gave me 30 error screens in a row, then an hour later on their status blog "we've noticed elevated rates of errors". Like a constant stream of errors is normal for them, but elevated rates - time to do something!
- can't get their widgets/external code straight, redirects people to twitter.com/undefined and twitter.com/null
Etc, etc. Give me a break. Twitter is hopeless, and has always been hopeless in the tech department.
Not sure about that. They also said they are using it for analytics. Actually, since Cassandra is persistent to disks, using it as a memcached doesn't sound right.
I for one whole-heartedly agree with their decision. Considering the issues they've had recently with their internal networks, it would be insanity to move the majority of their stack to a new technology.
MySQL scales just fine, provided you are good at partitioning and at least it's a known quantity.