We have 2 - 3 installations with single node Cassandra. They working fine, no problems there,
except if Cassandra stops, everything stops. Even on one node, we usually "rolling" 500-600 GB data, sometimes even 2-3 TB. We use mostly standard configuration with almost no changes there.

Here are some considerations for bloom filter config, but they are for old Cassandra version:

https://whoisrequest.com/ - this uses single node Cassandra with about 600 GB data.

We found that it works much better and faster than MySQL. We did test Postgres, but it was terribly slow. We were in big hurry so we did not analyze why Postgres was so slow.

Another lesson we learned - when you do single node, put only Cassandra on single server. Keep webserver / client on different server.

In our latest project we did use TokuDB. It is something like MySQL "plugin". We know Toku from 5-6 years, but until recently it was paid software with free demo. TokuDB is currently GPL.

Here is what we researched 5 years ago:


We also did test MongoDB. It is quite fast, but it have been eaten our HDD very fast.

So little recap what we have:

- Cassandra single nodes - 600-700 GB data
- MySQL with MyISAM - 30-40 GB data
- TokuDB - 100 GB data (this equals to 500 GB MyISAM / InnoDB).

Feel free to contact me if you have non Cassandra related questions.

On Sat, Jan 23, 2016 at 7:10 AM, Anuj Wadehra <anujw_2003@yahoo.co.in> wrote:
And I think in a 3 node cluster, RAID 0 would do the job instead of RAID 5 . So you will need less storage to get same disk space. But you will get protection against disk failures and infact entire node failure.


On Sat, 23 Jan, 2016 at 10:30 am, Anuj Wadehra
I think Jonathan said it earlier. You may be happy with the performance for now as you are using the same commitlog settings that you use in large clusters. Test the new setting recommended so that you know the real picture. Or be prepared to lose some data in case of failure.

Other than durability, you single node cluster would be Single Point of Failure for your site. RAID 5 will only protect you against a disk failure. But a server may be down for other reasons too. Question is :Are you ok with site going down?

I would suggest you to use hardware with smaller configuration to save on cost for smaller sites and go ahead with a 3 node minimum.That ways you will provide all the good features of your design irrespective of the site. Cassandra is known to work on commodity servers too. 


On Sat, 23 Jan, 2016 at 4:23 am, Jack Krupansky
You do of course have the simple technical matters, most of which need to be addressed with a proof of concept implementation, related to memory, storage, latency, and throughput. I mean, with a scaled cluster you can always add nodes to increase capacity and throughput, and reduce latency, but with a single node you have limited flexibility.

Just to be clear, Cassandra is still not recommended for "fat nodes" - even if you can fit tons of data on the node, you may not have the computes to satisfy throughput and latency requirements. And if you don't have enough system memory the amount of storage is irrelevant.

Back to my original question:
How much data (rows, columns), what kind of load pattern (heavy write, heavy update, heavy query), and what types of queries (primary key-only, slices, filtering, secondary indexes, etc.)?

I do recall a customer who ran into problems because they had SSD but only a very limited amount so they were running out of storage. Having enough system memory for file system caching and offheap data is important as well.

-- Jack Krupansky

On Fri, Jan 22, 2016 at 5:07 PM, John Lammers <john.lammers@karoshealth.com> wrote:
Thanks for your response Jack.

We are already sold on distributed databases, HA and scaling.  We just have some small deployments coming up where there's no money for servers to run multiple Cassandra nodes.

So, aside from the lack of HA, I'm asking if a single Cassandra node would be viable in a production environment.  (There would be RAID 5 and the RAID controller cache is backed by flash memory).

I'm asking because I'm concerned about using Cassandra in a way that it's not designed for.  That to me is the unsettling aspect.

If this is a bad idea, give me the ammo I need to shoot it down.  I need specific technical reasons.



On Fri, Jan 22, 2016 at 4:47 PM, Jack Krupansky <jack.krupansky@gmail.com> wrote:
Is single-node Cassandra has the performance (and capacity) you need and the NoSQL data model and API are sufficient for your app, and your dev and ops and support teams are already familiar with and committed to Cassandra, and you don't need HA or scaling, then it sounds like you are set.

You asked about risks, and normally lack of HA and scaling are unacceptable risks when people are looking at distributed databases.

Most people on this list are dedicated to and passionate about distributed databases, HA, and scaling, so it is distinctly unsettling when somebody comes along who isn't interested in and committed to those same three qualities. But if single-node happens to work for you, then that's great.

-- Jack Krupansky