You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Aklin_81 <as...@gmail.com> on 2013/08/27 12:04:44 UTC

Why don't you start off with a "single & small" Cassandra server as you usually do it with MySQL ?

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. Renting out dedicated
servers with lots of RAM just from the beginning may be viable for very
well funded startups but not for all.

Re: Why don't you start off with a "single & small" Cassandra server as you usually do it with MySQL ?

Posted by Ben <be...@instaclustr.com>.
If you are comfortable with the Cassandra data model, you understand how a QUORUM read and write work at various replication factors and you think that the growth of your dataset will somewhat fast as Rob mentioned. Go for it!

Just remember to always benchmark performance and test what happens when your node / nodes go down so you understand how your app will break when the inevitable happens. The good thing about VPS/cloud providers is its very cheap and quick to test your plans which will save you a world of hurt in the future. 

Disclaimer: I work for Instaclustr and we provide managed Cassandra hosting, so the below advice is a little biased ;)

Your time is your most valuable thing, even when you don't have a ton of cash. Don't spend weeks trying to get something working on a cheap service provider that will save you $100 a month. Instead suck it up, pay the extra $100 a month for the alternative and move onto things more important things like customer acquisition.

Good luck

Ben Bromhead
Instaclustr | www.instaclustr.com | @instaclustr 

On 28/08/2013, at 3:36 AM, Robert Coli <rc...@eventbrite.com> wrote:

> On Tue, Aug 27, 2013 at 3:04 AM, Aklin_81 <as...@gmail.com> wrote:
> 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 ?
> 
> If you have enough data to fit on a single computer, or two computers, and only need one or two copies of it for redundancy/availability... you probably don't have enough data to need something like Cassandra. Vertically scaling RDBMS or in-memory k/v stores to significant size is a tried and true technique. If you may eventually have more data than can fit on a single very powerful computer, Cassandra or something like it may be indicated. It really starts to shine once you have N>=3, because then you can have RF>=3, which allows you to use QUORUM reads and writes for consistency. But because Cassandra is designed for horizontal scaling (and because it runs in the JVM...) it is natural that it will slightly underperform from the perspective of vertical scaling.
> 
> =Rob


Re: Why don't you start off with a "single & small" Cassandra server as you usually do it with MySQL ?

Posted by Robert Coli <rc...@eventbrite.com>.
On Tue, Aug 27, 2013 at 3:04 AM, Aklin_81 <as...@gmail.com> wrote:

> 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 ?
>

If you have enough data to fit on a single computer, or two computers, and
only need one or two copies of it for redundancy/availability... you
probably don't have enough data to need something like Cassandra.
Vertically scaling RDBMS or in-memory k/v stores to significant size is a
tried and true technique. If you may eventually have more data than can fit
on a single very powerful computer, Cassandra or something like it may be
indicated. It really starts to shine once you have N>=3, because then you
can have RF>=3, which allows you to use QUORUM reads and writes for
consistency. But because Cassandra is designed for horizontal scaling (and
because it runs in the JVM...) it is natural that it will slightly
underperform from the perspective of vertical scaling.

=Rob

Re: Why don't you start off with a "single & small" Cassandra server as you usually do it with MySQL ?

Posted by Tony Anecito <ad...@yahoo.com>.
I agree. I ran into a issue where I ran a single instance and the server was shut down (without stopping cassandra) and for some reason I lost the database schema. I was back up quickly only because I had scripts to create the schema and a backup of the data to load once the schema was created.

If you are part of a startup that has money I would highly recommend not only more nodes beyond one which what was suggested but multiple environments such as dev and test that also was a time/risk saver for me.

Good luck!
-Tony




________________________________
 From: Mina Naguib <mi...@adgear.com>
To: user@cassandra.apache.org 
Sent: Tuesday, August 27, 2013 10:11 AM
Subject: Re: Why don't you start off with a "single & small" Cassandra server as you usually do it with MySQL ?
 



On 2013-08-27, at 6:04 AM, Aklin_81 <as...@gmail.com> wrote:

> 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. Renting out dedicated servers with lots of RAM just from the beginning may be viable for very well funded startups but not for all.

Yes you can, just make sure you do your homework, evaluate and measure things.

MySQL is a row-oriented RDBMS.  Cassandra is a distributed columnar key-value store. While both are "databases", they serve different use cases.

I think it's an illusion that a startup can "get by" on just a single virtual instance somewhere.  It's certainly doable, but very risky  Doing that means that if the server catches on fire, your startup's data and other IP is lost.

Any reasonable architecture in this day and age must account for such disasters.  Cassandra is built around failure-is-a-norm, and this is handled by encouraging multiple servers and increased replication factor as a default.  You can certainly scale that back down to a single-machine if you want, provided you understand what risks you're taking.

Performance-wise, cassandra's quite fast even in a single-node scenario.  Again, take that at face value and do your own benchmarks using your use cases and workloads.

Re: Why don't you start off with a "single & small" Cassandra server as you usually do it with MySQL ?

Posted by Mina Naguib <mi...@adgear.com>.

On 2013-08-27, at 6:04 AM, Aklin_81 <as...@gmail.com> wrote:

> 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. Renting out dedicated servers with lots of RAM just from the beginning may be viable for very well funded startups but not for all.

Yes you can, just make sure you do your homework, evaluate and measure things.

MySQL is a row-oriented RDBMS.  Cassandra is a distributed columnar key-value store. While both are "databases", they serve different use cases.

I think it's an illusion that a startup can "get by" on just a single virtual instance somewhere.  It's certainly doable, but very risky  Doing that means that if the server catches on fire, your startup's data and other IP is lost.

Any reasonable architecture in this day and age must account for such disasters.  Cassandra is built around failure-is-a-norm, and this is handled by encouraging multiple servers and increased replication factor as a default.  You can certainly scale that back down to a single-machine if you want, provided you understand what risks you're taking.

Performance-wise, cassandra's quite fast even in a single-node scenario.  Again, take that at face value and do your own benchmarks using your use cases and workloads.