apache cassandra ignite presentation

22
A Highly Scalable NoSQL Database Jared Winick DOSUG Ignite 10.05.2010

Upload: jared-winick

Post on 25-May-2015

1.056 views

Category:

Technology


9 download

DESCRIPTION

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

TRANSCRIPT

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