SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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 JackrabbitCraig 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 CachingAndrew Khoury
 
Client-side Website Optimization
Client-side Website OptimizationClient-side Website Optimization
Client-side Website OptimizationRadu Pintilie
 
RESTful web service with JBoss Fuse
RESTful web service with JBoss FuseRESTful web service with JBoss Fuse
RESTful web service with JBoss Fuseejlp12
 
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 MongoDBYuval Ararat
 
Threading through InterBase, Firebird, and beyond
Threading through InterBase, Firebird, and beyondThreading through InterBase, Firebird, and beyond
Threading through InterBase, Firebird, and beyondMind 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 HoursAndrew 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.ukGraham Tackley
 
Web Optimization Level: Paranoid
Web Optimization Level: ParanoidWeb Optimization Level: Paranoid
Web Optimization Level: Paranoidrobin_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 BootOmri Spector
 
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 infrastructuresFranç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 stackTorontoNodeJS
 
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 HostingAcquia
 

Tendances (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
 

Similaire à Effectively Deploying MongoDB on AEM

6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performanceEngine 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 EngineMongoDB
 
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 AtlasMongoDB
 
Scaling MongoDB
Scaling MongoDBScaling MongoDB
Scaling MongoDBMongoDB
 
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 & LearningsDhaval 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 ImplicationsMongoDB
 
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 2013Amazon Web Services
 
Running MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesRunning MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesAriel 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 FeaturesChris 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 2015)Serve Meals, Not Ingredients (ChefConf 2015)
Serve Meals, Not Ingredients (ChefConf 2015)ThirdWaveInsights
 
Serve Meals, Not Ingredients - ChefConf 2015
Serve Meals, Not Ingredients - ChefConf 2015Serve Meals, Not Ingredients - ChefConf 2015
Serve Meals, Not Ingredients - ChefConf 2015Chef
 

Similaire à 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 2015)Serve Meals, Not Ingredients (ChefConf 2015)
Serve Meals, Not Ingredients (ChefConf 2015)
 
Serve Meals, Not Ingredients - ChefConf 2015
Serve Meals, Not Ingredients - ChefConf 2015Serve Meals, Not Ingredients - ChefConf 2015
Serve Meals, Not Ingredients - ChefConf 2015
 

Plus de 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 AvivNorberto Leite
 
MongoDB Certification Study Group - May 2016
MongoDB Certification Study Group - May 2016MongoDB Certification Study Group - May 2016
MongoDB Certification Study Group - May 2016Norberto Leite
 
Geospatial and MongoDB
Geospatial and MongoDBGeospatial and MongoDB
Geospatial and MongoDBNorberto Leite
 
MongoDB WiredTiger Internals
MongoDB WiredTiger InternalsMongoDB WiredTiger Internals
MongoDB WiredTiger InternalsNorberto Leite
 
MongoDB 3.2 Feature Preview
MongoDB 3.2 Feature PreviewMongoDB 3.2 Feature Preview
MongoDB 3.2 Feature PreviewNorberto Leite
 
MongoDB: Agile Combustion Engine
MongoDB: Agile Combustion EngineMongoDB: Agile Combustion Engine
MongoDB: Agile Combustion EngineNorberto Leite
 
MongoDB Capacity Planning
MongoDB Capacity PlanningMongoDB Capacity Planning
MongoDB Capacity PlanningNorberto Leite
 
Strongly Typed Languages and Flexible Schemas
Strongly Typed Languages and Flexible SchemasStrongly Typed Languages and Flexible Schemas
Strongly Typed Languages and Flexible SchemasNorberto Leite
 
Advanced applications with MongoDB
Advanced applications with MongoDBAdvanced applications with MongoDB
Advanced applications with MongoDBNorberto Leite
 

Plus de 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
 

Dernier

8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456KiaraTiradoMicha
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 

Dernier (20)

Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 

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