NoSQL Overview

18
Kaifeng Zhang & Yuheng Wang

description

MongoDB vs. Riak

Transcript of NoSQL Overview

Page 1: NoSQL Overview

Kaifeng Zhang & Yuheng Wang

Page 2: NoSQL Overview

Agenda

Why NoSQL? NoSQL Overview MongoDB vs. Riak

5/18/2012 2

Page 3: NoSQL Overview

NoSQL History

1998, Carlo Strozzi, “NoREL” 2009, Eric Evans, “NoSQL” 2011, UnQL, superset of SQL

No SQL vs. Not Only SQL

5/18/2012 3

Page 4: NoSQL Overview

Why NoSQL Happened

Web scale Data changes over time NoSQL becomes commodity

5/18/2012 4

Page 5: NoSQL Overview

NoSQL Features

Not require fixed table schema Not use SQL as query language Usually avoid join operation Not give full ACID guarantees Distributed, fault-tolerant architecture

5/18/2012 5

Page 6: NoSQL Overview

Scenarios for NoSQL

Performance and real-time nature over consistency

High scalability Store and retrieve huge quantity of data Not require a relational model

5/18/2012 6

Page 7: NoSQL Overview

NoSQL Taxonomy

Document StoreCollections (Table)Document (Row)

Key-value Store Graph Column Family

5/18/2012 7

Page 8: NoSQL Overview

Some Concepts

CAP Theorem Distribution Model ACID Eventual Consistency

5/18/2012 8

Page 9: NoSQL Overview

5/18/2012 9

Page 10: NoSQL Overview

5/18/2012 10

Page 11: NoSQL Overview

5/18/2012 11

Page 12: NoSQL Overview
Page 13: NoSQL Overview

Setup

All major OS Stable and

experimental

• No official support of Windows

• Robust support of Linux

• Nature cluster

Mongo Riak

5/18/2012 13

Page 14: NoSQL Overview

Tooling

• Cmd line tool

• Web interface

• 3rd party solutions

• Poor

Mongo Riak

5/18/2012 14

Page 15: NoSQL Overview

Driver Support

• C/C++, Java,

• Erlang

• PHP, Python, Ruby

• Perl, Scala, .NET

• Node.js, JS

• C/C++, Java

• Erlang

• PHP, Python, Ruby

Mongo Riak

5/18/2012 15

Page 16: NoSQL Overview

CRUD(.NET)

• Excellent drivers support

• Straightforward

• Corrugated Iron

• RESTful API

Mongo Riak

5/18/2012 16

Page 17: NoSQL Overview

Query Complexity

• Secondary index

• MapReduce in JavaScript

• Corrugated Iron query broken

• RESTful API to test

Mongo Riak

5/18/2012 17

Page 18: NoSQL Overview

ID Generation

• Incremental document field

• No viable solution

Mongo Riak

5/18/2012 18