Download presentation
Presentation is loading. Please wait.
1
Look Mom! – NoSQL Charles Nurse | DotNetNuke Corp
2
Who Am I www.devreach.com
3
Who Am I www.devreach.com
4
Who Am I www.devreach.com
5
Who Am I ASP.NET MVP (since Jan 2007) ASPInsider (since Jan 2008) Senior Architect, DotNetNuke Corporation Web: www.dotnetnuke.com Blog: www.charlesnurse.com Email: charles.nurse@dnncorp.com Twitter: @cnurse www.devreach.com
6
Agenda Intro to NoSQL Databases – CAP Theorem – Map Reduce NoSQL Database Types RavenDB Demo www.devreach.com
7
Intro to NoSQL Databases Driven by the demands of “Big Data” – Google – Facebook – Amazon Huge amounts of data – Distributed Environment – Availability CAP Theorem www.devreach.com
8
CAP Theorem CAP Theorem states – “It is impossible for a distributed computer system to simultaneously provide all three of the guarantees” Consistency Availability Partition Tolerance www.devreach.com
9
CAP Theorem 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 www.devreach.com
10
CAP Theorem Relational Databases emphasize Consistency, so either Availability or Partition Tolerance will suffer NoSQL Databases emphasize 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 www.devreach.com
11
Map Reduce 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 www.devreach.com
12
Map Reduce (Example) Blog Documents { "type": "post", "name": "Raven's Map/Reduce functionality", "blog_id": 1342, "post_id": 29293921, "tags": ["raven", "nosql"], "post_content": "... ", "comments": [ { "source_ip": '124.2.21.2', "author": "martin", "text": "..." }] } Map from post in docs.posts select new { post.blog_id, comments_length = comments.length }; Reduce from agg in results group agg by agg.key into g select new { agg.blog_id, comments_length = g.Sum(x=>x.comments_length) }; www.devreach.com
13
Map Reduce Apply Map www.devreach.com
14
Map Reduce Reduce – Step 1 www.devreach.com
15
Map Reduce Reduce – Step 2 www.devreach.com
16
Map Reduce Reduce – Step 3 www.devreach.com
17
Map Reduce Apply Map www.devreach.com
18
Map Reduce Reduce – Step 1 www.devreach.com
19
Map Reduce Reduce – Step 2 www.devreach.com
20
Map Reduce Reduce – Step 3 www.devreach.com
21
NoSQL Database Types Sorted Ordered Column-Oriented Stores Key/Value Stores Document Databases www.devreach.com
22
NoSQL Database Types Sorted Ordered Column-Oriented Stores Pioneered by Google – BigTable Hbase – Apache Foundation – Used by Facebook, Stumble Upon, Hulu HyperTable – Baidu www.devreach.com
23
NoSQL Database Types Sorted Ordered Column-Oriented Stores Compare with Relational Databases www.devreach.com
24
NoSQL Database Types Sorted Ordered Column-Oriented Stores – Compare Relational Storage www.devreach.com
25
NoSQL Database Types Sorted Ordered Column-Oriented Stores – Column oriented store www.devreach.com
26
NoSQL Database Types Key/Value Stores Membase – built on MemCacheD – Zynga Redis – Craigslist Cassandra – Facebook, Digg, Reddit, Twitter www.devreach.com
27
NoSQL Database Types Document Databases MongoDB – Foursquare – Github CouchDB – Apple, BBC, CERN RavenDB – Built in.NET, with LINQ www.devreach.com
28
RavenDB Document Database – Using JSON Built in.NET LINQ Support Full-text Search – Built on Lucene Two versions – Server – Embedded www.devreach.com
29
RavenDB Demo www.devreach.com
30
Next Steps 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/ www.devreach.com
31
Thank you! @cnurse www.charlesnurse.com ca.linkedin.com/in/charlesnurse Charles Nurse | DotNetNuke Corp
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.