How to decide which NoSQL technology to use?

Viewed 12923
6 Answers

MongoDB

Scalability: Highly available and consistent but sucks at relations and many distributed writes. It's primary benefit is storing and indexing schemaless documents. Document size is capped at 4mb and indexing only makes sense for limited depth. See http://www.paperplanes.de/2010/2/25/notes_on_mongodb.html

Best suited for: Tree structures with limited depth

Use Cases: Diverse Type Hierarchies, Biological Systematics, Library Catalogs

Neo4j

Scalability: Highly available but not distributed. Powerful traversal framework for high-speed traversals in the node space. Limited to graphs around several billion nodes/relationships. See http://highscalability.com/neo4j-graph-database-kicks-buttox

Best suited for: Deep graphs with unlimited depth and cyclical, weighted connections

Use Cases: Social Networks, Topological analysis, Semantic Web Data, Inferencing

HBase

Scalability: Reliable, consistent storage in the petabytes and beyond. Supports very large numbers of objects with a limited set of sparse attributes. Works in tandem with Hadoop for large data processing jobs. http://www.ibm.com/developerworks/opensource/library/os-hbase/index.html

Best suited for: directed, acyclic graphs

Use Cases: Log analysis, Semantic Web Data, Machine Learning

Related