Top Banner
Hands-on Cassandra OSCON July 20, 2010 Eric Evans [email protected] @jericevans http://blog.sym-link.com
70

Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Jul 28, 2018

Download

Documents

tranhanh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Hands-on Cassandra

OSCONJuly 20, 2010

Eric [email protected]

@jericevanshttp://blog.sym-link.com

Page 2: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Background

22

Page 3: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Influential Papers

● BigTable● Strong consistency● Sparse map data model● GFS, Chubby, et al

● Dynamo● O(1) distributed hash table (DHT)● BASE (aka eventual consistency)● Client tunable consistency/availability

3

Page 4: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

NoSQL

● HBase● MongoDB● Riak● Voldemort● Neo4J● Cassandra

● Hypertable● HyperGraphDB● Memcached● Tokyo Cabinet● Redis● CouchDB

4

Page 5: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

NoSQL Big data

● HBase● MongoDB● Riak● Voldemort● Neo4J● Cassandra

● Hypertable● HyperGraphDB● Memcached● Tokyo Cabinet● Redis● CouchDB

5

Page 6: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Bigtable / Dynamo

Bigtable● HBase● Hypertable

Dynamo● Riak● Voldemort

Cassandra ??

6

Page 7: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Dynamo-Bigtable Lovechild

7

Page 8: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

CAP Theorem “Pick Two”

● CP● Bigtable● Hypertable● HBase

● AP● Dynamo● Voldemort● Cassandra

8

Page 9: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

CAP Theorem “Pick Two”

● Consistency● Availability● Partition Tolerance

9

Page 10: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

History

● Facebook (2007-2008)● Avinash, former Dynamo engineer● Motivated by “Inbox Search”

● Google Code (2008-2009)● Dark times

● Apache (2009-Present)● Digg, Twitter, Rackspace, Others● Rapidly growing community● Fast-paced development

10

Page 11: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Hands-onSetup

11

Page 12: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

$ TUT_ROOT=$HOME$ cd $TUT_ROOT

$ tar xfz apache-cassandra-xxxx-bin.tar.gz$ tar xfz twissandra-xxxx.tar.gz$ tar xfz pycassa-xxxx.tar.gz

“Installation”

12

Page 13: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

$ cp twissandra/cassandra.yaml \ apache-cassandra-xxxx/conf

$ mkdir $TUT_ROOT/log$ mkdir -p $TUT_ROOT/lib/data$ mkdir -p $TUT_ROOT/lib/commitlog

Setup

13

Page 14: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

# Where data is stored on diskdata_file_directories: - TUT_ROOT/lib/data…

# Commit logcommitlog_directory: TUT_ROOT/lib/commitlog…

Setup (continued)conf/cassandra.yaml

14

Page 15: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

log4j.rootLogger=DEBUG,stdout,R

log4j.appender.R.File=TUT_ROOT/log/system.log

Setup (continued)conf/log4j-server.properties

15

Page 16: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

$ cd $TUT_ROOT/apache-cassandra-xxxx$ bin/cassandra -f

# In a new terminal$ cd $TUT_ROOT/apache-cassandra-xxxx$ bin/loadSchemaFromYAML localhost 8080

Starting up / Initializing

16

Page 17: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

$ cd $TUT_ROOT/pycassa$ sudo python setup.py -cassandra install \ [--prefix=/usr/local]…$ cd $TUT_ROOT/twissandra$ python manage.py runserver 0.0.0.0:8000

Pycassa / Twissandra

1717

Page 18: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Data Model

18

Page 19: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Users

CREATE TABLE user ( id INTEGER PRIMARY KEY, username VARCHAR(64), password VARCHAR(64));

19

Page 20: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Friends and Followers

CREATE TABLE followers ( user INTEGER REFERENCES user(id), follower INTEGER REFERENCES user(id));

CREATE TABLE following ( user INTEGER REFERENCES user(id), followee INTEGER REFERENCES user(id));

20

Page 21: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Tweets

CREATE TABLE tweets ( id INTEGER PRIMARY KEY, user INTEGER REFERENCES user(id), body VARCHAR(140), timestamp TIMESTAMP);

21

Page 22: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Overview

● Keyspace● Uppermost namespace● Typically one per application

● ColumnFamily● Associates records of a similar kind● Record-level Atomicity● Indexed

● Column● Basic unit of storage

22

Page 23: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Sparse Table

23

Page 24: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Column

● name● byte[]

● Queried against (predicates)● Determines sort order

● value● byte[]

● Opaque to Cassandra

● timestamp● long

● Conflict resolution (Last Write Wins)

24

Page 25: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Column Comparators

● Bytes● UTF8● TimeUUID● Long● LexicalUUID● Composite (third-party)

http://github.com/edanuff/CassandraCompositeType

25

Page 26: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Column Families

● User● Username● Friends● Followers● Tweet● Timeline● Userline

26

Page 27: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

User / Username

● User● Stores users● Keyed on a unique ID (UUID).● Columns for username and password

● Username● Indexes User● Keyed on username● One column, the unique UUID for user

27

Page 28: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Friends and Followers

● Friends● Maps a user to the users they follow● Keyed on user ID● Columns for each user being followed

● Followers● Maps a user to those following them● Keyed on username● Columns for each user following

28

Page 29: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Tweets

● Keyed on a unique identifier● Columns:

● Unique identifier● User ID● Body of the tweet● timestamp

29

Page 30: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Timeline / Userline

● Timeline● Keyed on user ID● Columns that map timestamps to Tweet ID● The materialized view of Tweets for a user.

● Userline● Keyed on user ID● Columns that map timestamps to Tweet ID● The collection of Tweets attributed to a user

30

Page 31: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Pycassa

31

Page 32: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Pycassa – Python Client API

● connect() → Thrift proxy● cf = ColumnFamily(proxy, ksp, cfname)● cf.insert() → long● cf.get() → dict● cf.get_range() → dict

http://github.com/vomjom/pycassa32

Page 33: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Adding a Usercass.save_user()

username = 'jericevans'password = '**********'useruuid = str(uuid())

columns = { 'id': useruuid, 'username': username, 'password': password}

USER.insert(useruuid, columns)USERNAME.insert(username, {'id': useruuid})

33

Page 34: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Following a Friendcass.add_friends()

FRIENDS.insert(userid, {friendid: time()})FOLLOWERS.insert(friendid, {userid: time()})

34

Page 35: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Tweetingcass.save_tweet()

columns = { 'id': tweetid, 'user_id': useruuid, 'body': body, '_ts': timestamp}TWEET.insert(tweetid, columns)

columns = {pack('>d', timestamp): tweetid}USERLINE.insert(useruuid, columns)

TIMELINE.insert(useruuid, columns)for otheruuid in FOLLOWERS.get(useruuid, 5000): TIMELINE.insert(otheruuid, columns)

35

Page 36: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Getting a Timelinecass.get_timeline()

start = request.GET.get('start')limit = NUM_PER_PAGE

timeline = TIMLINE.get( userid, column_start=start, column_count=limit, column_reversed=True)tweets = TWEET.multiget(timeline.values())

36

Page 37: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Hands-onpycassaShell

37

Page 38: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Retweet

38

Page 39: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

$ cd $TUT_ROOT/twissandra$ patch -p1 < ../django.patch$ patch -p1 < ../retweet.patch

Adding Retweet

39

Page 40: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Retweetcass.save_retweet()

ts = _long(int(time() * 1e6))

for follower in get_follower_ids(userid): TIMELINE.insert(follower_id, {ts: tweet_id})

40

Page 41: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

ClusteringConcepts

41

Page 42: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

P2P Routing

42

Page 43: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

P2P Routing

43

Page 44: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Partitioning(see partitioner)

● Random● 128bit namespace, (MD5)● Good distribution

● Order Preserving● Tokens determine namespace● Natural order (lexicographical)● Range / cover queries

● Yours ??

44

Page 45: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Replica Placement(see endpoint_snitch)

● SimpleSnitch● Default● N-1 successive nodes

● RackInferringSnitch● Infers DC/rack from IP

● PropertyFileSnitch● Configured w/ a properties file

45

Page 46: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Bootstrap(see auto_bootstrap)

46

Page 47: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Bootstrap

47

Page 48: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Bootstrap

48

Page 49: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Remember CAP?

● Consistency● Availability● Partition Tolerance

49

Page 50: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Choosing Consistency

Read

Level Description

ZERO N/A

ANY N/A

ONE 1 replica

QUORUM (N / 2) +1

ALL All replicas

Write

Level Description

ZERO Hail Mary

ANY 1 replica (HH)

ONE 1 replica

QUORUM (N / 2) +1

ALL All replicas

R + W > N

50

Page 51: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Quorum ((N/2) + 1)

51

Page 52: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Quorum ((N/2) + 1)

52

Page 53: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Operations

53

Page 54: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Cluster sizing

● Data size and throughput● Fault tolerance (replication)● Data-center / hosting costs

54

Page 55: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Nodes

● Go commodity!● Cores (more is better)● Memory (more is better)● Disks

● Commitlog● Storage● double-up for working space

55

Page 56: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Writes

56

Page 57: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Reads

57

Page 58: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Tuning (heap size)bin/cassandra.in.sh

# Arguments to pass to the JVMJVM_OPTS=” \… -Xmx1G \…

58

Page 59: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Tuning (memtable)conf/cassandra.yaml

# Amount of data writtenmemtable_throughput_in_mb: 64

# Number of objects writtenmemtable_operations_in_millions: 0.3

# Time elapsedmemtable_flush_after_mins: 60

59

Page 60: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Tuning (column families)conf/cassandra.yaml

keyspaces: - name: Twissandra… column_families: - name: User keys_cached: 100 preload_row_cache: true rows_cached: 1000…

60

Page 61: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Tuning (mmap)conf/cassandra.yaml

# Choices are auto, standard, mmap, and# mmap_index_only. disk_access_mode: auto

61

Page 62: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Nodetoolbin/nodetool –host <arg> command

● ring● info● cfstats● tpstats

62

Page 63: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Nodetool (cont.)bin/nodetool –host <arg> command

● compact● snapshot [name]● flush● drain● repair● decommission● move● loadbalance

63

Page 64: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Clustertoolbin/clustertool –host <arg> command

● get_endpoints <keyspace> <key>● global_snapshot [name]● clear_global_snapshot● truncate <keyspace> <cfname>

64

Page 65: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Wrapping Up

65

Page 66: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

When Things Go WrongWhere to look

● Logs

● ERRORs, stack traces● Enable DEBUG● Isolate if possible

● Crash files (java_pid*.hprof, hs_err_pid*.log)

● nodetool / jconsole / etc

● Thread pool stats● Column family stats● …

66

Page 67: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

When Things Go WrongWhat to do

[email protected]

[email protected]● http://www.mail-archive.com/[email protected]/

● http://wiki.apache.org/cassandra

● https://issues.apache.org/jira/browse/CASSANDRA

● #cassandra on irc.freenode.net

67

Page 68: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Further Reading

Bigtable: A Distributed Storage System for Structured DataFay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach,

Mike Burrows, Tushar Chandra, Andrew Fikes, and Robert E. Gruber

http://labs.google.com/papers/bigtable-osdi06.pdf

Dynamo: Amazon’s Highly Available Key-value StoreGiuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati,

Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall and Werner Vogels

http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html

68

Page 69: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Thanks

● Apache Cassandra:● http://cassandra.apache.org

● Twissandra: Eric Florenzano (and others)● http://github.com/ericflo/twissandra

● Pycassa: Jonathan Hseu (and others)● http://github.com/vomjom/pycassa

69

Page 70: Hands-on Cassandra - O'Reilly Mediaassets.en.oreilly.com/1/event/45/Hands-on Cassandra Presentation.pdf · Hands-on Cassandra OSCON July 20, 2010 ... The materialized view of Tweets

Fin