look mom nosql

28
Look Mom - NoSQL Charles Nurse Senior Architect, DotNetNuke Corp.

Upload: charles-nurse

Post on 26-Jan-2015

113 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Look Mom nosql

Look Mom - NoSQL

Charles NurseSenior Architect, DotNetNuke Corp.

Page 2: Look Mom nosql

• ASP.NET MVP (since Jan 2007)• ASPInsider (since Jan 2008)• Senior Architect, DotNetNuke Corporation

• Web: www.dotnetnuke.com• Blog: www.charlesnurse.com• Email: [email protected]• Twitter: @cnurse

Who Am I

Look Mom - NoSQL

Page 3: Look Mom nosql

• Intro to NoSQL Databases CAP Theorem Map Reduce

• NoSQL Database Types• RavenDB• Demo

Agenda

Look Mom - NoSQL

Page 4: Look Mom nosql

• Driven by the demands of “Big Data” Google Facebook Amazon

• Huge amounts of data Distributed Environment Availability

• CAP Theorem

Intro to NoSQL Databases

Look Mom - NoSQL

Page 5: Look Mom nosql

• CAP Theorem states “It is impossible for a distributed computer system to simultaneously provide

all three of the guarantees”

• Consistency• Availability• Partition Tolerance

CAP Theorem

Look Mom - NoSQL

Page 6: Look Mom nosql

• Consistency All nodes in a distributed system see the same data at the same time

eCommerce Weapons Systems

• Availability All requests receive a response about whether it was successful or failed

• Partition Tolerance The system continues to operate despite arbitrary message loss or failures

of part of the system

CAP Theorem

Look Mom - NoSQL

Page 7: Look Mom nosql

• Relational Databases emphasise Consistency, so either Availability or Partition Tolerance will suffer

• NoSQL Databases emphasise Availability and Partition Tolerance Eventual Consistency

Google Searches do not need to show documents created in the last few seconds

Facebook News Feed – do not need to show updates from the last few seconds

CAP Theorem

Look Mom - NoSQL

Page 8: Look Mom nosql

• NoSQL databases support distributed systems

• Map Reduce helps aggregate data using a pair of functions Map function

Maps input data into its final form Can be executed in parallel on each system

Reduce function Operates on results of the Map functions Executed repeatedly until results are obtained

Map Reduce

Look Mom - NoSQL

Page 9: Look Mom nosql

Map Reduce (Example)

• Blog Documents{

"type": "post",

"name": "Raven's Map/Reduce functionality",

"blog_id": 1342,

"post_id": 29293921,

"tags": ["raven", "nosql"],

"post_content": "<p>...</p>",

"comments": [ {

"source_ip": '124.2.21.2',

"author": "martin",

"text": "..."

}]

}

• Mapfrom post in docs.posts

select new {

post.blog_id,

comments_length = comments.length

};

• Reducefrom agg in results

group agg by agg.key into g

select new {

agg.blog_id,

comments_length = g.Sum(x=>x.comments_length)

};

Look Mom - NoSQL

Page 10: Look Mom nosql

• Apply Map

Map Reduce (Example)

Look Mom - NoSQL

Page 11: Look Mom nosql

• Reduce Step 1

Map Reduce (Example)

Look Mom - NoSQL

Page 12: Look Mom nosql

• Reduce Step 2

Map Reduce (Example)

Look Mom - NoSQL

Page 13: Look Mom nosql

• Reduce Step 3

Map Reduce (Example)

Look Mom - NoSQL

Page 14: Look Mom nosql

• Apply Map

Map Reduce (Example)

Look Mom - NoSQL

Page 15: Look Mom nosql

• Reduce Step 1

Map Reduce (Example)

Look Mom - NoSQL

Page 16: Look Mom nosql

• Reduce Step 2

Map Reduce (Example)

Look Mom - NoSQL

Page 17: Look Mom nosql

• Reduce Step 3

Map Reduce (Example)

Look Mom - NoSQL

Page 18: Look Mom nosql

• Sorted Ordered Column-Oriented Stores

• Key/Value Stores

• Document Databases

NoSQL Database Types

Look Mom - NoSQL

Page 19: Look Mom nosql

• Sorted Ordered Column-Oriented Stores

• Pioneered by Google BigTable

• Hbase Apache Foundation Used by Facebook, Stumble Upon, Hulu

• HyperTable Baidu

NoSQL Database Types

Look Mom - NoSQL

Page 20: Look Mom nosql

• Sorted Ordered Column-Oriented Stores

• Compare with Relational Databases.

NoSQL Database Types

Look Mom - NoSQL

Page 21: Look Mom nosql

• Sorted Ordered Column-Oriented Stores

NoSQL Database Types

Look Mom - NoSQL

Page 22: Look Mom nosql

• Sorted Ordered Column-Oriented Stores

NoSQL Database Types

Look Mom - NoSQL

Page 23: Look Mom nosql

• Key/Value Stores

• Membase – built on MemCacheD Zynga

• Redis Craigslist

• Cassandra Facebook, Digg, Reddit, Twitter

NoSQL Database Types

Look Mom - NoSQL

Page 24: Look Mom nosql

• Document Databases

• MongoDB Foursquare Github

• CouchDB Apple, BBC, CERN

• RavenDB Built in .NET, with LINQ

NoSQL Database Types

Look Mom - NoSQL

Page 25: Look Mom nosql

• Document Database Using JSON

• Built in .NET• LINQ Support• Full-text Search

Built on Lucene

• Two versions Server Embedded

RavenDB

Look Mom - NoSQL

Page 26: Look Mom nosql

Demo

Look Mom - NoSQL

Page 27: Look Mom nosql

• Get RavenDB http://ravendb.net/

• Get MongoDB www.mongodb.org/ .NET driver

https://github.com/mongodb/mongo-csharp-driver/downloads FluentMongo – LINQ for MongoDB

https://github.com/craiggwilson/fluent-mongo NoRM

http://normproject.org/

Next Steps

Look Mom - NoSQL

Page 28: Look Mom nosql

• Email: [email protected]• Blog: www.charlesnurse.com • Twitter: @cnurse

Thank You

Look Mom - NoSQL