SlideShare a Scribd company logo
Using MongoDB
to Build a Fast and Scalable Content
Repository
Some Context
What we Do and What
Problems We Try to Solve
Nuxeo Platform
• We provide a Platform that developers can use to build
highly customised Content Applications
• We provide components, and the tools to assemble them
• The Platform is open source (https://github.com/nuxeo)
• Various customers - various use cases
• Me: Product Director at Nuxeo @aescaffre
Document Repository
• Document Oriented Database
➡ store JSON documents
• Document Repository
➡Manage Document attributes,
hierarchy, blobs, security,
lifecycle, versions
Document Repository
Storage
abstraction:be able
to choose the right
storage:
• Depending on the
constraints
• Depending on the
environment
Document Repository
A Nuxeo Platform document
Document Repository
With custom schemas:
Document Repository
Security on each record:
Document Repository
Thumbnail, Preview URLs
Get A Conversion (image, video, office, sound)
GET http://localhost:8080/nuxeo/api/v1/path/{docPath}/@convert?type=application%2Fpd
Document Repository
•Start a Worklfow
curl -X POST 'http://localhost:8080/nuxeo/site/automation/
Context.StartWorkflow' -H 'Accept: */*' -H 'Authorization: Basic
QWRtaW5pc3RyYXRvcjpBZG1pbmlzdHJhdG9y’ -H 'content-type:
application/json+nxrequest' -d '{"params":{"id":"serial-
review","start":"true"},"input":"/default-domain/Passports/
3719050812174596321","context":{}}'
•Do Some Queries
SELECT * FROM Document WHERE files/*1/file/name LIKE '%.txt' AND files/*1/file/length = 0
History : Nuxeo Repository And Storage
• 2006: Nuxeo Repository is based on ZODB (Python / Zope based):
• This is not JSON in NoSQL, but Python serialization in ObjectDB
• Concurrency and performances issues, Bad transaction handling2007: Nuxeo Platform 5.1 - Apache
JackRabbit (JCR based)
• 2007: Nuxeo Platform 5.1 - Apache JackRabbit (JCR based)
• Mix SQL + Java Serialization + Lucene
• Transaction and consistency issues
• 2009: Nuxeo 5.2 - Nuxeo VCS
• SQL based repository : MVCC & ACID
• very reliable, but some use cases can not fit in a SQL DB !
• 2014: Nuxeo 5.9 - Nuxeo DBS
• Document Based Storage repository
• MongoDB is the reference backend
From SQL to NoSQL
Understanding the
motivations for moving to
MongoDB
SQL Based Repository
KEY LIMITATIONS OF THE SQL APPROACH
• Impedance Issues
• storing Documents in tables is not easy
• requires Caching and Lazy loading
• Scalability
• Document repository can become very large (versions, workflows …)
• Scaling out SQL DB is very complex (and never transparent)
• Concurrency model
• Heavy write is an issue (Quotas, Inheritance)
• Heavy write is an issue (Quotas, Inheritance)
Need a Different Storage Model!
From SQL to NoSQL
NoSQL with MongoDB
• No Impedance Issue
‣ One Nuxeo Document = One MongoDB Document
• No Scalability Issue
‣ Native distributed architecture allows scale out
• No Concurrency Issue
‣ Document Level "Transactions"
• No Application Level Cache is Needed
‣ No need to manage invalidations
MongoDB Integration
Inside nuxeo-dbs storage
adapter
Document base Storage & Mongodb
Storing Nuxeo Documents in MongoDB
Hierarchy
• Parent-child relationship: ecm:parentId
• Recursion optimised through ecm:ancestorIds array
• Maintained by the framework (create, delete, move, copy)
Security
• Generic ACP stored in ecm:acp field
• Precomputed Read ACLs to avoid post-filtering on search
• Simple Set of identities having access
• Semantic restriction on blocking
• Maintained by framework
• Search matches if intersection
Search
Consistency Challenges
• Unitary Document Operations Are Safe
• No impedance issue
• Large batch updates is not so much of an issue
• SQL DB do not like long running transactions anyway
• Multi-documents transactions are an issue
• Workflows is a typical use case
• Isolation issue
• Other transactions can see intermediate states
Mitigating Consistency Issues
• Transient State Manager
• Run All Operations In Memory
• Flush to MongoDB as late as
possible
• Populate an Undo log
• Replay backward in case of
Rollback
➡recover partial transaction
management
Complete isolation not possible
• Need to flush transient state for queries
• “uncommited” changes are visible to others
➡Read Uncommitted, at best
Typical Use Cases ForMongoDB
Huge Repository - Heavy Loading
• Massive Amount of Documents (X00,000,000+ docs)
➡ Retail DAM repository, Banks archiving repository (email), large B2C
companies invoicing output
• Automatic and grape versioning: create a version for each
single change
➡ Pharmaceutical,financial, etc.
Huge Repository - Heavy Loading
• Massive Amount of Documents (X00,000,000+ docs)
➡ Retail DAM repository, Banks archiving repository (email), large B2C
companies invoicing output
• Automatic and grape versioning: create a version for each
single change
➡ Pharmaceutical,financial, etc.
SQL DB collapses (on commodity hardware)
MongoDB handles the volume
Benchmarking Mass Import
Benchmarking Mass Import
• Process 20000 documents
๏ 700 documents/s with SQL backend (cold cache)
๏ 6,000 documents/s with MongoDB / mmapv1: x9
๏ 11,000 documents/s with MongoDB / wiredTiger: x15
• Process 100000 documents
๏ 750 documents/s with SQL backend (cold cache)
๏ 9,500 documents/s with MongoDB / mmapv1: x9
๏ 11,500 documents/s with MongoDB / wiredTiger: x15
• Process 200000 documents
๏ 750 documents/s with SQL backend (cold cache)
๏ 14,000 documents/s with MongoDB / mmapv1: x9
๏ 11,000 documents/s with MongoDB / wiredTiger: x15
Benchmarking Scale Out
• 1 Nuxeo node + 1 MongoDB node
• 1900 docs/s
• MongoDB CPU is the bottleneck (800%)
• 2 Nuxeo nodes + 1 MongoDB node
• 1850 docs/s
• MongoDB CPU is the bottleneck (800%)
• 2 Nuxeo nodes + 2 MongoDB nodes
• 3400 docs/s when using read preferences
Adding one MongoDB node adds 80% throughput
Geo-distributed Architecture
A Real Life Exemple
Context
• Who: US Network
Carier
• Goal: Provide VOD
Services
• Requirements:
• store videos
• manage metadata
• manage workflows
• generate thumbs
• generate conversions
• manage availability
Nuxeo Platform as
a videos repository
Challenges
• Very Large Objects:
• Lots of metadata (dublincore, ADI,
ratings)
• Massive Daily Updates
• Updates On Rights and Availability
• Need To Track All Changes
• Prove what was the availability for a
given date
Lots of data + lots of updates
➡ db.createCollection(“myMovies”)
MongoDB Choice
• They chose MongoDB
• because they have a good use case
for MongoDB
• because they wanted to use
MongoDB
• change work habits (Open source,
NoSQL)
• doing a project with MongoDB is
cool!!
Ad

More Related Content

What's hot (20)

Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0
MongoDB
 
GlobalsDB: Its significance for Node.js Developers
GlobalsDB: Its significance for Node.js DevelopersGlobalsDB: Its significance for Node.js Developers
GlobalsDB: Its significance for Node.js Developers
Rob Tweed
 
Ndb cluster 80_use_cases
Ndb cluster 80_use_casesNdb cluster 80_use_cases
Ndb cluster 80_use_cases
mikaelronstrom
 
Javascript on Server-Side
Javascript on Server-SideJavascript on Server-Side
Javascript on Server-Side
ASIMYILDIZ
 
Redis Developers Day 2014 - Redis Labs Talks
Redis Developers Day 2014 - Redis Labs TalksRedis Developers Day 2014 - Redis Labs Talks
Redis Developers Day 2014 - Redis Labs Talks
Redis Labs
 
Practical Design Patterns for Building Applications Resilient to Infrastructu...
Practical Design Patterns for Building Applications Resilient to Infrastructu...Practical Design Patterns for Building Applications Resilient to Infrastructu...
Practical Design Patterns for Building Applications Resilient to Infrastructu...
MongoDB
 
Cosmos db
Cosmos dbCosmos db
Cosmos db
Martino Bordin
 
Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012
Amazee Labs
 
Lessons from the Trenches - Building Enterprise Applications with RavenDB
Lessons from the Trenches - Building Enterprise Applications with RavenDBLessons from the Trenches - Building Enterprise Applications with RavenDB
Lessons from the Trenches - Building Enterprise Applications with RavenDB
Oren Eini
 
Turning object storage into vm storage
Turning object storage into vm storageTurning object storage into vm storage
Turning object storage into vm storage
wim_provoost
 
Scaling MongoDB to a Million Collections
Scaling MongoDB to a Million CollectionsScaling MongoDB to a Million Collections
Scaling MongoDB to a Million Collections
MongoDB
 
MongoDB Evenings Boston - An Update on MongoDB's WiredTiger Storage Engine
MongoDB Evenings Boston - An Update on MongoDB's WiredTiger Storage EngineMongoDB Evenings Boston - An Update on MongoDB's WiredTiger Storage Engine
MongoDB Evenings Boston - An Update on MongoDB's WiredTiger Storage Engine
MongoDB
 
A Technical Introduction to WiredTiger
A Technical Introduction to WiredTigerA Technical Introduction to WiredTiger
A Technical Introduction to WiredTiger
MongoDB
 
Web Performance Part 3 "Server-side tips"
Web Performance Part 3  "Server-side tips"Web Performance Part 3  "Server-side tips"
Web Performance Part 3 "Server-side tips"
Binary Studio
 
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.xCodemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Bert Jan Schrijver
 
Orchestrating MySQL
Orchestrating MySQLOrchestrating MySQL
Orchestrating MySQL
Ivan Zoratti
 
Sharding
ShardingSharding
Sharding
Weng Wei
 
Turning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platformTurning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platform
wim_provoost
 
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
eLiberatica
 
JS Lab`16. Андрей Колодницкий: "Разработка REST сервисов на SailsJS"
JS Lab`16. Андрей Колодницкий: "Разработка REST сервисов на SailsJS"JS Lab`16. Андрей Колодницкий: "Разработка REST сервисов на SailsJS"
JS Lab`16. Андрей Колодницкий: "Разработка REST сервисов на SailsJS"
GeeksLab Odessa
 
Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0
MongoDB
 
GlobalsDB: Its significance for Node.js Developers
GlobalsDB: Its significance for Node.js DevelopersGlobalsDB: Its significance for Node.js Developers
GlobalsDB: Its significance for Node.js Developers
Rob Tweed
 
Ndb cluster 80_use_cases
Ndb cluster 80_use_casesNdb cluster 80_use_cases
Ndb cluster 80_use_cases
mikaelronstrom
 
Javascript on Server-Side
Javascript on Server-SideJavascript on Server-Side
Javascript on Server-Side
ASIMYILDIZ
 
Redis Developers Day 2014 - Redis Labs Talks
Redis Developers Day 2014 - Redis Labs TalksRedis Developers Day 2014 - Redis Labs Talks
Redis Developers Day 2014 - Redis Labs Talks
Redis Labs
 
Practical Design Patterns for Building Applications Resilient to Infrastructu...
Practical Design Patterns for Building Applications Resilient to Infrastructu...Practical Design Patterns for Building Applications Resilient to Infrastructu...
Practical Design Patterns for Building Applications Resilient to Infrastructu...
MongoDB
 
Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012Drupal High Availability High Performance 2012
Drupal High Availability High Performance 2012
Amazee Labs
 
Lessons from the Trenches - Building Enterprise Applications with RavenDB
Lessons from the Trenches - Building Enterprise Applications with RavenDBLessons from the Trenches - Building Enterprise Applications with RavenDB
Lessons from the Trenches - Building Enterprise Applications with RavenDB
Oren Eini
 
Turning object storage into vm storage
Turning object storage into vm storageTurning object storage into vm storage
Turning object storage into vm storage
wim_provoost
 
Scaling MongoDB to a Million Collections
Scaling MongoDB to a Million CollectionsScaling MongoDB to a Million Collections
Scaling MongoDB to a Million Collections
MongoDB
 
MongoDB Evenings Boston - An Update on MongoDB's WiredTiger Storage Engine
MongoDB Evenings Boston - An Update on MongoDB's WiredTiger Storage EngineMongoDB Evenings Boston - An Update on MongoDB's WiredTiger Storage Engine
MongoDB Evenings Boston - An Update on MongoDB's WiredTiger Storage Engine
MongoDB
 
A Technical Introduction to WiredTiger
A Technical Introduction to WiredTigerA Technical Introduction to WiredTiger
A Technical Introduction to WiredTiger
MongoDB
 
Web Performance Part 3 "Server-side tips"
Web Performance Part 3  "Server-side tips"Web Performance Part 3  "Server-side tips"
Web Performance Part 3 "Server-side tips"
Binary Studio
 
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.xCodemotion Amsterdam 2016 - Building microservices with Vert.x
Codemotion Amsterdam 2016 - Building microservices with Vert.x
Bert Jan Schrijver
 
Orchestrating MySQL
Orchestrating MySQLOrchestrating MySQL
Orchestrating MySQL
Ivan Zoratti
 
Turning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platformTurning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platform
wim_provoost
 
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
"Clouds on the Horizon Get Ready for Drizzle" by David Axmark @ eLiberatica 2009
eLiberatica
 
JS Lab`16. Андрей Колодницкий: "Разработка REST сервисов на SailsJS"
JS Lab`16. Андрей Колодницкий: "Разработка REST сервисов на SailsJS"JS Lab`16. Андрей Колодницкий: "Разработка REST сервисов на SailsJS"
JS Lab`16. Андрей Колодницкий: "Разработка REST сервисов на SailsJS"
GeeksLab Odessa
 

Viewers also liked (20)

Workshop - gestiunea repository-urilor folosind GIT
Workshop - gestiunea repository-urilor folosind GITWorkshop - gestiunea repository-urilor folosind GIT
Workshop - gestiunea repository-urilor folosind GIT
IDG Romania
 
OpenAIRE at Belgian NCP, Brussels, October 2010.
OpenAIRE at Belgian NCP, Brussels, October 2010.OpenAIRE at Belgian NCP, Brussels, October 2010.
OpenAIRE at Belgian NCP, Brussels, October 2010.
OpenAIRE
 
Horstmann repositories for_research_information_management
Horstmann repositories for_research_information_management Horstmann repositories for_research_information_management
Horstmann repositories for_research_information_management
BDLSS
 
OpenAIRE presentation in Sarajevo, May 2010
OpenAIRE presentation in Sarajevo, May 2010OpenAIRE presentation in Sarajevo, May 2010
OpenAIRE presentation in Sarajevo, May 2010
OpenAIRE
 
Institutional repositories notes
Institutional repositories notesInstitutional repositories notes
Institutional repositories notes
Tor Loney
 
INVENIO: Pythonic Framework for Large-Scale Digital Libraries
INVENIO: Pythonic Framework for Large-Scale Digital LibrariesINVENIO: Pythonic Framework for Large-Scale Digital Libraries
INVENIO: Pythonic Framework for Large-Scale Digital Libraries
AIMS (Agricultural Information Management Standards)
 
E solutions+ +open+source+-+27mai2010
E solutions+ +open+source+-+27mai2010E solutions+ +open+source+-+27mai2010
E solutions+ +open+source+-+27mai2010
Agora Group
 
Invenio_CEC_Capability_v07
Invenio_CEC_Capability_v07Invenio_CEC_Capability_v07
Invenio_CEC_Capability_v07
Manoj Narang
 
Horstmann digital strategies_for_21st_century_libraries
Horstmann digital strategies_for_21st_century_librariesHorstmann digital strategies_for_21st_century_libraries
Horstmann digital strategies_for_21st_century_libraries
BDLSS
 
Bobby voicu, general manager, intact interactive pr and the web
Bobby voicu, general manager, intact interactive pr and the webBobby voicu, general manager, intact interactive pr and the web
Bobby voicu, general manager, intact interactive pr and the web
RevistaBiz
 
OpenAIRE short presentation
OpenAIRE short presentationOpenAIRE short presentation
OpenAIRE short presentation
OpenAIRE
 
OpenAIRE "How to make your repository OpenAIRE compliant: proprietary platforms"
OpenAIRE "How to make your repository OpenAIRE compliant: proprietary platforms"OpenAIRE "How to make your repository OpenAIRE compliant: proprietary platforms"
OpenAIRE "How to make your repository OpenAIRE compliant: proprietary platforms"
OpenAIRE
 
Zilele Biz 2015 - CSR - Mario de Mezzo, Habitat for Humanity
Zilele Biz 2015 - CSR - Mario de Mezzo, Habitat for HumanityZilele Biz 2015 - CSR - Mario de Mezzo, Habitat for Humanity
Zilele Biz 2015 - CSR - Mario de Mezzo, Habitat for Humanity
Gabriel Barliga
 
Solutii software testate si implementate la BUDJG
Solutii software testate si implementate la BUDJGSolutii software testate si implementate la BUDJG
Solutii software testate si implementate la BUDJG
Biblioteca Universitatii "Dunarea de Jos" din Galati
 
Exploring the GitHub Service Universe
Exploring the GitHub Service UniverseExploring the GitHub Service Universe
Exploring the GitHub Service Universe
Björn Kimminich
 
Open Education, Open Educational Resources and Massive Open Online Courses. ...
Open Education, Open Educational Resources and Massive Open Online Courses.  ...Open Education, Open Educational Resources and Massive Open Online Courses.  ...
Open Education, Open Educational Resources and Massive Open Online Courses. ...
Carmen Holotescu
 
What do students think about MOOC?
What do students think about MOOC?What do students think about MOOC?
What do students think about MOOC?
Gabriela Grosseck
 
Workshop - gestiunea repository-urilor folosind GIT
Workshop - gestiunea repository-urilor folosind GITWorkshop - gestiunea repository-urilor folosind GIT
Workshop - gestiunea repository-urilor folosind GIT
IDG Romania
 
OpenAIRE at Belgian NCP, Brussels, October 2010.
OpenAIRE at Belgian NCP, Brussels, October 2010.OpenAIRE at Belgian NCP, Brussels, October 2010.
OpenAIRE at Belgian NCP, Brussels, October 2010.
OpenAIRE
 
Horstmann repositories for_research_information_management
Horstmann repositories for_research_information_management Horstmann repositories for_research_information_management
Horstmann repositories for_research_information_management
BDLSS
 
OpenAIRE presentation in Sarajevo, May 2010
OpenAIRE presentation in Sarajevo, May 2010OpenAIRE presentation in Sarajevo, May 2010
OpenAIRE presentation in Sarajevo, May 2010
OpenAIRE
 
Institutional repositories notes
Institutional repositories notesInstitutional repositories notes
Institutional repositories notes
Tor Loney
 
E solutions+ +open+source+-+27mai2010
E solutions+ +open+source+-+27mai2010E solutions+ +open+source+-+27mai2010
E solutions+ +open+source+-+27mai2010
Agora Group
 
Invenio_CEC_Capability_v07
Invenio_CEC_Capability_v07Invenio_CEC_Capability_v07
Invenio_CEC_Capability_v07
Manoj Narang
 
Horstmann digital strategies_for_21st_century_libraries
Horstmann digital strategies_for_21st_century_librariesHorstmann digital strategies_for_21st_century_libraries
Horstmann digital strategies_for_21st_century_libraries
BDLSS
 
Bobby voicu, general manager, intact interactive pr and the web
Bobby voicu, general manager, intact interactive pr and the webBobby voicu, general manager, intact interactive pr and the web
Bobby voicu, general manager, intact interactive pr and the web
RevistaBiz
 
OpenAIRE short presentation
OpenAIRE short presentationOpenAIRE short presentation
OpenAIRE short presentation
OpenAIRE
 
OpenAIRE "How to make your repository OpenAIRE compliant: proprietary platforms"
OpenAIRE "How to make your repository OpenAIRE compliant: proprietary platforms"OpenAIRE "How to make your repository OpenAIRE compliant: proprietary platforms"
OpenAIRE "How to make your repository OpenAIRE compliant: proprietary platforms"
OpenAIRE
 
Zilele Biz 2015 - CSR - Mario de Mezzo, Habitat for Humanity
Zilele Biz 2015 - CSR - Mario de Mezzo, Habitat for HumanityZilele Biz 2015 - CSR - Mario de Mezzo, Habitat for Humanity
Zilele Biz 2015 - CSR - Mario de Mezzo, Habitat for Humanity
Gabriel Barliga
 
Exploring the GitHub Service Universe
Exploring the GitHub Service UniverseExploring the GitHub Service Universe
Exploring the GitHub Service Universe
Björn Kimminich
 
Open Education, Open Educational Resources and Massive Open Online Courses. ...
Open Education, Open Educational Resources and Massive Open Online Courses.  ...Open Education, Open Educational Resources and Massive Open Online Courses.  ...
Open Education, Open Educational Resources and Massive Open Online Courses. ...
Carmen Holotescu
 
What do students think about MOOC?
What do students think about MOOC?What do students think about MOOC?
What do students think about MOOC?
Gabriela Grosseck
 
Ad

Similar to MongoDB Days UK: Using MongoDB to Build a Fast and Scalable Content Repository Sponsored by Nuxeo (20)

A Presentation on MongoDB Introduction - Habilelabs
A Presentation on MongoDB Introduction - HabilelabsA Presentation on MongoDB Introduction - Habilelabs
A Presentation on MongoDB Introduction - Habilelabs
HabileLabs
 
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
DATAVERSITY
 
Cool NoSQL on Azure with DocumentDB
Cool NoSQL on Azure with DocumentDBCool NoSQL on Azure with DocumentDB
Cool NoSQL on Azure with DocumentDB
Jan Hentschel
 
2016_04_04_CNI_Spring_Meeting_Microservices
2016_04_04_CNI_Spring_Meeting_Microservices2016_04_04_CNI_Spring_Meeting_Microservices
2016_04_04_CNI_Spring_Meeting_Microservices
Jason Varghese
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDB
Radenko Zec
 
MongoDB at community engine
MongoDB at community engineMongoDB at community engine
MongoDB at community engine
mathraq
 
Mongo DB at Community Engine
Mongo DB at Community EngineMongo DB at Community Engine
Mongo DB at Community Engine
Community Engine
 
Using MongoDB to Build a Fast and Scalable Content Repository
Using MongoDB to Build a Fast and Scalable Content RepositoryUsing MongoDB to Build a Fast and Scalable Content Repository
Using MongoDB to Build a Fast and Scalable Content Repository
MongoDB
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Lucas Jellema
 
Running MongoDB in the Cloud
Running MongoDB in the CloudRunning MongoDB in the Cloud
Running MongoDB in the Cloud
Tony Tam
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
Bert Poller
 
Azure doc db (slideshare)
Azure doc db (slideshare)Azure doc db (slideshare)
Azure doc db (slideshare)
David Green
 
Full stack development using javascript what and why - ajay chandravadiya
Full stack development using javascript   what and why - ajay chandravadiyaFull stack development using javascript   what and why - ajay chandravadiya
Full stack development using javascript what and why - ajay chandravadiya
ajayrcgmail
 
Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)
Don Demcsak
 
Latest (storage IO) patterns for cloud-native applications
Latest (storage IO) patterns for cloud-native applications Latest (storage IO) patterns for cloud-native applications
Latest (storage IO) patterns for cloud-native applications
OpenEBS
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
Łukasz Sowa
 
Starting from scratch in 2017
Starting from scratch in 2017Starting from scratch in 2017
Starting from scratch in 2017
Stefano Bonetta
 
Scaling with mongo db (with notes)
Scaling with mongo db (with notes)Scaling with mongo db (with notes)
Scaling with mongo db (with notes)
emiltamas
 
Percona Live 4/14/15: Leveraging open stack cinder for peak application perfo...
Percona Live 4/14/15: Leveraging open stack cinder for peak application perfo...Percona Live 4/14/15: Leveraging open stack cinder for peak application perfo...
Percona Live 4/14/15: Leveraging open stack cinder for peak application perfo...
Tesora
 
ma-formation-en-Docker-jlklk,nknkjn.pptx
ma-formation-en-Docker-jlklk,nknkjn.pptxma-formation-en-Docker-jlklk,nknkjn.pptx
ma-formation-en-Docker-jlklk,nknkjn.pptx
imenhamada17
 
A Presentation on MongoDB Introduction - Habilelabs
A Presentation on MongoDB Introduction - HabilelabsA Presentation on MongoDB Introduction - Habilelabs
A Presentation on MongoDB Introduction - Habilelabs
HabileLabs
 
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
A Case Study of NoSQL Adoption: What Drove Wordnik Non-Relational?
DATAVERSITY
 
Cool NoSQL on Azure with DocumentDB
Cool NoSQL on Azure with DocumentDBCool NoSQL on Azure with DocumentDB
Cool NoSQL on Azure with DocumentDB
Jan Hentschel
 
2016_04_04_CNI_Spring_Meeting_Microservices
2016_04_04_CNI_Spring_Meeting_Microservices2016_04_04_CNI_Spring_Meeting_Microservices
2016_04_04_CNI_Spring_Meeting_Microservices
Jason Varghese
 
Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDB
Radenko Zec
 
MongoDB at community engine
MongoDB at community engineMongoDB at community engine
MongoDB at community engine
mathraq
 
Mongo DB at Community Engine
Mongo DB at Community EngineMongo DB at Community Engine
Mongo DB at Community Engine
Community Engine
 
Using MongoDB to Build a Fast and Scalable Content Repository
Using MongoDB to Build a Fast and Scalable Content RepositoryUsing MongoDB to Build a Fast and Scalable Content Repository
Using MongoDB to Build a Fast and Scalable Content Repository
MongoDB
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Lucas Jellema
 
Running MongoDB in the Cloud
Running MongoDB in the CloudRunning MongoDB in the Cloud
Running MongoDB in the Cloud
Tony Tam
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
Bert Poller
 
Azure doc db (slideshare)
Azure doc db (slideshare)Azure doc db (slideshare)
Azure doc db (slideshare)
David Green
 
Full stack development using javascript what and why - ajay chandravadiya
Full stack development using javascript   what and why - ajay chandravadiyaFull stack development using javascript   what and why - ajay chandravadiya
Full stack development using javascript what and why - ajay chandravadiya
ajayrcgmail
 
Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)Big Data (NJ SQL Server User Group)
Big Data (NJ SQL Server User Group)
Don Demcsak
 
Latest (storage IO) patterns for cloud-native applications
Latest (storage IO) patterns for cloud-native applications Latest (storage IO) patterns for cloud-native applications
Latest (storage IO) patterns for cloud-native applications
OpenEBS
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
Łukasz Sowa
 
Starting from scratch in 2017
Starting from scratch in 2017Starting from scratch in 2017
Starting from scratch in 2017
Stefano Bonetta
 
Scaling with mongo db (with notes)
Scaling with mongo db (with notes)Scaling with mongo db (with notes)
Scaling with mongo db (with notes)
emiltamas
 
Percona Live 4/14/15: Leveraging open stack cinder for peak application perfo...
Percona Live 4/14/15: Leveraging open stack cinder for peak application perfo...Percona Live 4/14/15: Leveraging open stack cinder for peak application perfo...
Percona Live 4/14/15: Leveraging open stack cinder for peak application perfo...
Tesora
 
ma-formation-en-Docker-jlklk,nknkjn.pptx
ma-formation-en-Docker-jlklk,nknkjn.pptxma-formation-en-Docker-jlklk,nknkjn.pptx
ma-formation-en-Docker-jlklk,nknkjn.pptx
imenhamada17
 
Ad

More from MongoDB (20)

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB
 

Recently uploaded (20)

The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5..."Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
Fwdays
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Leading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael JidaelLeading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael Jidael
Michael Jidael
 
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from AnywhereAutomation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Lynda Kane
 
Asthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdfAsthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdf
VanessaRaudez
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5..."Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
"Client Partnership — the Path to Exponential Growth for Companies Sized 50-5...
Fwdays
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Leading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael JidaelLeading AI Innovation As A Product Manager - Michael Jidael
Leading AI Innovation As A Product Manager - Michael Jidael
Michael Jidael
 
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from AnywhereAutomation Hour 1/28/2022: Capture User Feedback from Anywhere
Automation Hour 1/28/2022: Capture User Feedback from Anywhere
Lynda Kane
 
Asthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdfAsthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdf
VanessaRaudez
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 

MongoDB Days UK: Using MongoDB to Build a Fast and Scalable Content Repository Sponsored by Nuxeo

  • 1. Using MongoDB to Build a Fast and Scalable Content Repository
  • 2. Some Context What we Do and What Problems We Try to Solve
  • 3. Nuxeo Platform • We provide a Platform that developers can use to build highly customised Content Applications • We provide components, and the tools to assemble them • The Platform is open source (https://github.com/nuxeo) • Various customers - various use cases • Me: Product Director at Nuxeo @aescaffre
  • 4. Document Repository • Document Oriented Database ➡ store JSON documents • Document Repository ➡Manage Document attributes, hierarchy, blobs, security, lifecycle, versions
  • 5. Document Repository Storage abstraction:be able to choose the right storage: • Depending on the constraints • Depending on the environment
  • 6. Document Repository A Nuxeo Platform document
  • 9. Document Repository Thumbnail, Preview URLs Get A Conversion (image, video, office, sound) GET http://localhost:8080/nuxeo/api/v1/path/{docPath}/@convert?type=application%2Fpd
  • 10. Document Repository •Start a Worklfow curl -X POST 'http://localhost:8080/nuxeo/site/automation/ Context.StartWorkflow' -H 'Accept: */*' -H 'Authorization: Basic QWRtaW5pc3RyYXRvcjpBZG1pbmlzdHJhdG9y’ -H 'content-type: application/json+nxrequest' -d '{"params":{"id":"serial- review","start":"true"},"input":"/default-domain/Passports/ 3719050812174596321","context":{}}' •Do Some Queries SELECT * FROM Document WHERE files/*1/file/name LIKE '%.txt' AND files/*1/file/length = 0
  • 11. History : Nuxeo Repository And Storage • 2006: Nuxeo Repository is based on ZODB (Python / Zope based): • This is not JSON in NoSQL, but Python serialization in ObjectDB • Concurrency and performances issues, Bad transaction handling2007: Nuxeo Platform 5.1 - Apache JackRabbit (JCR based) • 2007: Nuxeo Platform 5.1 - Apache JackRabbit (JCR based) • Mix SQL + Java Serialization + Lucene • Transaction and consistency issues • 2009: Nuxeo 5.2 - Nuxeo VCS • SQL based repository : MVCC & ACID • very reliable, but some use cases can not fit in a SQL DB ! • 2014: Nuxeo 5.9 - Nuxeo DBS • Document Based Storage repository • MongoDB is the reference backend
  • 12. From SQL to NoSQL Understanding the motivations for moving to MongoDB
  • 14. KEY LIMITATIONS OF THE SQL APPROACH • Impedance Issues • storing Documents in tables is not easy • requires Caching and Lazy loading • Scalability • Document repository can become very large (versions, workflows …) • Scaling out SQL DB is very complex (and never transparent) • Concurrency model • Heavy write is an issue (Quotas, Inheritance) • Heavy write is an issue (Quotas, Inheritance)
  • 15. Need a Different Storage Model!
  • 16. From SQL to NoSQL
  • 17. NoSQL with MongoDB • No Impedance Issue ‣ One Nuxeo Document = One MongoDB Document • No Scalability Issue ‣ Native distributed architecture allows scale out • No Concurrency Issue ‣ Document Level "Transactions" • No Application Level Cache is Needed ‣ No need to manage invalidations
  • 21. Hierarchy • Parent-child relationship: ecm:parentId • Recursion optimised through ecm:ancestorIds array • Maintained by the framework (create, delete, move, copy)
  • 22. Security • Generic ACP stored in ecm:acp field • Precomputed Read ACLs to avoid post-filtering on search • Simple Set of identities having access • Semantic restriction on blocking • Maintained by framework • Search matches if intersection
  • 24. Consistency Challenges • Unitary Document Operations Are Safe • No impedance issue • Large batch updates is not so much of an issue • SQL DB do not like long running transactions anyway • Multi-documents transactions are an issue • Workflows is a typical use case • Isolation issue • Other transactions can see intermediate states
  • 25. Mitigating Consistency Issues • Transient State Manager • Run All Operations In Memory • Flush to MongoDB as late as possible • Populate an Undo log • Replay backward in case of Rollback ➡recover partial transaction management Complete isolation not possible • Need to flush transient state for queries • “uncommited” changes are visible to others ➡Read Uncommitted, at best
  • 26. Typical Use Cases ForMongoDB
  • 27. Huge Repository - Heavy Loading • Massive Amount of Documents (X00,000,000+ docs) ➡ Retail DAM repository, Banks archiving repository (email), large B2C companies invoicing output • Automatic and grape versioning: create a version for each single change ➡ Pharmaceutical,financial, etc.
  • 28. Huge Repository - Heavy Loading • Massive Amount of Documents (X00,000,000+ docs) ➡ Retail DAM repository, Banks archiving repository (email), large B2C companies invoicing output • Automatic and grape versioning: create a version for each single change ➡ Pharmaceutical,financial, etc. SQL DB collapses (on commodity hardware) MongoDB handles the volume
  • 30. Benchmarking Mass Import • Process 20000 documents ๏ 700 documents/s with SQL backend (cold cache) ๏ 6,000 documents/s with MongoDB / mmapv1: x9 ๏ 11,000 documents/s with MongoDB / wiredTiger: x15 • Process 100000 documents ๏ 750 documents/s with SQL backend (cold cache) ๏ 9,500 documents/s with MongoDB / mmapv1: x9 ๏ 11,500 documents/s with MongoDB / wiredTiger: x15 • Process 200000 documents ๏ 750 documents/s with SQL backend (cold cache) ๏ 14,000 documents/s with MongoDB / mmapv1: x9 ๏ 11,000 documents/s with MongoDB / wiredTiger: x15
  • 31. Benchmarking Scale Out • 1 Nuxeo node + 1 MongoDB node • 1900 docs/s • MongoDB CPU is the bottleneck (800%) • 2 Nuxeo nodes + 1 MongoDB node • 1850 docs/s • MongoDB CPU is the bottleneck (800%) • 2 Nuxeo nodes + 2 MongoDB nodes • 3400 docs/s when using read preferences Adding one MongoDB node adds 80% throughput
  • 33. A Real Life Exemple
  • 34. Context • Who: US Network Carier • Goal: Provide VOD Services • Requirements: • store videos • manage metadata • manage workflows • generate thumbs • generate conversions • manage availability Nuxeo Platform as a videos repository
  • 35. Challenges • Very Large Objects: • Lots of metadata (dublincore, ADI, ratings) • Massive Daily Updates • Updates On Rights and Availability • Need To Track All Changes • Prove what was the availability for a given date Lots of data + lots of updates ➡ db.createCollection(“myMovies”)
  • 36. MongoDB Choice • They chose MongoDB • because they have a good use case for MongoDB • because they wanted to use MongoDB • change work habits (Open source, NoSQL) • doing a project with MongoDB is cool!!