zengr
zengr

Reputation: 38899

What are the important factors to consider while selecting a NoSQL solution?

I am evaluating (no specific use cases), just trying to understand the NoSQL (non-relational) solutions in breadth.

So, I pretty much understand Dynamo in term of (taken from Dynamo paper):

  1. Partitioning --> Consistent hashing
  2. High availability --> Vector clocks
  3. Handling temp failures --> Sloppy quorum
  4. Failure recovery --> Merkel Trees
  5. Membership and failure detection --> Gosisp protocol

My question is, what are the other ways of each of these 5 (may be more "problems") are dealed with in other solutions like:

  1. Bigtable based systems,
  2. Just key-value storage like Redis and BDB.
  3. other hybrid systems.

Upvotes: 2

Views: 291

Answers (2)

Andrew McKnight
Andrew McKnight

Reputation: 644

Other important issues:
1) Secondary Indices: If you don't need them then you can probably find an acceptable way to use most datastores.
2) Multiple Data Centers: If you're dealing with multiple data centers then you may not be able to use a master-slave architecture. Multi-master systems are much more complicated.
3) Transactions: If you need to make transactions (multi-step operations that need to act like they're one step), you may have difficulties with many non-relational systems because they tend to sacrifice more than they strictly need to with respect to ACID (atomicity, consistency, isolation, and durability).

Upvotes: 1

anon
anon

Reputation: 4618

A wonderful place to learn about this is to read about the CAP theorem:

http://www.julianbrowne.com/article/viewer/brewers-cap-theorem

http://blog.nahurst.com/visual-guide-to-nosql-systems

Upvotes: 0

Related Questions