An Introduction To Cassandra

27
Project History Description People An Introduction To Cassandra Eric Evans [email protected] @jericevans OpenSQL Camp November 14, 2009 Eric Evans [email protected] @jericevans An Introduction To Cassandra

description

High-level overview of Cassandra presented at OpenSQL Camp 2009

Transcript of An Introduction To Cassandra

Page 1: An Introduction To Cassandra

Project HistoryDescription

People

An Introduction To Cassandra

Eric [email protected]

@jericevans

OpenSQL CampNovember 14, 2009

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 2: An Introduction To Cassandra

Project HistoryDescription

People

A prophetess in Troy during the Trojan War. Her predictions werealways true, but never believed.

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 3: An Introduction To Cassandra

Project HistoryDescription

People

A massively scalable, decentralized, structured data store (akadatabase).

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 4: An Introduction To Cassandra

Project HistoryDescription

People

Outline

1 Project History

2 Description

3 People

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 5: An Introduction To Cassandra

Project HistoryDescription

People

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 6: An Introduction To Cassandra

Project HistoryDescription

People

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 7: An Introduction To Cassandra

Project HistoryDescription

People

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 8: An Introduction To Cassandra

Project HistoryDescription

People

4 new committers added

Dozens of contributors

60+ people on IRC

Hundreds of closed issues (bugs, features, etc)

2 major releases, 1 point release

0.5.0 RSN

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 9: An Introduction To Cassandra

Project HistoryDescription

People

Outline

1 Project History

2 Description

3 People

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 10: An Introduction To Cassandra

Project HistoryDescription

People

Cassandra is...

O(1) DHT

Eventual consistency

Tunable trade-offs, consistency vs. latency

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 11: An Introduction To Cassandra

Project HistoryDescription

People

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 12: An Introduction To Cassandra

Project HistoryDescription

People

But...

Values are structured, indexed

Columns / column families

Slicing w/ predicates (queries)

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 13: An Introduction To Cassandra

Project HistoryDescription

People

Column families

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 14: An Introduction To Cassandra

Project HistoryDescription

People

Supercolumn families

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 15: An Introduction To Cassandra

Project HistoryDescription

People

Querying

By column

By column for multiple keys

Slice by names, or ranges of names

returning columnsreturning super columns

Slice for multiple keys

Range of keys

Slice on a key range RSN

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 16: An Introduction To Cassandra

Project HistoryDescription

People

Column comparators

TimeUUID

LexicalUUID

UTF8

Long

Bytes

...

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 17: An Introduction To Cassandra

Project HistoryDescription

People

Updating

Insert column (by key)

Batch insert (multi-column but still by key)

Remove (by key)

Remove key range RSN

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 18: An Introduction To Cassandra

Project HistoryDescription

People

Consistency

CAP Theorem: choose any two of Consistency, Availability, orPartition tolerance.

Zero

One

Quorum ((N / 2) + 1)

All

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 19: An Introduction To Cassandra

Project HistoryDescription

People

Client API

Thrift (12 different languages!)

Ruby

http://github.com/fauna/cassandra/tree/masterhttp://github.com/NZKoz/cassandra object/tree/master

Python

http://github.com/digg/lazyboy/tree/masterhttp://github.com/driftx/Telephus/tree/master (Twisted)

Scala

http://github.com/viktorklang/Cassidy/tree/masterhttp://github.com/nodeta/scalandra/tree/master

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 20: An Introduction To Cassandra

Project HistoryDescription

People

Performance vs MySQL w/ 50GB

MySQL

300ms write350ms read

Cassandra

0.12ms write15ms read

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 21: An Introduction To Cassandra

Project HistoryDescription

People

Writes

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 22: An Introduction To Cassandra

Project HistoryDescription

People

About writes...

No reads

No seeks

Sequential disk access

Atomic within a column family

Fast

Any node

Always writeable (hinted hand-off)

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 23: An Introduction To Cassandra

Project HistoryDescription

People

Reads

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 24: An Introduction To Cassandra

Project HistoryDescription

People

About reads...

Any node

Read repair

Usual caching conventions apply

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 25: An Introduction To Cassandra

Project HistoryDescription

People

Outline

1 Project History

2 Description

3 People

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 26: An Introduction To Cassandra

Project HistoryDescription

People

Droppin’ Names

Facebook

Digg

IBM Research

Rackspace

Twitter

Eric Evans [email protected] @jericevans An Introduction To Cassandra

Page 27: An Introduction To Cassandra

Project HistoryDescription

People

http://incubator.apache.org/cassandra

#cassandra / irc.freenode.net

Eric Evans [email protected] @jericevans An Introduction To Cassandra