17. 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:
– Dynomite
– Voldemort
– Tokyo{Tyrant, Cabinet, etc...}
– Redis
18. Key Value Stores & .NET
• Native .NET Interfaces: Redis, MemcacheDB
• HTTP Interface: Riak
• Hard to interoperate with .NET: Voldemort, Tokyo
Cabinet
20. Document Stores
• 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:
– CouchDB
– MongoDB
– RavenDB
– OrientDB
– JackRabitt
21. Document Stores & .NET
• Native .NET Interfaces: MongoDB, RavenDB
• HTTP Interface: CouchDB, OrientDB
• Hard to interoperate with .NET: JackRabbit
23. Graph 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:
– Trinity
– Neo4j
– AllegroGraph
– FlockDB
24. Graph Databases & .NET
• Native .NET Interfaces: Trinity
• HTTP Interface: Neo4J, AllegroDB
• Hard to interoperate with .NET: FlockDB
26. Object Databases
• Neither gaining nor loosing traction
• •Not part of the NOSQL community
• •Still a good solution to a lot of problems
• •Focuses on matching object oriented programming
paradigm
– Simplicity to integrate
– Ease of use
• Examples:
– Db4O
– Versant
27. Object Databases & .NET
• Native .NET Interfaces: DB4O
• HTTP Interface: --
• Hard to interoperate with .NET: Versant
29. Big Data Clones
• Like column oriented Relational Databases, but with a twist
• Tables similarly to RDBMS, but handles semi-structured
• Based on Google’s BigTable paper
• Data model: ‣Columns → column families → ACL
– ‣Datums keyed by: row, column, time, index
– ‣Row-range → tablet → distribution
• Examples:
– HBase
– Hypertable
– Cassandra
– LINQ To HPC???
30. Object Databases & .NET
• Native .NET Interfaces: LINQ To HPC
• HTTP Interface: HBase
• Hard to interoperate with .NET: Cassandra
34. Summary
• NOSQL Databases are becoming one of the predominant
data storage models in the enterprise
• There are different models of NOSQL Databases:
Document, Key-Value, Graph, BigTable
• NOSQL databases are the predominant data storage
model for cloud infrastructures
• There is a large variety of NOSQL interfaces available to a
.NET developer.
• Start small, iterate