SlideShare a Scribd company logo
Brian Ritchie Chief Architect Payformance Corporation Email: brian.ritchie@gmail.com Blog: http://weblog.asp.net/britchie Web: http://www.dotnetpowered.com
[object Object],[object Object],[object Object]
[object Object],Source: IDC 2008
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Application Application Application Application Mainframe Client-Server Database  as  Integration Point Service Service Service Oriented
 
[object Object],[object Object]
 
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Utilized by CQRS (Command Query Responsibility Segregation)
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
 
[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[ Blue ] [ Red ] [ Blue,1 ] [ Red,1 ] [ Orange ] [ Blue ] [ Blue ] [ Orange ] [ Orange,2 ] [ Blue,2 ] [ Red,1 ] [ Orange,2 ] [ Blue,3 ]
 
[object Object],[object Object],[object Object],[object Object],[object Object]
 
[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Given this document… And this index… Gives this table output http://ravendb.net/bundles/index-replication
[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

Serverless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
Serverless Kafka on AWS as Part of a Cloud-native Data Lake ArchitectureServerless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
Serverless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
Kai Wähner
 
Big Data Storage Challenges and Solutions
Big Data Storage Challenges and SolutionsBig Data Storage Challenges and Solutions
Big Data Storage Challenges and Solutions
WSO2
 

What's hot (20)

Mongodb basics and architecture
Mongodb basics and architectureMongodb basics and architecture
Mongodb basics and architecture
 
Building Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon RedshiftBuilding Your Data Warehouse with Amazon Redshift
Building Your Data Warehouse with Amazon Redshift
 
The 5 key V's of Big Data
The 5 key V's of Big DataThe 5 key V's of Big Data
The 5 key V's of Big Data
 
An introduction to MongoDB
An introduction to MongoDBAn introduction to MongoDB
An introduction to MongoDB
 
Serverless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
Serverless Kafka on AWS as Part of a Cloud-native Data Lake ArchitectureServerless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
Serverless Kafka on AWS as Part of a Cloud-native Data Lake Architecture
 
SQL vs. NoSQL Databases
SQL vs. NoSQL DatabasesSQL vs. NoSQL Databases
SQL vs. NoSQL Databases
 
Database performance tuning and query optimization
Database performance tuning and query optimizationDatabase performance tuning and query optimization
Database performance tuning and query optimization
 
Databricks Fundamentals
Databricks FundamentalsDatabricks Fundamentals
Databricks Fundamentals
 
Big Data Storage Challenges and Solutions
Big Data Storage Challenges and SolutionsBig Data Storage Challenges and Solutions
Big Data Storage Challenges and Solutions
 
Real time analytics
Real time analyticsReal time analytics
Real time analytics
 
PostgreSQL and CockroachDB SQL
PostgreSQL and CockroachDB SQLPostgreSQL and CockroachDB SQL
PostgreSQL and CockroachDB SQL
 
Data Warehousing Trends, Best Practices, and Future Outlook
Data Warehousing Trends, Best Practices, and Future OutlookData Warehousing Trends, Best Practices, and Future Outlook
Data Warehousing Trends, Best Practices, and Future Outlook
 
Cost Efficiency Strategies for Managed Apache Spark Service
Cost Efficiency Strategies for Managed Apache Spark ServiceCost Efficiency Strategies for Managed Apache Spark Service
Cost Efficiency Strategies for Managed Apache Spark Service
 
Databricks for Dummies
Databricks for DummiesDatabricks for Dummies
Databricks for Dummies
 
Overcoming Today's Data Challenges with MongoDB
Overcoming Today's Data Challenges with MongoDBOvercoming Today's Data Challenges with MongoDB
Overcoming Today's Data Challenges with MongoDB
 
Building an Enterprise Data Platform with Azure Databricks to Enable Machine ...
Building an Enterprise Data Platform with Azure Databricks to Enable Machine ...Building an Enterprise Data Platform with Azure Databricks to Enable Machine ...
Building an Enterprise Data Platform with Azure Databricks to Enable Machine ...
 
RDBMS vs NoSQL
RDBMS vs NoSQLRDBMS vs NoSQL
RDBMS vs NoSQL
 
Choosing technologies for a big data solution in the cloud
Choosing technologies for a big data solution in the cloudChoosing technologies for a big data solution in the cloud
Choosing technologies for a big data solution in the cloud
 
MongoDB
MongoDBMongoDB
MongoDB
 
Building Robust ETL Pipelines with Apache Spark
Building Robust ETL Pipelines with Apache SparkBuilding Robust ETL Pipelines with Apache Spark
Building Robust ETL Pipelines with Apache Spark
 

Similar to Document Databases & RavenDB

The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
Lucas Jellema
 
03 net saturday anton samarskyy ''document oriented databases for the .net pl...
03 net saturday anton samarskyy ''document oriented databases for the .net pl...03 net saturday anton samarskyy ''document oriented databases for the .net pl...
03 net saturday anton samarskyy ''document oriented databases for the .net pl...
DneprCiklumEvents
 
Technology Stack Discussion
Technology Stack DiscussionTechnology Stack Discussion
Technology Stack Discussion
Zaiyang Li
 

Similar to Document Databases & RavenDB (20)

CouchDB
CouchDBCouchDB
CouchDB
 
REST vs WS-*: Myths Facts and Lies
REST vs WS-*: Myths Facts and LiesREST vs WS-*: Myths Facts and Lies
REST vs WS-*: Myths Facts and Lies
 
Deep Dive on ArangoDB
Deep Dive on ArangoDBDeep Dive on ArangoDB
Deep Dive on ArangoDB
 
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
The Story of How an Oracle Classic Stronghold successfully embraced SOA (ODTU...
 
Switch to Backend 2023
Switch to Backend 2023Switch to Backend 2023
Switch to Backend 2023
 
Not only SQL
Not only SQL Not only SQL
Not only SQL
 
03 net saturday anton samarskyy ''document oriented databases for the .net pl...
03 net saturday anton samarskyy ''document oriented databases for the .net pl...03 net saturday anton samarskyy ''document oriented databases for the .net pl...
03 net saturday anton samarskyy ''document oriented databases for the .net pl...
 
The other Apache Technologies your Big Data solution needs
The other Apache Technologies your Big Data solution needsThe other Apache Technologies your Big Data solution needs
The other Apache Technologies your Big Data solution needs
 
Above the cloud joarder kamal
Above the cloud   joarder kamalAbove the cloud   joarder kamal
Above the cloud joarder kamal
 
Couchbase - Yet Another Introduction
Couchbase - Yet Another IntroductionCouchbase - Yet Another Introduction
Couchbase - Yet Another Introduction
 
Azure Platform
Azure Platform Azure Platform
Azure Platform
 
Technology Stack Discussion
Technology Stack DiscussionTechnology Stack Discussion
Technology Stack Discussion
 
No sql databases
No sql databasesNo sql databases
No sql databases
 
RavenDB overview
RavenDB overviewRavenDB overview
RavenDB overview
 
Deep dive into the native multi model database ArangoDB
Deep dive into the native multi model database ArangoDBDeep dive into the native multi model database ArangoDB
Deep dive into the native multi model database ArangoDB
 
The RESTful Soa Datagrid with Oracle
The RESTful Soa Datagrid with OracleThe RESTful Soa Datagrid with Oracle
The RESTful Soa Datagrid with Oracle
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The Cloud
 
Big Data, Ingeniería de datos, y Data Lakes en AWS
Big Data, Ingeniería de datos, y Data Lakes en AWSBig Data, Ingeniería de datos, y Data Lakes en AWS
Big Data, Ingeniería de datos, y Data Lakes en AWS
 
Intro to-html-backbone
Intro to-html-backboneIntro to-html-backbone
Intro to-html-backbone
 
Ops Jumpstart: MongoDB Administration 101
Ops Jumpstart: MongoDB Administration 101Ops Jumpstart: MongoDB Administration 101
Ops Jumpstart: MongoDB Administration 101
 

More from Brian Ritchie

More from Brian Ritchie (7)

Transforming your application with Elasticsearch
Transforming your application with ElasticsearchTransforming your application with Elasticsearch
Transforming your application with Elasticsearch
 
Building Event-Driven Systems with Apache Kafka
Building Event-Driven Systems with Apache KafkaBuilding Event-Driven Systems with Apache Kafka
Building Event-Driven Systems with Apache Kafka
 
From Dev to Ops:Delivering an API to Production with Splunk
From Dev to Ops:Delivering an API to Production with SplunkFrom Dev to Ops:Delivering an API to Production with Splunk
From Dev to Ops:Delivering an API to Production with Splunk
 
Extending the Enterprise with MEF
Extending the Enterprise with MEFExtending the Enterprise with MEF
Extending the Enterprise with MEF
 
CQRS: Command/Query Responsibility Segregation
CQRS: Command/Query Responsibility SegregationCQRS: Command/Query Responsibility Segregation
CQRS: Command/Query Responsibility Segregation
 
IIS Always-On Services
IIS Always-On ServicesIIS Always-On Services
IIS Always-On Services
 
Scaling Out .NET
Scaling Out .NETScaling Out .NET
Scaling Out .NET
 

Document Databases & RavenDB

  • 1. Brian Ritchie Chief Architect Payformance Corporation Email: brian.ritchie@gmail.com Blog: http://weblog.asp.net/britchie Web: http://www.dotnetpowered.com
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.  
  • 7.
  • 8.  
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.  
  • 20.  
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. [ Blue ] [ Red ] [ Blue,1 ] [ Red,1 ] [ Orange ] [ Blue ] [ Blue ] [ Orange ] [ Orange,2 ] [ Blue,2 ] [ Red,1 ] [ Orange,2 ] [ Blue,3 ]
  • 27.  
  • 28.
  • 29.  
  • 30.
  • 31.
  • 32. Given this document… And this index… Gives this table output http://ravendb.net/bundles/index-replication
  • 33.
  • 34.
  • 35.

Editor's Notes

  1. Relational database : Edgar Codd defined and coined the term at IBM's Almaden Research Center about 40 years ago.  Since that time, relational databases have become the foundation of nearly every enterprise system.
  2. Twitter generates 7TB/day (2PB+ year) – Hadoop for data analysis, Scribe for logging LinkedIn - Voldemort
  3. Scalability:  relational databases were not designed to handle and do not generally cope well with Internet-scale, “ big data ” applications.  Most of the big Internet companies (e.g., Google, Yahoo, Facebook) do not rely on RDBMS technology for this reason.
  4. Cassandra – Facebook Inbox Search Amazon Dynamo: not open source Voldemort: Open-Source implementation of Amazons Dynamo Key-Value Store.  Google Big Table: a sparse, distributed multi-dimensional sorted map
  5. A few of the top document databases are CouchDB , RavenDB , and MongoDB . CouchDB is an Apache project created by Damien Katz (built using Erlang ) and just reached a 1.0 status.  Damien has a background working on Lotus Notes & MySql.  RavenDB is built on using C# and has some interesting extension capabilities using .NET classes.  RavenDB was created by Ayende Rahien . Ayende Rahien is the creator of Rhino Mocks & much more. MongoDB is written in C++ and provides some unique querying capabilities.  MongoDB was originally developed by 10gen .
  6. Objects can be stored as documents :  The relational database impedance mismatch is gone.  Just serialize the object model to a document and go. Documents can be complex : Entire object models can be read & written at once.  No need to perform a series of insert statements or create complex stored procs. Documents are independent : Improves performance and decreases concurrency side effects. Low overhead – one read, one write. Open Formats : Documents are described using JSON or XML or derivatives.  Clean & self-describing. Schema free : Strict schemas are great, until they change.  Schema free gives flexibility for evolving system without forcing the existing data to be restructured.
  7. Web Related Data , such as user sessions, shopping cart, etc. - Due to its document based nature means that you can retrieve and store all the data required to process a request in a single remote call. Dynamic Entities , such as user-customizable entities, entities with a large number of optional fields, etc. - The schema free nature means that you don't have to fight a relational model to implement it. Persisted View Models - Instead of recreating the view model from scratch on every request, you can store it in its final form in a document database. That leads to reduced computation, reduced number of remote calls and improved overall performance. Large Data Sets - The underlying storage mechanism for Raven is known to scale in excess of 1 terabyte (on a single machine) and the non relational nature of the database makes it trivial to shard the database across multiple machines, something that Raven can do natively.
  8. In a multi-user environment, data on the screen is always stale. Due to this fact, we don't need a complicated ORM to pull "live" data out of our OLTP database.  The user interface needs to capture the user's intent, not just their input.  It can then build up commands that are submitted asynchronously to the services layer.  This is a more imperative way of doing things and provides the opportunity to inject business processes without changing the user interface. This allows our backend process to have as much time as it needs to perform the business logic & update the database.  Udi Dahan
  9. ESENT can handle up to 16 terrabytes on a single machine. Many teams at Microsoft—including The Active Directory, Windows Desktop Search, Windows Mail, Live Mesh, and Windows Update—currently rely on ESENT for data storage. And Microsoft Exchange stores all of its mailbox data (a large server typically has dozens of terrabytes of data) using a slightly modified version of the ESENT code. Part of Windows since Windows 2000.
  10. ESENT can handle up to 16 terrabytes on a single machine. Many teams at Microsoft—including The Active Directory, Windows Desktop Search, Windows Mail, Live Mesh, and Windows Update—currently rely on ESENT for data storage. And Microsoft Exchange stores all of its mailbox data (a large server typically has dozens of terrabytes of data) using a slightly modified version of the ESENT code. Part of Windows since Windows 2000.
  11. ASP.NET Music Store Sample http://www.asp.net/mvc/samples/mvc-music-store Ayende blog post on Porting sample to Raven http://ayende.com/Blog/archive/2010/05/18/porting-mvc-music-store-to-raven-the-data-model.aspx