An Introduction To Cassandra
-
Upload
eric-evans -
Category
Technology
-
view
15.000 -
download
2
description
Transcript of 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
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
Project HistoryDescription
People
A massively scalable, decentralized, structured data store (akadatabase).
Eric Evans [email protected] @jericevans An Introduction To Cassandra
Project HistoryDescription
People
Outline
1 Project History
2 Description
3 People
Eric Evans [email protected] @jericevans An Introduction To Cassandra
Project HistoryDescription
People
Eric Evans [email protected] @jericevans An Introduction To Cassandra
Project HistoryDescription
People
Eric Evans [email protected] @jericevans An Introduction To Cassandra
Project HistoryDescription
People
Eric Evans [email protected] @jericevans 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
Project HistoryDescription
People
Outline
1 Project History
2 Description
3 People
Eric Evans [email protected] @jericevans 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
Project HistoryDescription
People
Eric Evans [email protected] @jericevans 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
Project HistoryDescription
People
Column families
Eric Evans [email protected] @jericevans An Introduction To Cassandra
Project HistoryDescription
People
Supercolumn families
Eric Evans [email protected] @jericevans 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
Project HistoryDescription
People
Column comparators
TimeUUID
LexicalUUID
UTF8
Long
Bytes
...
Eric Evans [email protected] @jericevans 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
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
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
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
Project HistoryDescription
People
Writes
Eric Evans [email protected] @jericevans 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
Project HistoryDescription
People
Reads
Eric Evans [email protected] @jericevans 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
Project HistoryDescription
People
Outline
1 Project History
2 Description
3 People
Eric Evans [email protected] @jericevans An Introduction To Cassandra
Project HistoryDescription
People
Droppin’ Names
Digg
IBM Research
Rackspace
Eric Evans [email protected] @jericevans 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