More Related Content More from aaronmorton (18) Hello @world #cassandra1. HELLO @WORLD #CASSANDRA
APACHE CASSANDRA IN ACTION
WDCNZ 2012
Aaron Morton, Apache Cassandra Committer
@aaronmorton
www.thelastpickle.com
Licensed under a Creative Commons Attribution-NonCommercial 3.0 New Zealand License
2. The Code is at...
github.com/amorton/wdcnz-2012-site
6. Used by...
Netflix, Twitter,
Reddit, Rackspace...
12. Store ‘foo’ key with Replication Factor 3.
Node 1 - 'foo'
Node 4 Node 2 - 'foo'
Node 3 - 'foo'
15. Partitioner...
RandomPartitioner
transforms Keys to Tokens
using MD5.
(Default Partitioner, there are others.)
18. Token Ranges.
Node 1
token: 0
76-0 1-25
Node 4 Node 2
token: 75 token: 25
Node 3
token: 50
19. Locate Token Range.
Node 1
token: 0
'foo'
token: 90
Node 4 Node 2
token: 75 token: 25
Node 3
token: 50
21. SimpleStrategy with RF 3.
Node 1
token: 0
'foo'
token: 90
Node 4 Node 2
token: 75 token: 25
Node 3
token: 50
23. The Client and the Coordinator.
Node 1
token: 0
'foo'
token: 90
Node 4 Node 2
token: 75 token: 25
Node 3
Client
token: 50
28. Node Down.
Node 1
token: 0
'foo'
token: 90
Node 4 Node 2
token: 75 token: 25
Node 3
Client
token: 50
29. Write ‘foo’ at QUOURM with Hinted Handoff.
Node 1
'foo'
'foo'
token: 90
Node 4 Node 2
'foo' for #3 'foo'
Node 3
Client
30. Read ‘foo’ at QUOURM.
Node 1
'foo'
'foo'
token: 90
Node 4 Node 2
'foo'
Node 3
Client
33. Consistent read for ‘foo’ at QUOURM.
Node 1 Node 1
cromulent
cromulent
Node 4 Node 2 Node 4 Node 2
embiggins cromulent
cromulent
Client Client
Node 3 Node 3
34. R +W > N
(#Read Nodes + #Write Nodes > Replication Factor)
36. Data Model so far.
Row Key: Column Column Column
(Incomplete.)
37. Data Model.
Keyspace
Column Family Column Family Column Family
Column Column Column
Row Key: Column Column Column
Column Column Column
(Excludes Super Columns.)
38. Data Model...
Keyspace
Column Family
Column: name, value, timestamp
Row Key: Column: name, value, timestamp
Column: name, value, timestamp
(Also TTL and Tombstone Columns.)
40. Tweet Storage...
CF / User User User Global
User Tweet
Row Key Tweets Timeline Metrics Timeline
user_name ✓ ✓ ✓ ✓
tweet_id ✓
41. Followers Storage...
CF / Ordered
Relationships TweetDelivery
Row Key Relationships
(user_name,
rel_type) ✓ ✓
tweet_id ✓
43. Aaron Morton
@aaronmorton
www.thelastpickle.com
Licensed under a Creative Commons Attribution-NonCommercial 3.0 New Zealand License
Editor's Notes \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n