Question

My application will use hundered's of tables and each table can have millions(4-5) of Key-Value pairs. No relations are required between tables.

Following are the operations I perform on the tables.

  1. Which use's a perfect blend of In-Memory caching and Persistent storage, Failure tolerant and able to recover from failures.
  2. Update value for a particular key very frequently. A single thread does it for a particular key.
  3. Need sorted order of keys in a table based on value.(Frequently used)
  4. A few key-value pair inserts.

There are quite a few No Sql databases like Apache H-Base, Cassandra, Berkeley DB, Redis..etc Pls suggest me which works best for my use case. What are the system requirements ?

Was it helpful?

Solution

Which use's a perfect blend of In-Memory caching and Persistent storage, Failure tolerant and able to recover from failures.

Redis is currently probably the most popular (not only) K/V in-memory data store solution. To make it fault tolerant you can leverage it's master-slave replication feature.

Update value for a particular key very frequently. A single thread does it for a particular key.

Not sure what you mean by "a single thread does it for a particular key", but redis is designed to be very fast.

Need sorted order of keys in a table based on value.(Frequently used)

Redis supports sorted set data structure.

What are the system requirements?

As of amount of memory requirement I would recommend to read the doc on memory optimization.

OTHER TIPS

suggesting Redis p3. needs some redundancy of storage to solve keys in sorted set. but, still here one question: did you have so many memory?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top