Key-value stores (No SQL Databases)

A key - value store is a sub-category of **NoSQL Databases **(to start working with NoSQL Databases or to know what they are, refer : Working with NoSQL Databases)
They allow the application to store its data in a schema-less way. The data, however can be stored in a user-defined data type or object.

 

They can exist in the form of :

  • Eventually consistent key-value store
  • Key-value cache in RAM
  • Key-value stores on a rotating disk
  • Ordered Key-value stores
  • Multi-value Databases
  • Object Databases
  • RDF Databases
  • Tuple Stores
  • Hierarchical Key-value Stores

In this article I will be **focusing on Eventually consistent key-value stores **(with the others in future articles):
The various Eventually consistent key-value stores present are :

  • Apache Cassandra
    • Apache Cassandra is an open source distributed database management system designed to handle large amounts of data.
    • Highly decentralized, i.e. data spread out across many servers
    • No single point of failure due to the above point.
  • Couchbase Server
    • Open Source distributed database management system designed to handle both JSON documents and key/value pairs with sub millisecond latency
    • Comes with transparent sharding and no single point of failure with a single node type through the whole deployment. 
    • Provides availability through replication within clusters and across data centers.
  • Virtuoso Universal Server
    • Combines the functionality of Relational DBMS, Object Relational DBMS, Resource Description Framework, XML, Virtual Database, free-text and file server functionality in a single unit.
    • Implements the above mentioned functionality within one single server process through the use of multi-threading.
  • Dynamo
    • Dynamo is a proprietary key-value storage system.
    • Has properties of Distributed Hash Tables along with the traditional database properties.
  • Riak
    • Works on the principles of Amazon's version of Dynamo.
    • Used by large companies like AOL, Boeing, Symantec,etc.
  • Project Voldemort
    • A distributed Key-value store.
    • Neither a RDMS nor an OODBMS.
    • Still under development.
    • You can also contribute to it using GitHub.
  • Hibari (Japnese - Cloud Bird)
    • Distributed, Big Data Store.
    • Capable of storing up-to several hundred petabytes.