What does NoSQL mean?

NoSQL stands for NO SQL which is a language used in relational database management systems. NoSQL is a shell based RDMS.

What kinds of databases does it reference?

NoSQL references relational database management systems and the fact that it is usually not a RDMS.

Why is there a move these days toward non-relational databases?

  • Complexity: Most systems are either too large and expensive for small projects or do not posses the shell-level of control.
  • Portability: The data can be easily ported to other types of machines and files can be redirected at any point. The NoSQL software can run on any UNIX machine.
  • Unlimited: There are no arbitrary limits on NoSQL.
  • Useability: Because it’s easy to understand, it can be something for non-computer people to use.

What is a "key-value store" ?

The simplest of NOSQL databases. Simpest meaning the API, not the implementations, which can be complex. It allows you to store values by key and it is easy to use and easy to scale.

MongoDB

MongoDB.org

MongoDB is short for humongous, and is a scalable open source high performance database. It was designed to handle document style organization and storage.

It was developed by a company called 10gen back in 2007, as they were working on a platform service for Google App Engine. It’s purpose is to bridge the gap between key-value stores and relational databases which produces a combination of high scalability and rich functionality.

After being created in 2007, it was open sourced in 2009 as a stand alone product.

CASE STUDY:

MTV Content Management

How MTV Leverages MongoDB for CMS

Jeff Yemin, MTV Networks

Read More about this Case Study

CASE STUDY:

DISNEY Gaming

A Year with MongoDB: Running Operations to Keep the Game Magic Alive

Curt Stevens, Disney Interactive Media Group

Read More about this Case Study

They are going to introduce an Aggregation framework which will allow people to group by sums and averages using sql on relational databases. They are also working on a full text search capability. They are also most likely going to address the issues they currently have more granular locking, make the data smaller without impacting performance, and TTL collection.

Read More on the Future of MongoDB

Cassandra

See Cassandra.Apache.org

Cassandra is short for Apache Cassandra. It is an open source distributed database management system from the top level of Apache and can handle massive amounts of data spread out onto servers making it highly available. It uses NoSQL and a structured key-value store with tunable consistency.

It was originally developed for Facebook and was used for the inbox search feature. It is a hybrid between a column oriented DBMS and a row oriented store.

it was developed by Facebook to power the inbox search feature. It was released as an open source project on Google Code in 2008. In 2009, it was an Apache Incubator project. In 2010, it was designated a top-level project. It was abandoned by Facebook when they created facebook messenger.

CASE STUDY:

Expedias Hotel Rates

Read More about this Case Study

CASE STUDY:

Adobe’s Audience Manager

Read More about this Case Study

New versions will contain features like data compression, background data compacting, improved use of server working memory, and overall improved performance.

Amazon's SimpleDB

Amazon Web Services

Amazon SimpleDB is a non-relational database storage option which is easily accessible and extremely flexible. It acts to offload the work of database administration. It manages and creates multiple geographically distributed replicas of data automatically which enables high availability and data durability. It is written in Erlang.

Developed by Amazon, and included in the Amazon Web Services platform. In 2008, it became part of a free tier option when combined with other services, including cloud.

Created in 2007, it became free to try in 2008.

CASE STUDY

Live Mocha for lowered resource costs.

Read More about this Case Study

CASE STUDY

Glue by AdaptiveBlue for faster time to market.

Read More about this Case Study

Relational Database Models will stay and while Amazon’s SimpleDB might not be the next big thing, it could be employed for non critical data management for fast storage and retrieval. Say for example, if one would simply want to store web address that are none critical, SimpleDB could be utilized in such circumstances.

Read more about this Case Study

Redis:

Redis.io

Redis is an open sourced, networked, key-value store with a durability option. Written in ANSI C, it can exist in

  • ActionScript
  • C
  • C++
  • C#
  • Clojure
  • Common Lisp
  • Erlang
  • Go
  • Haskell
  • haXe
  • Io
  • Java
  • Node.js
  • Lua
  • Objective-C
  • Perl
  • PHP
  • Pure Data
  • Python
  • Ruby
  • Scala
  • Smalltalk
  • Tcl

Developed by VMWare and S. Sanfilippo, it is designed to be an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.

Created in 2009, the most recent release came out in Feb 2012.

CASE STUDY

Twitter Clone

Read More about this Case Study

CASE STUDY

Redis Cluster

Read More about this Case Study

Salvatore Sanfilippo details the features planned for Redis’ near/mid-term future:

  • Lua scripting support (Redis 2.6)
  • High resolution expires (Redis 2.6)
  • Performances improvements when reading/writing big objects (Redis 2.6)
  • Redis cluster (Redis 3.0) > Redis Cluster is a distributed implementation of a subset of Redis standalone. Not all commands will be supported, especially we don’t support things like multi-key operations. In general we are just implementing the subset of Redis that we are sure can be made working in a solid way in a cluster setup, with predictable behaviors. >
  • > Redis cluster will stress consistency in favor of ability to resist to netsplits and failures in general.
  • Replication improvements (Redis 3.0 or post 3.0)
  • Persistence improvements (post Redis 3.0)
Read More about the Future of Redis