NoSQL refers to non-relational data stores that break with the history of relational databases and ACID guarantees. Popular open source NoSQL data stores include:
- Cassandra (tabular, written in Java, used by Cisco WebEx, Digg, Facebook, IBM, Mahalo, Rackspace, Reddit and Twitter)
- CouchDB (document, written in Erlang, used by BBC and Engine Yard)
- Dynomite (key-value, written in Erlang, used by Powerset)
- HBase (key-value, written in Java, used by Bing)
- Hypertable (tabular, written in C++, used by Baidu)
- Kai (key-value, written in Erlang)
- MemcacheDB (key-value, written in C, used by Reddit)
- MongoDB (document, written in C++, used by Electronic Arts, Github, NY Times and Sourceforge)
- Neo4j (graph, written in Java, used by some Swedish universities)
- Project Voldemort (key-value, written in Java, used by LinkedIn)
- Redis (key-value, written in C, used by Craigslist, Engine Yard and Github)
- Riak (key-value, written in Erlang, used by Comcast and Mochi Media)
- Ringo (key-value, written in Erlang, used by Nokia)
- Scalaris (key-value, written in Erlang, used by OnScale)
- Terrastore (document, written in Java)
- ThruDB (document, written in C++, used by JunkDepot.com)
- Tokyo Cabinet/Tokyo Tyrant (key-value, written in C, used by Mixi.jp (Japanese social networking site))
I'd like to know about specific problems you - the SO reader - have solved using data stores and what NoSQL data store you used.
Questions:
- What scalability problems have you used NoSQL data stores to solve?
- What NoSQL data store did you use?
- What database did you use prior to switching to a NoSQL data store?
I'm looking for first-hand experiences, so please do not answer unless you have that.