Choosing Cassandra over others. Why? And some general doubts -Designing Instagram


It is given that "We need to store relationships between users and photos, to know who owns which photo. We also need to store the list of people a user follows. For both of these tables, we can use a wide-column datastore like Cassandra. "

  1. The point of why cassandra is chosen others is not clear? Why not other NoSQL dbs?

  2. For tinyurl problem, there is a table of userid and url that user created. There is a relation. But the text says "Since we anticipate storing billions of rows, and we don’t need to use relationships between objects – a NoSQL store like DynamoDB, Cassandra Riak is a better choice. " . Why is 1) and 2) give 2 different reason for using cassandra?

  3. What is the clear way of choosing NoSQL over SQL ? I read the blog post about the difference, but there is no concrete point that mentions which one to use over another.

  4. When to use cassandra, mongodb or other NoSQL store?