21
HowStuffWorks version Cassandra SriSatish Ambati engineer, DataStax @srisatish

Svccg nosql 2011_sri-cassandra

Embed Size (px)

DESCRIPTION

silicon valley cloud computing group, netflix, cassandra talk

Citation preview

Page 1: Svccg nosql 2011_sri-cassandra

HowStuffWorks version

Cassandra

SriSatish Ambatiengineer, DataStax

@srisatish

Page 2: Svccg nosql 2011_sri-cassandra

Bigtable, 2006Dynamo, 2007

OSS, 2008

Incubator, 2009 TLP, 2010

Page 3: Svccg nosql 2011_sri-cassandra

Digital Reasoning: NLP + entity analytics

OpenWave: enterprise messaging

OpenX: largest publisher-side ad network in the world

Cloudkick: performance data & aggregation

SimpleGEO: location-as-API

Ooyala: video analytics and business intelligence

ngmoco: massively multiplayer game worlds

Cassandra in production

Page 4: Svccg nosql 2011_sri-cassandra

•furiously fast writes

• Append only writes • Sequential disk access• No locks in critical path• Key based atomicity

•client issues •write

•n1

•partitioner

•commit log

•apply to memory

•n2

•find node

•n3

Page 5: Svccg nosql 2011_sri-cassandra

Tuneable reads

Page 6: Svccg nosql 2011_sri-cassandra

Read Internals

@r39132 - #netflixcloud 6

Page 7: Svccg nosql 2011_sri-cassandra

•A feather in the CAP• Eventual Consistency• R + W > No N is RFo T is total nodes

• ex: rdbms with backup• R=1, W=2, N=2, T=2

Read Performance• R=1, 100s of nodes • R=1, W=N (consistency)

Write Performance • W=1, R=N• Quorum (fast writes!)

Page 8: Svccg nosql 2011_sri-cassandra

Client Marshal Arts

Roll your own, C

Thrift

pycassa, phpcassa

Ruby, Scala

Ready made, Java: Hector, Pelops

Common Patterns of Doom: Death by a million gets Turn off Nagle Manage your connections

Page 9: Svccg nosql 2011_sri-cassandra

Adding Nodes New nodes

Add themselves to busiest node And then Split its Range

Busy Node starts transmit to new node Bootstrap logic initiated from any node, cli, web

Page 10: Svccg nosql 2011_sri-cassandra

Cassandra on EC2 cloud

Page 11: Svccg nosql 2011_sri-cassandra

Cassandra on EC2 cloud

*Corey Hulen, EC2

Page 12: Svccg nosql 2011_sri-cassandra

inter-node comm Gossip Protocol

It’s exponential (epidemic algorithm)

Failure Detector Accrual rate phi

Anti-Entropy Bringing replicas to uptodate

UDP for control messages TCP for request routing

Page 13: Svccg nosql 2011_sri-cassandra

CompactionsK1 < Serialized data >K2 < Serialized data >K3 < Serialized data >------

Sorted

K2 < Serialized data >K10 < Serialized data >K30 < Serialized data >------

Sorted

K4 < Serialized data >K5 < Serialized data >K10 < Serialized data >------

Sorted

MERGE SORT

Loaded in memory

K1 < Serialized data >K2 < Serialized data >K3 < Serialized data >K4 < Serialized data >K5 < Serialized data >K10 < Serialized data >K30 < Serialized data >

Sorted

K1 OffsetK5 OffsetK30 OffsetBloom Filter

Index File

Data File

Page 14: Svccg nosql 2011_sri-cassandra

CompactionsK1 < Serialized data >K2 < Serialized data >K3 < Serialized data >------

Sorted

K2 < Serialized data >K10 < Serialized data >K30 < Serialized data >------

Sorted

K4 < Serialized data >K5 < Serialized data >K10 < Serialized data >------

Sorted

MERGE SORT

Loaded in memory

K1 < Serialized data >K2 < Serialized data >K3 < Serialized data >K4 < Serialized data >K5 < Serialized data >K10 < Serialized data >K30 < Serialized data >

Sorted

K1 OffsetK5 OffsetK30 OffsetBloom Filter

Index File

Data File

D E L E T E D

Page 15: Svccg nosql 2011_sri-cassandra
Page 16: Svccg nosql 2011_sri-cassandra

A

LT

W

F

P

YKey “C”

U

Availability in Action

Page 17: Svccg nosql 2011_sri-cassandra

A

LT

W

F

P

YKey “C”

U

Xhint

Availability in Action

Page 18: Svccg nosql 2011_sri-cassandra

JMX

Page 19: Svccg nosql 2011_sri-cassandra

OpsCenter

Page 20: Svccg nosql 2011_sri-cassandra

OpsCenter

Page 21: Svccg nosql 2011_sri-cassandra

OpsCenter