Nosql databases for the .net developer

Preview:

DESCRIPTION

 

Citation preview

• http://weblogs.asp.net/gsusx

The Database World is changing

Software applications are

changing

Data is growing exponentially

Unstructured data is becoming

mainstream in the enterprise

Fast reads and scalable writes

are the norm

Data mashups are common

Agility is not an option anymore

Emerging NOSQL Categories

Key value stores

Key Value Stores

• Focus on scaling to huge amounts of data

• Designed to handle massive load

• Based on Amazon’s Dynamo paper

• Data model: (global) collection of Key-Value pairs

• Dynamo ring partitioning and replication

• Examples: − Voldemort

− Tokyo (Cabinet, Tyrant….)

Big Table Clones

Big Table

• Like column oriented Relational Databases

• Tables similarly to RDBMS, but handles semi-structured

• Data model: ‣Columns → column families → ACL

− Datums keyed by: row, column, time, index

− Row-range → tablet → distribution

• Examples: − HBase

− Cassandra

Document Databases

Document Databases

• Similar to Key-Value stores, but the DB knows what the Value is

• Inspired by Lotus Notes

• Data model: Collections of Key-Value collections

• Documents are often versioned

• Examples: − MongoDB

− CouchDB

− Redis

Graph Databases

Document Databases

• Focus on modeling the structure of data – interconnectivity

• Scales to the complexity of the data

• Inspired by mathematical Graph Theory ( G=(E,V) )

• Data model: “Property Graph” ‣Nodes

− Relationships/Edges between Nodes (first class)

− Key-Value pairs on both

− Possibly Edge Labels and/or Node/Edge Types

• Examples:

− MongoDB

− CouchDB

− Redis

NOSQL & Cloud Computing

NOSQL Cloud Databases

• Azure Table Service

• Amazon SimpleDB (Dynamo)

• Amazon Map Reduce (Hadoop)

• Hosted options for NOSQL databases

− MongoHQ (MongoDB)

− Cloudant (CouchDB)

NOSQL is not only for internet

vendors

NOSQL Databases for the .NET

Developer

NOSQL in .NET

• Key Value stores have been popular in the .NET world for a while − Memcache

• Most popular document databases enable .NET interfaces

− MongoDB

− Redis

− RavenDB

• Other databases enable interoperable REST-based interfaces

− CouchDB

− Cassandra

• Map Reduce engines have seen slow adoption in the .NET world − Dryad

••

Tellago & NOSQL

Tellago & NOSQL

• Cloud implementations using Azure Table Services, Amazon SimpleDB, etc

• Logging platform on CouchDB

• Notification system over MongoDB

• Real time analytics solution using MongoDB and Memcache

• http://nosql.mypopescu.com/

• http://en.wikipedia.org/wiki/NoSQL

• http://highscalability.com/

Q&A

jesus.rodriguez@tellago.com

info@tellago.com http://weblogs.asp.net/gsusx