Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to decide which NoSQL technology to use? [closed]

What is the pros and cons of MongoDB (document-based), HBase (column-based) and Neo4j (objects graph)?

I'm particularly interested to know some of the typical use cases for each one.

What are good examples of problems that graphs can solve better than the alternative?

Maybe any Slideshare or Scribd worthy presentation?

like image 932
Chiron Avatar asked Sep 17 '10 13:09

Chiron


People also ask

Which is best suited for NoSQL?

NoSQL databases are often better suited to storing and modeling structured, semi-structured, and unstructured data in one database.

When NoSQL should not be used?

NoSQL also lacks in the ability to perform dynamic operations. It can't guarantee ACID properties. In such cases like financial transactions, etc., you may go with SQL databases. You should also avoid NoSQL if your application needs run-time flexibility.


2 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

like image 166
b7kich Avatar answered Oct 07 '22 15:10

b7kich


I know this might seem like an odd place to point to but, Heroku has recently gone nuts with their noSQL offerings and have an OK overview of many of the current projects. It is in no way a Slideshare press but it will help you start the comparison process:

http://blog.heroku.com/archives/2010/7/20/nosql/?utm_medium=email&utm_source=EmailBlast&utm_content=619506254&utm_campaign=HerokuSeptemberNewsletter-VersionB&utm_term=NoSQLHerokuandYou

like image 25
Braden Avatar answered Oct 07 '22 16:10

Braden