SlideShare a Scribd company logo
Effectively Scale and Operate AEM with MongoDB
Agenda
MongoDB Introduction
MongoMK
Sizing
Deployment
Operational Best Practices
Introduction
Norberto Leite
Technical Evangelist
Madrid, Spain
http://www.mongodb.com/norberto
@nleite
norberto@mongodb.com
introduction
MongoDB
GENERAL PURPOSE DOCUMENT DATABASE OPEN-SOURCE
MongoDB is Fully Featured
Query Operators
Condi&onal	
  Operators	
  	
  
$all,	
  $exists,	
  $mod,	
  $ne,	
  $in,	
  $nin,	
  $nor,	
  $or,	
  $size,	
  $type	
  
$lt,	
  $lte,	
  $gt,	
  $gte	
  
	
  
//	
  find	
  customers	
  with	
  any	
  claims	
  
>	
  db.customers.find(	
  {claims:	
  {$exists:	
  true	
  }}	
  )	
  
	
  
//	
  find	
  customers	
  matching	
  a	
  regular	
  expression	
  
>	
  db.customers.find(	
  {last:	
  /^rog*/i	
  }	
  )	
  
	
  
//	
  count	
  customers	
  by	
  city	
  
>	
  db.customers.find(	
  {city:	
  ‘Philadelphia’}	
  ).count()	
  
Indexes
// Index nested documents
> db.customers.ensureIndex( “policies.agent”:1 )
> db.customers.find({‘policies.agent’:’Fred’})
// geospatial index
> db.customers.ensureIndex( “property.location”: “2d” )
> db.customers.find( “property.location” : { $near : [22,42] } )
// text index
> db.customers.ensureIndex( “policies.notes”: “text” )
Documents are Rich Data Structures
{ !
first_name: ‘Paul’,!
surname: ‘Miller’,!
cell: 447557505611, !
city: ‘London’,!
location: [45.123,47.232],!
Profession: [banking, finance, trader],!
cars: [ !
{ model: ‘Bentley’,!
year: 1973,!
value: 100000, … },!
{ model: ‘Rolls Royce’,!
year: 1965,!
value: 330000, … }!
]!
}!
Fields can contain an array of sub-documents
Fields
Fields can contain arrays
Typed field valuesString
Number
Over
10,000,000
downloads
300,000 Students
for MongoDB
University
35,000
attendees to
MongoDB events
annually
Over 1,000
Partners
Over 2,000!
Paying Customers
MongoMK
MongoDB MicroKernel
•  AEM 6 Scalable Storage Solution
•  Flexible
•  Multi-Datacenter Deployments
•  Geo Distributed Content
•  Auto-Failover
MongoMK
Nodes	
   Blobs	
  
Se4ngs	
  
Changes	
  
ClusterNodes	
  
Metadata	
  collec&on	
  
Content	
  node	
  structure	
  
Internal	
  AEM	
  indexes	
  
MulL	
  version	
  structures	
  	
  
	
  
Blobs	
  collec&on	
  
Binary	
  file	
  chunks	
  	
  
Enforces	
  data	
  de-­‐duplicaLon	
  
	
  
Se4ngs,	
  Changes,	
  ClusterNodes	
  
Internal	
  AEM	
  collecLons	
  
ConfiguraLon	
  and	
  seRngs	
  data	
  
	
  
MongoMK - Content
Metadata	
  
Binary	
  /	
  Blobs	
  
Binary	
  /	
  Blobs	
  
MongoMK – Metadata
Metadata	
  
MongoMK – Data Model
MongoMK – Version Control
Revisions	
  of	
  content	
  are	
  maintained	
  as	
  separate	
  
trees	
  
MongoMK – Data Model
MongoMK – Versioning & Concurrency
System	
  provides	
  version	
  and	
  concurrency	
  control	
  of	
  
content	
  revisions.	
  
MongoMK – Versioning & Concurrency
Binary	
  /	
  Blobs	
  
MongoMK – Binary Data
Metadata	
  
AEM Blob Storage
TAR MONGODB S3
Blobs on MongoMK
Posi&ve	
  	
   Penalty	
  
Unified	
  Storage	
  Layer	
   More	
  Storage	
  Requirements	
  
Reduced	
  OperaLonal	
  Overhead	
   More	
  I/O	
  Intensive	
  
Binary	
  De-­‐duplicaLon	
  	
   Higher	
  Bandwidth	
  Requirements	
  
MongoMK - Blobs
MongoMK - Blobs
Sizing
MONGODB SIZING
Availability	
  
	
  
Volume	
  
Expected	
  Latency	
   Working	
  Data	
  Set	
  
Availability
Sizing - Availability
AEM	
  
Edi&ng	
  
Cura&ng	
  
Valida&ng	
  
Primary	
  
Secondary	
  
Secondary	
  
Sizing - Availability
AEM	
  
Edi&ng	
  
Cura&ng	
  
Valida&ng	
  
Primary	
  
Secondary	
  
Primary	
  
Sizing - Availability
AEM	
  -­‐	
  author	
  
AEM	
  -­‐	
  author	
  
AEM	
  -­‐	
  author	
  
Primary	
  
Secondary	
   Secondary	
  
Datacenter	
  West	
   Datacenter	
  East	
  Datacenter	
  Center	
  
AEM	
  -­‐	
  author	
  AEM	
  -­‐	
  author	
  
Sizing - Availability
AEM	
  -­‐	
  author	
  
AEM	
  -­‐	
  author	
  
AEM	
  -­‐	
  author	
  
Primary	
  
Secondary	
   Secondary	
  
Backups	
  (hidden)	
   Hot	
  Backups	
  (delayed)	
  
Volume
Sizing - Volume
Indexes	
   ProperLes	
   MulL	
  Version	
  
Nodes	
  
Blobs	
  
Full	
  Text	
  Search	
  
Indexes	
  
Binary	
  Chunks	
  
Sizing - Volume
•  Space required by
–  Data
–  Indexes
•  Read / Write Ratio
•  Computational Unit Capacity
–  RAM
–  Disk
•  Types of Disks!
–  CPU
Working Set
Sizing – Working Set
Working	
  Set	
  
Rest	
  of	
  your	
  Database	
  
Sizing – Working Set
•  Percentage of data that is constantly request by the application
–  Indexes
–  Recent Used Data
•  Read / Write
–  Impacts the calculation of the RAM requirement
•  Working Set Should Fit In RAM
Working Set Not in RAM
Sizing – Working Set
•  AEM Calculation of Working Set
– Internal MongoDB Indexes
– Constantly accessed Assets
• % of data access
– AEM Indexes
• Multi-version Indexes
• Lucene Indexes
Working Set Can Be Distributed Across Shards
Sizing - Latency
Primary	
  
Secondary	
  
Secondary	
  
AEM	
  
AEM	
  
AEM	
  
ONLY	
  
SECONDARY	
  
READS!	
  
Deploy
Rules for a Good Deployment
Prototype	
  
Test	
  
Monitor	
  Scale	
  
Automate	
  
AEM + Ops Manager
Scale	
  Easily	
  Meet	
  SLAs	
  
Best	
  PracLces,	
  
Automated	
  
Cut	
  Management	
  
Overhead	
  
Demo
Operational Best Practices
Node Documents
{
"_id": "1:/norberto",
"_deleted": {
"r14e211fe903-0-1": "false"
},
"jcr:created": {
"r14e211fe903-0-1": ""dat:2015-06-23T17:53:36.257+02:00""
},
"jcr:createdBy": {
"r14e211fe903-0-1": ""admin""
},
"_commitRoot": {
"r14e211fe903-0-1": "0"
},
"jcr:primaryType": {
"r14e211fe903-0-1": ""nam:nt:folder""
},
"_modified": NumberLong("1435074815"),
"_modCount": NumberLong("1")
}
{
"_id": "1:/norberto",
…
"_commitRoot": {
"r14e211fe903-0-1": "0",
"r14e2122a4bb-0-1": "0"
},
…
"_modified": NumberLong("1435074995"),
"_modCount": NumberLong("3"),
"_children": true,
"_lastRev": {
"r0-0-1": "r14e2122a4bb-0-1"
}
}
Document Moves
2015-05-18T17:07:10.264+0200 [conn1298] command aem.$cmd command: findAndModify { findandmodify: "nodes", query:
{ _id: "10:/content/www/...", _modCount: 3 }, fields: { _id: 1 }, update: { $set: { ... }, $max: { _modified:
1431961630 }, $inc: { _modCount: 1 } } } update: { $set: { ... }, $max: { _modified: 1431961630 }, $inc:
{ _modCount: 1 } } nscanned:1 nscannedObjects:1 nmoved:1 nMatched:1 nModified:1 keyUpdates:0 numYields:0
locks(micros) w:116270 reslen:203 116ms!
nscanned:1464 nscannedObjects:1044 nmoved:288 nMatched:1044 nModified:1044 keyUpdates:1 numYields:11
locks(micros) w:242369 169ms!
nscanned:10829 nscannedObjects:10000 nmoved:1316 nMatched:10000 nModified:10000 keyUpdates:1 numYields:89 l!
ocks(micros) w:2372208 1234ms!
Fragmentation
AEM will be constantly growing the documents
generating document moves and subsequently
producing fragmentation
db.adminCommand( { repairDatabase: 1 } )!
h_p://docs.mongodb.org/manual/reference/command/repairDatabase/	
  
Monitoring Performance Indicators
Memory, Background Flushing Avg and
Opcounters: make sure you understand these
metrics!
h_ps://docs.mms.mongodb.com/	
  
Working Set Measurement
h_ps://docs.mms.mongodb.com/	
  
Page Faults and Memory aligned with Db
Storage will give you and good indication of how
well provision is your machine and if you need to
scale out
To Sum It Up
Takeway
AEM + MongoDB is a Scalable Solution
Provisioning is Key
Monitor, monitor, monitor
Wish List is Being Attended
We Want to Help You!
MongoMK Deployment for AEM
h_ps://info-­‐mongodb-­‐com.s3.amazonaws.com/MongoDB_AEM6_ConsulLng_Datasheet.pdf	
  
Upcoming Webinar
https://www.mongodb.com/webinar/aem-and-mongodb
Obrigado!
Norberto Leite
Technical Evangelist
norberto@mongodb.com
@nleite
Effectively Deploying MongoDB on AEM

More Related Content

What's hot

Rapid RESTful Web Applications with Apache Sling and Jackrabbit
Rapid RESTful Web Applications with Apache Sling and JackrabbitRapid RESTful Web Applications with Apache Sling and Jackrabbit
Rapid RESTful Web Applications with Apache Sling and Jackrabbit
Craig Dickson
 
AEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser CachingAEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser Caching
Andrew Khoury
 
Client-side Website Optimization
Client-side Website OptimizationClient-side Website Optimization
Client-side Website Optimization
Radu Pintilie
 
RESTful web service with JBoss Fuse
RESTful web service with JBoss FuseRESTful web service with JBoss Fuse
RESTful web service with JBoss Fuse
ejlp12
 
Building Scalable .NET Web Applications
Building Scalable .NET Web ApplicationsBuilding Scalable .NET Web Applications
Building Scalable .NET Web ApplicationsBuu Nguyen
 
Melbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBMelbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDB
Yuval Ararat
 
Threading through InterBase, Firebird, and beyond
Threading through InterBase, Firebird, and beyondThreading through InterBase, Firebird, and beyond
Threading through InterBase, Firebird, and beyond
Mind The Firebird
 
Content Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitContent Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitJukka Zitting
 
Adobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office HoursAdobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office Hours
Andrew Khoury
 
Why we chose mongodb for guardian.co.uk
Why we chose mongodb for guardian.co.ukWhy we chose mongodb for guardian.co.uk
Why we chose mongodb for guardian.co.uk
Graham Tackley
 
Web Optimization Level: Paranoid
Web Optimization Level: ParanoidWeb Optimization Level: Paranoid
Web Optimization Level: Paranoid
robin_sy
 
Website performance optimization QA
Website performance optimization QAWebsite performance optimization QA
Website performance optimization QADenis Dudaev
 
Building a REST Service in minutes with Spring Boot
Building a REST Service in minutes with Spring BootBuilding a REST Service in minutes with Spring Boot
Building a REST Service in minutes with Spring Boot
Omri Spector
 
S903 palla
S903 pallaS903 palla
S903 palla
Andrew Khoury
 
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresMaster Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
François Le Droff
 
Web Servers(IIS, NGINX, APACHE)
Web Servers(IIS, NGINX, APACHE)Web Servers(IIS, NGINX, APACHE)
Web Servers(IIS, NGINX, APACHE)
Reza Jebeli
 
Building your own slack bot on the AWS stack
Building your own slack bot on the AWS stackBuilding your own slack bot on the AWS stack
Building your own slack bot on the AWS stack
TorontoNodeJS
 
Amazon Web Services Building Blocks for Drupal Applications and Hosting
Amazon Web Services Building Blocks for Drupal Applications and HostingAmazon Web Services Building Blocks for Drupal Applications and Hosting
Amazon Web Services Building Blocks for Drupal Applications and Hosting
Acquia
 
The RDBMS You Should Be Using
The RDBMS You Should Be UsingThe RDBMS You Should Be Using
The RDBMS You Should Be Using
ColdFusionConference
 

What's hot (20)

Rapid RESTful Web Applications with Apache Sling and Jackrabbit
Rapid RESTful Web Applications with Apache Sling and JackrabbitRapid RESTful Web Applications with Apache Sling and Jackrabbit
Rapid RESTful Web Applications with Apache Sling and Jackrabbit
 
AEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser CachingAEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser Caching
 
Client-side Website Optimization
Client-side Website OptimizationClient-side Website Optimization
Client-side Website Optimization
 
RESTful web service with JBoss Fuse
RESTful web service with JBoss FuseRESTful web service with JBoss Fuse
RESTful web service with JBoss Fuse
 
Building Scalable .NET Web Applications
Building Scalable .NET Web ApplicationsBuilding Scalable .NET Web Applications
Building Scalable .NET Web Applications
 
Melbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBMelbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDB
 
Threading through InterBase, Firebird, and beyond
Threading through InterBase, Firebird, and beyondThreading through InterBase, Firebird, and beyond
Threading through InterBase, Firebird, and beyond
 
Content Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitContent Storage With Apache Jackrabbit
Content Storage With Apache Jackrabbit
 
Adobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office HoursAdobe AEM Maintenance - Customer Care Office Hours
Adobe AEM Maintenance - Customer Care Office Hours
 
Why we chose mongodb for guardian.co.uk
Why we chose mongodb for guardian.co.ukWhy we chose mongodb for guardian.co.uk
Why we chose mongodb for guardian.co.uk
 
Web Optimization Level: Paranoid
Web Optimization Level: ParanoidWeb Optimization Level: Paranoid
Web Optimization Level: Paranoid
 
Website performance optimization QA
Website performance optimization QAWebsite performance optimization QA
Website performance optimization QA
 
Building a REST Service in minutes with Spring Boot
Building a REST Service in minutes with Spring BootBuilding a REST Service in minutes with Spring Boot
Building a REST Service in minutes with Spring Boot
 
S903 palla
S903 pallaS903 palla
S903 palla
 
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresMaster Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
 
Web Servers(IIS, NGINX, APACHE)
Web Servers(IIS, NGINX, APACHE)Web Servers(IIS, NGINX, APACHE)
Web Servers(IIS, NGINX, APACHE)
 
Building your own slack bot on the AWS stack
Building your own slack bot on the AWS stackBuilding your own slack bot on the AWS stack
Building your own slack bot on the AWS stack
 
Building Web APIs that Scale
Building Web APIs that ScaleBuilding Web APIs that Scale
Building Web APIs that Scale
 
Amazon Web Services Building Blocks for Drupal Applications and Hosting
Amazon Web Services Building Blocks for Drupal Applications and HostingAmazon Web Services Building Blocks for Drupal Applications and Hosting
Amazon Web Services Building Blocks for Drupal Applications and Hosting
 
The RDBMS You Should Be Using
The RDBMS You Should Be UsingThe RDBMS You Should Be Using
The RDBMS You Should Be Using
 

Similar to Effectively Deploying MongoDB on AEM

EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...
EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...
EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...
Evolve The Adobe Digital Marketing Community
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
Engine Yard
 
Webinar: Schema Patterns and Your Storage Engine
Webinar: Schema Patterns and Your Storage EngineWebinar: Schema Patterns and Your Storage Engine
Webinar: Schema Patterns and Your Storage Engine
MongoDB
 
MongoDB.local Atlanta: Modern Data Backup and Recovery from On-Premises to th...
MongoDB.local Atlanta: Modern Data Backup and Recovery from On-Premises to th...MongoDB.local Atlanta: Modern Data Backup and Recovery from On-Premises to th...
MongoDB.local Atlanta: Modern Data Backup and Recovery from On-Premises to th...
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
 
Scaling MongoDB
Scaling MongoDBScaling MongoDB
Scaling MongoDB
MongoDB
 
MongoDB performance tuning and load testing, NOSQL Now! 2013 Conference prese...
MongoDB performance tuning and load testing, NOSQL Now! 2013 Conference prese...MongoDB performance tuning and load testing, NOSQL Now! 2013 Conference prese...
MongoDB performance tuning and load testing, NOSQL Now! 2013 Conference prese...
ronwarshawsky
 
1404 app dev series - session 8 - monitoring & performance tuning
1404   app dev series - session 8 - monitoring & performance tuning1404   app dev series - session 8 - monitoring & performance tuning
1404 app dev series - session 8 - monitoring & performance tuningMongoDB
 
Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise
MongoDB
 
Enterprise application performance - Understanding & Learnings
Enterprise application performance - Understanding & LearningsEnterprise application performance - Understanding & Learnings
Enterprise application performance - Understanding & Learnings
Dhaval Shah
 
MongoDB Schema Design: Practical Applications and Implications
MongoDB Schema Design: Practical Applications and ImplicationsMongoDB Schema Design: Practical Applications and Implications
MongoDB Schema Design: Practical Applications and Implications
MongoDB
 
mongodb tutorial
mongodb tutorialmongodb tutorial
mongodb tutorial
Jaehong Park
 
MongoDB and the MEAN Stack
MongoDB and the MEAN StackMongoDB and the MEAN Stack
MongoDB and the MEAN StackMongoDB
 
MongoDB World 2019: Modern Data Backup and Recovery from On-premises to the P...
MongoDB World 2019: Modern Data Backup and Recovery from On-premises to the P...MongoDB World 2019: Modern Data Backup and Recovery from On-premises to the P...
MongoDB World 2019: Modern Data Backup and Recovery from On-premises to the P...
MongoDB
 
Getting Maximum Performance from Amazon Redshift (DAT305) | AWS re:Invent 2013
Getting Maximum Performance from Amazon Redshift (DAT305) | AWS re:Invent 2013Getting Maximum Performance from Amazon Redshift (DAT305) | AWS re:Invent 2013
Getting Maximum Performance from Amazon Redshift (DAT305) | AWS re:Invent 2013
Amazon Web Services
 
Running MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesRunning MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on Kubernetes
Ariel Jatib
 
WebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Technical University: Top WebSphere Problem Determination FeaturesWebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Technical University: Top WebSphere Problem Determination Features
Chris Bailey
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
Amazon Web Services
 
Serve Meals, Not Ingredients - ChefConf 2015
Serve Meals, Not Ingredients - ChefConf 2015Serve Meals, Not Ingredients - ChefConf 2015
Serve Meals, Not Ingredients - ChefConf 2015
Chef
 
Serve Meals, Not Ingredients (ChefConf 2015)
Serve Meals, Not Ingredients (ChefConf 2015)Serve Meals, Not Ingredients (ChefConf 2015)
Serve Meals, Not Ingredients (ChefConf 2015)
ThirdWaveInsights
 

Similar to Effectively Deploying MongoDB on AEM (20)

EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...
EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...
EVOLVE'15 | Enhance | Norberto Leite | Effectively Scale and Operate AEM with...
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
 
Webinar: Schema Patterns and Your Storage Engine
Webinar: Schema Patterns and Your Storage EngineWebinar: Schema Patterns and Your Storage Engine
Webinar: Schema Patterns and Your Storage Engine
 
MongoDB.local Atlanta: Modern Data Backup and Recovery from On-Premises to th...
MongoDB.local Atlanta: Modern Data Backup and Recovery from On-Premises to th...MongoDB.local Atlanta: Modern Data Backup and Recovery from On-Premises to th...
MongoDB.local Atlanta: Modern Data Backup and Recovery from On-Premises to th...
 
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
 
Scaling MongoDB
Scaling MongoDBScaling MongoDB
Scaling MongoDB
 
MongoDB performance tuning and load testing, NOSQL Now! 2013 Conference prese...
MongoDB performance tuning and load testing, NOSQL Now! 2013 Conference prese...MongoDB performance tuning and load testing, NOSQL Now! 2013 Conference prese...
MongoDB performance tuning and load testing, NOSQL Now! 2013 Conference prese...
 
1404 app dev series - session 8 - monitoring & performance tuning
1404   app dev series - session 8 - monitoring & performance tuning1404   app dev series - session 8 - monitoring & performance tuning
1404 app dev series - session 8 - monitoring & performance tuning
 
Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise Securing Your Enterprise Web Apps with MongoDB Enterprise
Securing Your Enterprise Web Apps with MongoDB Enterprise
 
Enterprise application performance - Understanding & Learnings
Enterprise application performance - Understanding & LearningsEnterprise application performance - Understanding & Learnings
Enterprise application performance - Understanding & Learnings
 
MongoDB Schema Design: Practical Applications and Implications
MongoDB Schema Design: Practical Applications and ImplicationsMongoDB Schema Design: Practical Applications and Implications
MongoDB Schema Design: Practical Applications and Implications
 
mongodb tutorial
mongodb tutorialmongodb tutorial
mongodb tutorial
 
MongoDB and the MEAN Stack
MongoDB and the MEAN StackMongoDB and the MEAN Stack
MongoDB and the MEAN Stack
 
MongoDB World 2019: Modern Data Backup and Recovery from On-premises to the P...
MongoDB World 2019: Modern Data Backup and Recovery from On-premises to the P...MongoDB World 2019: Modern Data Backup and Recovery from On-premises to the P...
MongoDB World 2019: Modern Data Backup and Recovery from On-premises to the P...
 
Getting Maximum Performance from Amazon Redshift (DAT305) | AWS re:Invent 2013
Getting Maximum Performance from Amazon Redshift (DAT305) | AWS re:Invent 2013Getting Maximum Performance from Amazon Redshift (DAT305) | AWS re:Invent 2013
Getting Maximum Performance from Amazon Redshift (DAT305) | AWS re:Invent 2013
 
Running MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesRunning MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on Kubernetes
 
WebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Technical University: Top WebSphere Problem Determination FeaturesWebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Technical University: Top WebSphere Problem Determination Features
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
 
Serve Meals, Not Ingredients - ChefConf 2015
Serve Meals, Not Ingredients - ChefConf 2015Serve Meals, Not Ingredients - ChefConf 2015
Serve Meals, Not Ingredients - ChefConf 2015
 
Serve Meals, Not Ingredients (ChefConf 2015)
Serve Meals, Not Ingredients (ChefConf 2015)Serve Meals, Not Ingredients (ChefConf 2015)
Serve Meals, Not Ingredients (ChefConf 2015)
 

More from Norberto Leite

Data Modelling for MongoDB - MongoDB.local Tel Aviv
Data Modelling for MongoDB - MongoDB.local Tel AvivData Modelling for MongoDB - MongoDB.local Tel Aviv
Data Modelling for MongoDB - MongoDB.local Tel Aviv
Norberto Leite
 
Avoid Query Pitfalls
Avoid Query PitfallsAvoid Query Pitfalls
Avoid Query Pitfalls
Norberto Leite
 
MongoDB and Spark
MongoDB and SparkMongoDB and Spark
MongoDB and Spark
Norberto Leite
 
Mongo db 3.4 Overview
Mongo db 3.4 OverviewMongo db 3.4 Overview
Mongo db 3.4 Overview
Norberto Leite
 
MongoDB Certification Study Group - May 2016
MongoDB Certification Study Group - May 2016MongoDB Certification Study Group - May 2016
MongoDB Certification Study Group - May 2016
Norberto Leite
 
Geospatial and MongoDB
Geospatial and MongoDBGeospatial and MongoDB
Geospatial and MongoDB
Norberto Leite
 
MongodB Internals
MongodB InternalsMongodB Internals
MongodB Internals
Norberto Leite
 
MongoDB WiredTiger Internals
MongoDB WiredTiger InternalsMongoDB WiredTiger Internals
MongoDB WiredTiger Internals
Norberto Leite
 
MongoDB 3.2 Feature Preview
MongoDB 3.2 Feature PreviewMongoDB 3.2 Feature Preview
MongoDB 3.2 Feature Preview
Norberto Leite
 
Mongodb Spring
Mongodb SpringMongodb Spring
Mongodb Spring
Norberto Leite
 
MongoDB on Azure
MongoDB on AzureMongoDB on Azure
MongoDB on Azure
Norberto Leite
 
MongoDB: Agile Combustion Engine
MongoDB: Agile Combustion EngineMongoDB: Agile Combustion Engine
MongoDB: Agile Combustion Engine
Norberto Leite
 
MongoDB Capacity Planning
MongoDB Capacity PlanningMongoDB Capacity Planning
MongoDB Capacity Planning
Norberto Leite
 
Spark and MongoDB
Spark and MongoDBSpark and MongoDB
Spark and MongoDB
Norberto Leite
 
Analyse Yourself
Analyse YourselfAnalyse Yourself
Analyse Yourself
Norberto Leite
 
Python and MongoDB
Python and MongoDB Python and MongoDB
Python and MongoDB
Norberto Leite
 
Strongly Typed Languages and Flexible Schemas
Strongly Typed Languages and Flexible SchemasStrongly Typed Languages and Flexible Schemas
Strongly Typed Languages and Flexible Schemas
Norberto Leite
 
Advanced applications with MongoDB
Advanced applications with MongoDBAdvanced applications with MongoDB
Advanced applications with MongoDB
Norberto Leite
 
MongoDB and Node.js
MongoDB and Node.jsMongoDB and Node.js
MongoDB and Node.js
Norberto Leite
 
MongoDB + Spring
MongoDB + SpringMongoDB + Spring
MongoDB + Spring
Norberto Leite
 

More from Norberto Leite (20)

Data Modelling for MongoDB - MongoDB.local Tel Aviv
Data Modelling for MongoDB - MongoDB.local Tel AvivData Modelling for MongoDB - MongoDB.local Tel Aviv
Data Modelling for MongoDB - MongoDB.local Tel Aviv
 
Avoid Query Pitfalls
Avoid Query PitfallsAvoid Query Pitfalls
Avoid Query Pitfalls
 
MongoDB and Spark
MongoDB and SparkMongoDB and Spark
MongoDB and Spark
 
Mongo db 3.4 Overview
Mongo db 3.4 OverviewMongo db 3.4 Overview
Mongo db 3.4 Overview
 
MongoDB Certification Study Group - May 2016
MongoDB Certification Study Group - May 2016MongoDB Certification Study Group - May 2016
MongoDB Certification Study Group - May 2016
 
Geospatial and MongoDB
Geospatial and MongoDBGeospatial and MongoDB
Geospatial and MongoDB
 
MongodB Internals
MongodB InternalsMongodB Internals
MongodB Internals
 
MongoDB WiredTiger Internals
MongoDB WiredTiger InternalsMongoDB WiredTiger Internals
MongoDB WiredTiger Internals
 
MongoDB 3.2 Feature Preview
MongoDB 3.2 Feature PreviewMongoDB 3.2 Feature Preview
MongoDB 3.2 Feature Preview
 
Mongodb Spring
Mongodb SpringMongodb Spring
Mongodb Spring
 
MongoDB on Azure
MongoDB on AzureMongoDB on Azure
MongoDB on Azure
 
MongoDB: Agile Combustion Engine
MongoDB: Agile Combustion EngineMongoDB: Agile Combustion Engine
MongoDB: Agile Combustion Engine
 
MongoDB Capacity Planning
MongoDB Capacity PlanningMongoDB Capacity Planning
MongoDB Capacity Planning
 
Spark and MongoDB
Spark and MongoDBSpark and MongoDB
Spark and MongoDB
 
Analyse Yourself
Analyse YourselfAnalyse Yourself
Analyse Yourself
 
Python and MongoDB
Python and MongoDB Python and MongoDB
Python and MongoDB
 
Strongly Typed Languages and Flexible Schemas
Strongly Typed Languages and Flexible SchemasStrongly Typed Languages and Flexible Schemas
Strongly Typed Languages and Flexible Schemas
 
Advanced applications with MongoDB
Advanced applications with MongoDBAdvanced applications with MongoDB
Advanced applications with MongoDB
 
MongoDB and Node.js
MongoDB and Node.jsMongoDB and Node.js
MongoDB and Node.js
 
MongoDB + Spring
MongoDB + SpringMongoDB + Spring
MongoDB + Spring
 

Recently uploaded

Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 

Recently uploaded (20)

Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 

Effectively Deploying MongoDB on AEM

  • 1. Effectively Scale and Operate AEM with MongoDB
  • 3. Introduction Norberto Leite Technical Evangelist Madrid, Spain http://www.mongodb.com/norberto @nleite norberto@mongodb.com
  • 5. MongoDB GENERAL PURPOSE DOCUMENT DATABASE OPEN-SOURCE
  • 6. MongoDB is Fully Featured
  • 7. Query Operators Condi&onal  Operators     $all,  $exists,  $mod,  $ne,  $in,  $nin,  $nor,  $or,  $size,  $type   $lt,  $lte,  $gt,  $gte     //  find  customers  with  any  claims   >  db.customers.find(  {claims:  {$exists:  true  }}  )     //  find  customers  matching  a  regular  expression   >  db.customers.find(  {last:  /^rog*/i  }  )     //  count  customers  by  city   >  db.customers.find(  {city:  ‘Philadelphia’}  ).count()  
  • 8. Indexes // Index nested documents > db.customers.ensureIndex( “policies.agent”:1 ) > db.customers.find({‘policies.agent’:’Fred’}) // geospatial index > db.customers.ensureIndex( “property.location”: “2d” ) > db.customers.find( “property.location” : { $near : [22,42] } ) // text index > db.customers.ensureIndex( “policies.notes”: “text” )
  • 9. Documents are Rich Data Structures { ! first_name: ‘Paul’,! surname: ‘Miller’,! cell: 447557505611, ! city: ‘London’,! location: [45.123,47.232],! Profession: [banking, finance, trader],! cars: [ ! { model: ‘Bentley’,! year: 1973,! value: 100000, … },! { model: ‘Rolls Royce’,! year: 1965,! value: 330000, … }! ]! }! Fields can contain an array of sub-documents Fields Fields can contain arrays Typed field valuesString Number
  • 10. Over 10,000,000 downloads 300,000 Students for MongoDB University 35,000 attendees to MongoDB events annually Over 1,000 Partners Over 2,000! Paying Customers
  • 11.
  • 13. MongoDB MicroKernel •  AEM 6 Scalable Storage Solution •  Flexible •  Multi-Datacenter Deployments •  Geo Distributed Content •  Auto-Failover
  • 14. MongoMK Nodes   Blobs   Se4ngs   Changes   ClusterNodes   Metadata  collec&on   Content  node  structure   Internal  AEM  indexes   MulL  version  structures       Blobs  collec&on   Binary  file  chunks     Enforces  data  de-­‐duplicaLon     Se4ngs,  Changes,  ClusterNodes   Internal  AEM  collecLons   ConfiguraLon  and  seRngs  data    
  • 15. MongoMK - Content Metadata   Binary  /  Blobs  
  • 16. Binary  /  Blobs   MongoMK – Metadata Metadata  
  • 18. MongoMK – Version Control Revisions  of  content  are  maintained  as  separate   trees  
  • 20. MongoMK – Versioning & Concurrency System  provides  version  and  concurrency  control  of   content  revisions.  
  • 21. MongoMK – Versioning & Concurrency
  • 22. Binary  /  Blobs   MongoMK – Binary Data Metadata  
  • 23. AEM Blob Storage TAR MONGODB S3
  • 24. Blobs on MongoMK Posi&ve     Penalty   Unified  Storage  Layer   More  Storage  Requirements   Reduced  OperaLonal  Overhead   More  I/O  Intensive   Binary  De-­‐duplicaLon     Higher  Bandwidth  Requirements  
  • 28. MONGODB SIZING Availability     Volume   Expected  Latency   Working  Data  Set  
  • 30. Sizing - Availability AEM   Edi&ng   Cura&ng   Valida&ng   Primary   Secondary   Secondary  
  • 31. Sizing - Availability AEM   Edi&ng   Cura&ng   Valida&ng   Primary   Secondary   Primary  
  • 32. Sizing - Availability AEM  -­‐  author   AEM  -­‐  author   AEM  -­‐  author   Primary   Secondary   Secondary   Datacenter  West   Datacenter  East  Datacenter  Center   AEM  -­‐  author  AEM  -­‐  author  
  • 33. Sizing - Availability AEM  -­‐  author   AEM  -­‐  author   AEM  -­‐  author   Primary   Secondary   Secondary   Backups  (hidden)   Hot  Backups  (delayed)  
  • 35. Sizing - Volume Indexes   ProperLes   MulL  Version   Nodes   Blobs   Full  Text  Search   Indexes   Binary  Chunks  
  • 36. Sizing - Volume •  Space required by –  Data –  Indexes •  Read / Write Ratio •  Computational Unit Capacity –  RAM –  Disk •  Types of Disks! –  CPU
  • 38. Sizing – Working Set Working  Set   Rest  of  your  Database  
  • 39. Sizing – Working Set •  Percentage of data that is constantly request by the application –  Indexes –  Recent Used Data •  Read / Write –  Impacts the calculation of the RAM requirement •  Working Set Should Fit In RAM
  • 40. Working Set Not in RAM
  • 41. Sizing – Working Set •  AEM Calculation of Working Set – Internal MongoDB Indexes – Constantly accessed Assets • % of data access – AEM Indexes • Multi-version Indexes • Lucene Indexes
  • 42. Working Set Can Be Distributed Across Shards
  • 43. Sizing - Latency Primary   Secondary   Secondary   AEM   AEM   AEM   ONLY   SECONDARY   READS!  
  • 45. Rules for a Good Deployment Prototype   Test   Monitor  Scale   Automate  
  • 46. AEM + Ops Manager Scale  Easily  Meet  SLAs   Best  PracLces,   Automated   Cut  Management   Overhead  
  • 47. Demo
  • 49. Node Documents { "_id": "1:/norberto", "_deleted": { "r14e211fe903-0-1": "false" }, "jcr:created": { "r14e211fe903-0-1": ""dat:2015-06-23T17:53:36.257+02:00"" }, "jcr:createdBy": { "r14e211fe903-0-1": ""admin"" }, "_commitRoot": { "r14e211fe903-0-1": "0" }, "jcr:primaryType": { "r14e211fe903-0-1": ""nam:nt:folder"" }, "_modified": NumberLong("1435074815"), "_modCount": NumberLong("1") } { "_id": "1:/norberto", … "_commitRoot": { "r14e211fe903-0-1": "0", "r14e2122a4bb-0-1": "0" }, … "_modified": NumberLong("1435074995"), "_modCount": NumberLong("3"), "_children": true, "_lastRev": { "r0-0-1": "r14e2122a4bb-0-1" } }
  • 50. Document Moves 2015-05-18T17:07:10.264+0200 [conn1298] command aem.$cmd command: findAndModify { findandmodify: "nodes", query: { _id: "10:/content/www/...", _modCount: 3 }, fields: { _id: 1 }, update: { $set: { ... }, $max: { _modified: 1431961630 }, $inc: { _modCount: 1 } } } update: { $set: { ... }, $max: { _modified: 1431961630 }, $inc: { _modCount: 1 } } nscanned:1 nscannedObjects:1 nmoved:1 nMatched:1 nModified:1 keyUpdates:0 numYields:0 locks(micros) w:116270 reslen:203 116ms! nscanned:1464 nscannedObjects:1044 nmoved:288 nMatched:1044 nModified:1044 keyUpdates:1 numYields:11 locks(micros) w:242369 169ms! nscanned:10829 nscannedObjects:10000 nmoved:1316 nMatched:10000 nModified:10000 keyUpdates:1 numYields:89 l! ocks(micros) w:2372208 1234ms!
  • 51. Fragmentation AEM will be constantly growing the documents generating document moves and subsequently producing fragmentation db.adminCommand( { repairDatabase: 1 } )! h_p://docs.mongodb.org/manual/reference/command/repairDatabase/  
  • 52. Monitoring Performance Indicators Memory, Background Flushing Avg and Opcounters: make sure you understand these metrics! h_ps://docs.mms.mongodb.com/  
  • 53. Working Set Measurement h_ps://docs.mms.mongodb.com/   Page Faults and Memory aligned with Db Storage will give you and good indication of how well provision is your machine and if you need to scale out
  • 54. To Sum It Up
  • 55. Takeway AEM + MongoDB is a Scalable Solution Provisioning is Key Monitor, monitor, monitor Wish List is Being Attended We Want to Help You!
  • 56.
  • 57.
  • 58. MongoMK Deployment for AEM h_ps://info-­‐mongodb-­‐com.s3.amazonaws.com/MongoDB_AEM6_ConsulLng_Datasheet.pdf