Live data from Hacker News

Cassandra vs MongoDB vs CouchDB vs Redis vs Riak comparison

kkovacs.eu

81–90 of 96 posts

Re: Cassandra vs MongoDB vs CouchDB vs Redis vs Riak comparison

#81
post #16

Under protocols you may want to specify MongoDB's as BSON and Cassandra's as Thrift. That would be more helpful than "binary/custom". Updated: Also Redis's main selling point is it's extensive data structure/operations support. "Blazingly fast" really depends on what your workload is and what you're comparing it against.

Protocols: great idea, thanks man, amended it! Blazing fast: I mean compared to the other four.

Sorted sets. I mean, c'mon. That's worth the price of admission right there.

Re: Cassandra vs MongoDB vs CouchDB vs Redis vs Riak comparison

#82
post #53

I like this article: while it is for sure not the definitive guide to NoSQL, it is a short description mostly about facts that people new to the field can use to get an idea about what a good candidate could be for initial experimentation, given a defined problem to solve. That said I think that picking the good database is something you can do only with a lot of work. Picking good technologies for your project is ha…

Picking good technologies for your project is hard work

This is probably the most important and relevant point I've seen in a while. Architects should take note...

Re: Cassandra vs MongoDB vs CouchDB vs Redis vs Riak comparison

#83
post #70

Earlier quoted context omitted.

"Cassandra requires all nodes to be restarted to apply a schema change, which can be quite a big deal." That's no longer true. In 0.7, keyspaces and column families may be created, altered, or dropped live.

I thought it might have been fixed by now. Anyway, you still need a schema with Cassandra.

Not in the same sense as an SQL database. You can freely add columns and rows, just not Column Families or Keyspaces. This is because a KS+CF combo is stored in it's own file, in a certain order, so that it can be efficiently traversed using natural ordering. If you don't have this need and just need a flat K/V database, you can use a single KS+CF for everything.

Re: Cassandra vs MongoDB vs CouchDB vs Redis vs Riak comparison

#84

So if Cassandra writes are much faster than reads, why would Reddit go that route? Their comment server is consistently breaking on them, and it would seem that a sub-optimal choice of db might be partly to blame.

It's not as lop-sided as this article might have you believe and has largely been mitigated as of late. This is because Cassandra uses read repair, which is a big component of it's strategy to make both reads and writes to scale linearly while also ensuring durability.

What is your suggestion otherwise? Any distributed database that is going to be inexpensive, performant, scalable, and durable will need to use some kind of quorum read repair system. Riak, Voldemort, and Dynamo all use read repair with high levels of production success.

Re: Cassandra vs MongoDB vs CouchDB vs Redis vs Riak comparison

#85

You mention that some of these solution could be used in the Financial industry. I would be cautious of using these, especially since some are eventually consistent. If you are just tracking data these may be fine though.

Most of the financial sector is eventually consistent. I'm not just talking about traditional banks, I'm also talking about the markets as well. Most revolve around batch settlement processes where consistency essentially occurs on a schedule. While at the micro level, the components of these systems are somewhat built on ACID databases, that becomes irrelevant when as a system, it functions as eventually consistent. Dynamo itself is based on the fully ACID BerkeleyDB at the node level.

Re: Cassandra vs MongoDB vs CouchDB vs Redis vs Riak comparison

#87

Worth adding HBase? Much below Stolen from their overview page (All needs to be confirmed): http://hbase.apache.org/ WRITTEN IN: Java MAIN POINT: Hadoop Database LICENSE: Apache PROTOCOL: A REST-ful Web service gateway This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters of commodity hardware. HBase is an open-source, distributed, versioned, column-oriente…

I disagree with the notion of "No single point of failure" with HBase. While it's true that they got rid of the old hard SPOFs, if a data ("region") node fails, there's a decent chance you lost some data (there's a short period of time where data hasn't been replicated to HDFS and is ONLY only the master for that region) at least until you can bring that node back up (hope you've got reliable RAID/backups or it wasn't destroyed). HBase is a CP system.

There's also a region master re-election/recovery period that depends on the size of the database, network bandwidth, load, etc. It can be anywhere from 30 seconds to tens of minutes. An outage of a region node makes it's key range inaccessible. While that might not be a problem for some, especially in read-only situations, I can think of many applications where that would effectively translate into a total outage.

Re: Cassandra vs MongoDB vs CouchDB vs Redis vs Riak comparison

#88

Earlier quoted context omitted.

With AppEngine at Google, MongoDB at Disqus, Cassandra at Facebook and Redis at Github you can definitely say that SQL databases are one of many options available today and don't dominate like they did 5 years ago.

if i'm not mistaken, the majority of those organizations still rely heavily on relational datastores, except in the case of exceptional workloads. in addition, i believe facebook has since migrated away from cassandra to the hadoop stack for their messaging platform, though they primarily use mysql (or its successors). SQL is being replaced in niches that strain its model. elsewhere, it remains steadfast.

After using MongoDB with Mongoid I strongly disagree with the premise that over the next 5 years SQL databases will be the default and NoSql limited to certain niches. And I know SQL better than most. Alter table ... or db:migrate no more for me.

Re: Cassandra vs MongoDB vs CouchDB vs Redis vs Riak comparison

#89
post #45
post #42

Interesting and useful. One major feature differentiator is something it doesn't really talk about, though - how conducive is each system to Massive Data? For example, he kind of has a bone to pick with Cassandra, which is probably justified. But from what little I know, one of the features of Cassandra is that it's designed to scale pretty much to infinity. That may be true of a couple of the others, but for some (l…

Good point, and it's not there since I only wanted to speak from experience; especially with rumors of Cassandra scaling problems at Reddit and Digg. But sure thing, "infinite" scaling is probably best done with the Dynamo-like stuff like Cassandra and/or RIAK.

Reddit runs Cassandra with just a few nodes. Cassandra scales up well, but doesn't scale down as well:

http://www.reddit.com/r/announcements/comments/c2spc/reddits...

Post reply on HN