Nosql databases for the .net developer
- 14. 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….)
- 16. 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
- 18. 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
- 20. 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
- 22. NOSQL Cloud Databases
• Azure Table Service
• Amazon SimpleDB (Dynamo)
• Amazon Map Reduce (Hadoop)
• Hosted options for NOSQL databases
− MongoHQ (MongoDB)
− Cloudant (CouchDB)
- 25. 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
- 29. 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