For any website just starting out, the load initially is minimal & grows with a slow pace initially. People usually start with their MySQL based sites with a single server(***that too a VPS not a dedicated server) running as both app server as well as DB server & usually get too far with this setup & only as they feel the need they separate the DB from the app server giving it a separate VPS server. This is what a start up expects the things to be while planning about resources procurement.
But so far what I have seen, it's something very different with Cassandra. People usually recommend starting out with atleast a 3 node cluster, (on dedicated servers) with lots & lots of RAM. 4GB or 8GB RAM is what they suggest to start with. So is it that Cassandra requires more hardware resources in comparison to MySQL, for a website to deliver similar performance, serve similar load/ traffic & same amount of data. I understand about higher storage requirements of Cassandra due to replication but what about other hardware resources ?
Can't we start off with Cassandra based apps just like MySQL. Starting with 1 or 2 VPS & adding more whenever there's a need ?
Edit:
I don't want to compare apples with oranges. I just want to know how much more dangerous situation I may be in when I start out with a single node VPS based cassandra installation Vs a single node VPS based MySQL installation. Difference between these two situations. Are cassandra servers more prone to be unavailable than MySQL servers ? What is bad if I put tomcat too along with Cassandra as people use LAMP stack on single server.
Cassandra hardware recommendations are usually for people who will have 100's of GB of data. You can get away with having less if you don't have a lot of data. You can tune the JVM down to only using a 512 MB or 1 GB heap in the cassandra-env.sh.
Yes you can. But, if you want to get the most out of Cassandra you definitely want to start with at least two servers, three if you need be able to use QUORUM for consistency, and still support one node going down.
While I have never run a production system on servers that small, I have run a continuously available QA cluster on VM's with 4 GB RAM and 2 Cores. And for small data sizes I have seen others run clusters on as little as 2 GB of RAM.
The nice thing about Cassandra is that when you do need more, it is very easy to add new nodes to the cluster. And if you want to move your cluster to more powerful hardware, instead of just adding more, you can easily add the new bigger boxes, then remove the older small ones.
Update:
Here is a recent blog post about getting Cassandra to run with a 64 MB heap: