If you can't read please download the document
Upload
igor-bronovskyy
View
1.420
Download
2
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
' (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-
//