Most NoSQL DBs Are Not Scalable

Mar 29, 2010

Every blog post in this (stupid) debate seems to equate NoSQL with scalability. You either do or don't have to be google to use NoSQL depending on who is talking. It's time to stop doing that.

Here are the well-known NoSQL dbs that are not scalable (at least, not differently than MySQL):

  • MongoDB (Some form of horizontal scalability is planned but not yet production ready. By far, most users of mongo are not using it for its scalability promises.)
  • CouchDB
  • Redis
  • Tokyo cabinet
  • MemcacheDB
  • Berkeley DB

Here are the well-known NoSQL dbs that are scalable:

  • Cassandra
  • Riak
  • Voldemort

At this point, I'd say that couch, mongo, redis, and cassandra are by far the most well-known products in the space. Of those solutions, only one is scalable. So, people must be using NoSQL for other reasons.

In fact, nearly each of the databases I listed above has its own specific reason somebody might want to use it. Redis has a rich set of data structures; it can be used as a queue server, for example. Mongo is document oriented, so schema evolutions are very natural, you don't really need an ORM, and very rich queries are supported against collections (among other things). Couch shares some of the advantages of mongo, plus it has very nice master-master replication support (not doing it justice, but that's not the point). Cassandra is horizontally scalable. I could go on, but I think I've made my point.

People use NoSQL for all kinds of different reasons. Of all of the people using NoSQL dbs, most of them are probably not motivated by scalability. So, let's stop saying NoSQL when we mean scalable database. It only obscures the discussion.

Update: The consensus in the comments here seems to be that this article is missing substantiation. So, I follwed up with another article titled: What does “scalable database” mean?.