An Introduction To Cassandra

  • 14,934 views
Uploaded on

High-level overview of Cassandra presented at OpenSQL Camp 2009

High-level overview of Cassandra presented at OpenSQL Camp 2009

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
14,934
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
421
Comments
0
Likes
10

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Project History Description People An Introduction To Cassandra Eric Evans eevans@rackspace.com @jericevans OpenSQL Camp November 14, 2009 Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 2. Project History Description People A prophetess in Troy during the Trojan War. Her predictions were always true, but never believed. Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 3. Project History Description People A massively scalable, decentralized, structured data store (aka database). Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 4. Project History Description People Outline 1 Project History 2 Description 3 People Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 5. Project History Description People Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 6. Project History Description People Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 7. Project History Description People Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 8. Project History Description 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 eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 9. Project History Description People Outline 1 Project History 2 Description 3 People Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 10. Project History Description People Cassandra is... O(1) DHT Eventual consistency Tunable trade-offs, consistency vs. latency Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 11. Project History Description People Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 12. Project History Description People But... Values are structured, indexed Columns / column families Slicing w/ predicates (queries) Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 13. Project History Description People Column families Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 14. Project History Description People Supercolumn families Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 15. Project History Description People Querying By column By column for multiple keys Slice by names, or ranges of names returning columns returning super columns Slice for multiple keys Range of keys Slice on a key range RSN Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 16. Project History Description People Column comparators TimeUUID LexicalUUID UTF8 Long Bytes ... Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 17. Project History Description People Updating Insert column (by key) Batch insert (multi-column but still by key) Remove (by key) Remove key range RSN Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 18. Project History Description People Consistency CAP Theorem: choose any two of Consistency, Availability, or Partition tolerance. Zero One Quorum ((N / 2) + 1) All Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 19. Project History Description People Client API Thrift (12 different languages!) Ruby http://github.com/fauna/cassandra/tree/master http://github.com/NZKoz/cassandra object/tree/master Python http://github.com/digg/lazyboy/tree/master http://github.com/driftx/Telephus/tree/master (Twisted) Scala http://github.com/viktorklang/Cassidy/tree/master http://github.com/nodeta/scalandra/tree/master Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 20. Project History Description People Performance vs MySQL w/ 50GB MySQL 300ms write 350ms read Cassandra 0.12ms write 15ms read Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 21. Project History Description People Writes Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 22. Project History Description 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 eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 23. Project History Description People Reads Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 24. Project History Description People About reads... Any node Read repair Usual caching conventions apply Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 25. Project History Description People Outline 1 Project History 2 Description 3 People Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 26. Project History Description People Droppin’ Names Facebook Digg IBM Research Rackspace Twitter Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra
  • 27. Project History Description People http://incubator.apache.org/cassandra #cassandra / irc.freenode.net Eric Evans eevans@rackspace.com @jericevans An Introduction To Cassandra