Нереляційні бази даних NoSQL

Embed Size (px)

Citation preview

, NoSQL

?

NoSQL

2006 Google BigTable

2007 Amazon Dynamo

2008 Facebook Cassandra

...

NoSQL?

SQL?

NoREL

2009 - (Not only SQL)

?

ACID

Atomicity () - , ;

Consistency () - / ;

Isolation () - ;

Durability () - , , .

ACID

- ?????

/

0

1

. 0

0

0

1

Two phase commit

1.

Two phase commit

2.

Two phase commit

?

?

(Consistency)

BASE

1997/99 . (Eric Brewer)

Basically Available /

Soft-state

Eventually consystent ,

BASE vs. ACID

ACID

BASE

/

?

( )

/

CAP

: (C), (A), (P)

CAP

2002 (Seth Gilbert) (Nancy Lynch) MIT / .

Atomic Consistency

DNS!!

NoSQL

Tabular / Wide Column Store / Column Families ()

Key Value / Tuple Store (- / - )

Document Store (-)

Graph Databases (-)

Google BigTablle

Hbase

Cassandra

Hypertable

BigTable

Column oriented

IDNameAgeInterests

1Homer40Beer, food, sleep

2Bartplay

3Kenny9

IDName

1Homer

2Bart

3Kenny

IDAge

140

39

IDInterests

1beer

1food

1sleep

2play

BigTable

[email protected]

[email protected]

' (Column family)

(cell)

(timestamp)

Id , , timestamp

BigTable

(LogFile,Memtable)

' (Merged read)

(Bloom filter)

SSTable

(compaction)

BigTable

MapReduce

Map

circle

circle

circle

square

circle

square

[circle, 3]

[square, 1]

[circle, 1]

[square, 1]

Reduce

[circle, 4]

[square, 2]

!!!!!

Google: 20%

Apache Hadoop

- (Key/Value)

Berkeley DB

MemcacheDB

Membase

Redis

Amazon SimpleDB

MicrosoftAzure

Amazon Dynamo

Cassandra

Riak

Project Voldemort

AmazonDynamo

AmazonDynamo

AmazonDynamo

AmazonDynamo

- (DHT)

Consistent hashing

Versioning

Vector clocks

Quorum

Anti-entropy based recovery (gossip)

Hinted handoff

Cassandra

Riak

Project Voldemort

Amazon Dynamo

!!!!!!

Amazon: 1/10 1% .

Amazon: 30,000 (2008 .)

Amazon Dynamo :

Google BigTable + Amazon Dynamo = Cassandra (Avinash Lakshman)

-

Key/Value, ...

, - JSON, XML

{ "name": "homer", "email": "[email protected]", "projects": [ "BigTable", "HBase", "Cassamdra" ] }

-

ouchDB

MongoDB

RavenDB

Terrastore

-

/

Bug Tracking

(To-Do lists)

-

-

Neo4j

Sones

InfoGrid

HyperGraphDB

vertexdb

-

()

()

There is no silver bullet

JOIN-

//