22
A Highly Scalable NoSQL Database Jared Winick DOSUG Ignite 10.05.2010

Apache Cassandra Ignite Presentation

Embed Size (px)

DESCRIPTION

This Ignite presentation was given at the Denver Open Source Users Group in October 2010.

Citation preview

Page 1: Apache Cassandra Ignite Presentation

A Highly Scalable NoSQL Database

Jared WinickDOSUG Ignite10.05.2010

Page 2: Apache Cassandra Ignite Presentation

“NoSQL is about using the right tool for the job”- Jonathan Ellis, Project chair for Apache Cassandra

Page 3: Apache Cassandra Ignite Presentation
Page 4: Apache Cassandra Ignite Presentation

Mr. Google BigTable Ms. Amazon Dynamo

Palo Alto, CA. 2008

Page 5: Apache Cassandra Ignite Presentation

The Next Morning…

Mr. Google BigTable Ms. Amazon Dynamo

Page 6: Apache Cassandra Ignite Presentation

9 Months Later. It’s a girl!!!

Page 7: Apache Cassandra Ignite Presentation

2010

Page 8: Apache Cassandra Ignite Presentation

One NoSQL database to rule them all?

(One NoSQL database to rule them all?)

Page 9: Apache Cassandra Ignite Presentation

MongoDB

Redis CouchDB

Neo4J

HBaseOracle

Cassandramembase

MySQL

Page 10: Apache Cassandra Ignite Presentation

BigTable’s ColumnFamily Data Model

UserColumnFamily = { ‘userid00000': { 'id': ‘userid00000', 'username': jaredwinick', ‘name’: ‘Jared Winick’ }, ‘userid00001’: { ‘id’: ‘userid00001’, ‘username’ : ‘barackobama’, ‘name’ : ‘Barack Obama’, ‘location’ : ‘Washington, D.C.’, ‘bio’ : ‘44th President of the United States’ }, …}

Multi-dimensional Hash O(1)

Sparse Columns

Column FamilyKeyColumn NameColumn Value

Schema-Free

Page 11: Apache Cassandra Ignite Presentation

Find row In UserColumnFamily Where username = ‘jaredwinick’

Page 12: Apache Cassandra Ignite Presentation

No Key, No Row

Page 13: Apache Cassandra Ignite Presentation

UserNameColumnFamily = { ‘jaredwinick': { 'id': ‘userid00000' }, ‘barackobama’: { ‘id’: ‘userid00001’ }, …}

Solution

Start Think about query requirements

Model Data Appropriately

Page 14: Apache Cassandra Ignite Presentation

Dynamo’s Fully Distributed Design == No SPOF

Page 15: Apache Cassandra Ignite Presentation
Page 16: Apache Cassandra Ignite Presentation

Rack Aware

Datacenter Aware

Page 17: Apache Cassandra Ignite Presentation

Eventual Consistency != No Consistency

Page 18: Apache Cassandra Ignite Presentation

ColumnFamilyInputFormat

ColumnFamilyOutputFormat

Page 19: Apache Cassandra Ignite Presentation

Won’t help you tighten a nut.

Page 20: Apache Cassandra Ignite Presentation

[email protected]

#cassandra @ irc.freenode.net#irc

http://www.riptano.com/

http://www.cs.cornell.edu/projects/ladis2009/papers/lakshman-ladis2009.pdfhttp://labs.google.com/papers/bigtable.html

http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf

http://cassandra.apache.org/

Page 21: Apache Cassandra Ignite Presentation

(2) http://upload.wikimedia.org/wikipedia/commons/3/30/Furniture_installation_tools.jpg(3) http://en.wikipedia.org/wiki/File:Waldburg_Ahnentafel.jpg(6) http://www.oscarmaximus.com/stork_boy.JPG(8) http://media.monstersandcritics.com/articles/1206051/article_images/theeyeofsauronwithmountdoominthebackground.jpg(8) http://home.student.uu.se/j/jowi4905/fonts/annatar.html(8) http://www.thehutt.de/tolkien/fonts.html(9) http://kimdy.gri.re.kr/others/entertainment/the_lord_of_the_ring/stills_1/dvd_fellowship_1280.jpg(14) http://www.flickr.com/photos/32623546@N05/3639560735/(15) http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf(16) http://upload.wikimedia.org/wikipedia/commons/9/9d/Blank_map_of_the_United_States.PNG(17) http://www.flickr.com/photos/mskogly/3258771132/(19) http://www.flickr.com/photos/srudy/4679621144/(20) http://www.flickr.com/photos/gcoupe/20972113/

Page 22: Apache Cassandra Ignite Presentation