NoSQL
Re-thinK the world
NoSQL
        Not Only SQL


next-generation databases
modern web-scale databases
RDBMs Problem
     Design for ACID

Hard to scale

Availability?

Flexibility
Possible Solutions


Oracle/Sybase

Mysql/PostgreSQL Cluster/Replica

Super-powered Computer
Unnecessarily Complex but just better
Characteristics

Non-Relational

Distributed

Horizontal Scalability

Schema-less/Schema-free

Eventual Consistency
Category


Key-Value stores

Document stores

Column-oriented stores

Graph Databases
Key-Value Store
            hash
Memcached

Dynamo

Redis

Riak

Tokyo Cabinet
Document Stores
    semi-structure

IBM Lotus

MongoDB

CouchDB
Column-Oriented Stores
    semi-structure

 BigTable (inspiration source)

 HBase

 Cassandra

 Hypertable
Graph Database



InfoGrid

Neo4j
Ruby/Rails Integration
NoSQL Database         Ruby               Rails
     Redis           redis-rb              ohm
     Riak              riak
 Tokyo Cabinet     tokyo-cabinet
   MongoDB       mongo-ruby-driver    MongoMapper
   CouchDB          CouchRest        CouchRest-Rails
    HBase           hbase-ruby            rhino
  Cassandra          cassandra       cassandra_object
    Neo4j          neo4j (jruby)
Brewer’s CAP Theorem

             Consistency          Availability




                   Partitions Tolerance



You can have at most two of the properties for any
                shared-data system
Decision?

Consistency            Availability
    ?                          ?



        Partitions Tolerance
BigTable        Cassandra
        HBase         SimpleDB
Consistency               Availability
      MongoDB         CouchDB
      Redis             Riak




        Partitions Tolerance
Activities

Google

Facebook

Yahoo

Twitter

GitHub
Services

Google App Engine

Amazon SimpleDB

MongoHQ

CouchIO

VMWare?
Example
http://gemsday.org by Intridea, Inc

Powered by MongoDB, Sinatra, TweetStream
Thanks for your patience!
    Email: yedingding@gmail.com
       Twitter: @yedingding
  GitHub: http://github.com/sishen

No Sql Introduction