-1

My question may be very broad but I really need to ask this. I am planning to use a Key Value NoSQL Database and I am completely new in NoSQL world. I was going through Wikipedia Page https://en.wikipedia.org/wiki/Key-value_database

As per Wiki KV databases are categorized in 4 below categories.

KV – eventually consistent
KV – ordered 
KV – RAM 
KV – solid-state drive or rotating disk

I am not able to understand exact differences between them. If any one can explain it to me that would be great.

GD_Java
  • 1,359
  • 6
  • 24
  • 42

1 Answers1

1

This typology is interesting and maybe a little misleading. I can comment on some of these:

RAM - I've worked with Redis, so what I say will apply to that DB. Redis is designed to keep info in RAM, not on disc. Basically, if you turn it off the data is gone, so its more of a cache than a db. It Can be configured to preserve the data on disc, but its not designed to do so.

eventually consistent - I've worked with Cassandra. EC means that read-operations are not guaranteed to provide the most up-to-date value. They will eventually return the most up-to-date, but not immediately following the update. In Cassandra, you specify which level of consistency you need - and this effect the speed at which you will be able to read/write. less consistency == faster (its a tradeoff). Unlike redis, cassandra saves to disc.

solid-state drive or rotating disk - I've worked with couchbase. Couchbase saves to disc and is guaranteed to always be consistent (on read operations of keys, but not on views/indexes). so when you read a key from CB, you know its always the most up-to-date value. I think the name of this category is a little misleading. Other databases (like cassandra) also save to disc, so the name is a little off.

hope this helps.

FuzzyAmi
  • 7,543
  • 6
  • 45
  • 79
  • Good explanation and very helpful. Going further let say I decided to go with eventually consistent database. So I got like Dynamo, Cassandra and Riak. Now on which parameters I should be evaluating these databases and find best for me? – GD_Java Sep 28 '17 at 10:36