3. •
• key/value vs. multi-dimensional map vs. document vs. graph
•
• vs.
• vs.
•
• strong vs. weak
•
• vs.
•
• row vs. column
•
• master/slave vs. decentralized
11.4.14 - mycassandra - 3
4. •
• key/value vs. multi-dimensional map vs. document vs. graph
•
• vs.
• vs.
•
• strong vs. weak
•
• vs.
•
• row vs. column
•
• master/slave vs. decentralized
11.4.14 - mycassandra - 4
5. vs.
write/read
Bigtable, Cassandra, MySQL, Sherpa
HBase
Log-Structured B+-Tree [R.Bayer ‘72]
Merge Tree [P. O’Neil ‘96]
Bigtable MySQL
11.4.14 - mycassandra - 5
16. • W:
• R:
• RW:
MyCassandra
• (W) / (R) / (RW)
• gossip protocol
•
1. (key )
2. × N-1
N=3
Consistent Hashing ID
R RW
RW
W W
R
gossip
R
RW
W
RW
R
W
11.4.14 16
17. host
node
(1) 1 /1 →
☓ storage
☓
(2) 1 /k →
ID [Amazon Dynamo, SOSP ’07]
☓
(3) 1 →
FT
space
Fault
Torelance (FT)
space
FT
space
(3)
1storage / 1node / 1 host
(2)
(1)
virtual node
1 node / host k nodes / host
11.4.14 17
k storages / node
1 storage / node
18. • :
• R:
• RW:
=3, =2
W:RW:R = 1:1:1
Client
1)
Proxy
2) W, RW
ACK
ACK
3a)
W
3b) R
RW
R
ACK
: max (W, RW)
11.4.14 - mycassandra - 18
19. • :
• R:
=3, =2
• RW:
W:RW:R = 1:1:1
Client
Proxy
1)
2) R, RW
3a)
3b) or W
W
RW
R
4)
Proxy
(Cassandra read repair )
: max (R, RW)
11.4.14 - mycassandra - 19