SlideShare a Scribd company logo
Scaling AEM
Michael Marth | Senior Engineering Manager

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Scalability?
§

Performance vs Scalability
§
§

§
§
§

Performance: “it takes X secs to do Y”
Scalability: “it takes X secs to do Y simultaneously Z times”

Yet, performance can help with scalability
This talk is about horizontal scalability (vertical scaling is trivial)
The content is documented at
http://dev.day.com/docs/en/cq/current/deploying/scaling.html

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

2
Preliminary Notes
§

This talk is about pre-Oak scalability patterns, i.e. the CQ5.x line
§

§

with AEM 6 these patterns will change

CRX2 Cluster is mostly a technology for reliability, not for scalability
§

Slight exception is read scalability

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

3
Scaling AEM
1. High Volume and High Performance Delivery
2. High Frequency Input Feed
3. High Processing Input Feed
4. High Volume Input Feed
5. Many Editors
6. Geo-distributed Editors
7. Many DAM assets
8. Geo-distributed disaster recovery

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

4
High Volume and High Performance Delivery - Description
§

Use Case:
§

High traffic site (100m impressions/d)

§

Examples: adobe.com

§

Limiting factor
§

CPU on publish

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

5
High Volume and High Performance Delivery - Solution Pattern
§

Leverage dispatcher caching as much as possible
§

§

SSI and/or client-side for personalized content

§

§

in latest dispatcher: single-page dispatcher flush and scripted flushing, use to cache/flush
content in dispatcher

Selectors for query caching

CDN with short TTL

P

Disp

round robin

Load
Balancer

P

Disp

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

6

CDN

Client
High Volume and High Performance Delivery
§

Notes
§

Related to rendering performance, see also
§

§

§

CQ performance patterns (use CQ timing component, prefer tree walking over JCR queries,
use ClientLibraryManager to concat and minify JS, etc, see [1])
Generic performance patterns (reduce requests with e.g. css sprites, gzip responses, put JS
calls at bottom of HTML, etc, see [2])

Anti-Pattern
§

Adding publishers before leveraging caching

[1] http://dev.day.com/docs/en/cq/current/deploying/performance.html
[2] http://shop.oreilly.com/product/9780596529307.do
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

7
High Frequency Input Feed - Description
§

Use Case: news feed import (moderate amounts, but constant updates)

§

Limiting factor
§

Dispatcher cache invalidation
§

Therefore actual limiting factor is CPU on publish

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

8
High Frequency Input Feed - Solution Pattern 1
§

Set up content structure so that other pages do not get invalidated on dispatcher
cache
§
§

§

if possible: highly volatile content e.g. in /etc
with latest dispatcher: single-page flush possible

Separate replication queue (so that main queue is not blocked)

Backend

import
process

editing

A

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

replication

P

9

flush

Disp
High Frequency Input Feed - Solution Pattern 2
§

Set up content structure so that other pages do not get invalidated on dispatcher
cache
§

§

as previous pattern

Import directly into Publish (no replication necessary)

Backend

Backend

import
process

A

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

import
process

P

flush

Disp
High Frequency Input Feed
§

Questions to ask
§

Human filtering/processing needed? Then imports should be on author and
replicated.
§

If no: is the use case OK with different states on publish?
§

if yes: no replication needed, then pattern 2 is preferable

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

11
High Processing Input Feed - Description
§

Use Case:
§

DAM import of images
§
§

happens regularly

§

§

1000 images at once

other editors are editing content at the same time

Limiting factor
§

CPU, memory on author

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

12
High Processing Input Feed - Solution Pattern 1
§

Separate processing instances from human editing instances
§

Offload 1 Workflow step, e.g. thumbnail generation from PSDs

§

There can be more than 1 processing instance

§

Replicate back and forth in packages if possible
§

CQ5.6.1: share DS between instances and replicate without binary, offloading framework

Processing
Author

Processing
Author

workflow steps
running, replicating results back

offload CPU-intensive
WF steps
by replication
editing

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

A

workflows
running

13
High Processing Input Feed - Solution Pattern 2
§

Separate pre-processing instances for uploading
§

There can be more than 1 pre-processing instance
§

CQ5.6.1: share DS between instances and replicate without binary

workflows
running
image
upload

Processing
Author

replication

editing

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

A

14
High Processing Input Feed
§

Notes
§

Author cluster can help mitigate the problem, but editors must edit content on slave

§

Throttling WFs or execution during night can help mitigate the problem

§

If the import is limited by CPU needed image conversion consider using ImageMagick
rather than Java

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

15
High Volume Input Feed - Description
§

Use Case:
§

Product data import
§

§

1 million products, 10000 modifications/day

Limiting factor
§

Writing to the repository
§

§

reads are also blocked

Potentially (to a lesser degree) in case repository scans are needed to create diffs:
§

CPU for calculating diffs

§

Repository read caches get flushed

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

16
High Volume Input Feed - Solution Pattern
§

Separate import instance to process imports, partition if possible
§

§

only useful if import requires significant CPU (e.g. no diff delivered)

Replicate to author
§

Replicate as package
§

§

CQ5.6.1: share DS between instances and replicate without binary

Replication to publish as package if possible
import into
repository
Backend

import
process

Import
Processing
Author

replication of diff

editing

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

A

17

replication
of diff

P
High Volume Input Feed
§

Questions to ask
§

§

Can the import be throttled? Most problems get much less severe.

Notes
§

Use batch saves (1000 nodes) on import (reduces overhead in indexing, etc and
speeds up the import overall)

§

Import as nt:unstructured rather cq:Page if possible
§

§

If not: switch off heavy listeners (e.g. ContentSync) or use the JcrObservationThrottle

Anti-Pattern
§

Usage of network disc (usually have high latency)

§

Replicating to publish through same replication queue as editorial content
§

§

Might heavily delay important editorial changes from publication

Using PageManager (cannot operate in batch mode, unless you use 5.6.1 where that
option was added)

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

18
Many Editors - Description
§

Use Case:
§
§

§

News or media portal
>50 editors editing content concurrently

Limiting factor
§

Depends on what do the editors actually do, eg. MSM rollouts, starting WFs, but
usually CPU-bound

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

19
Many Editors - Solution Pattern 1
§

Sharding: split up different web sites / parts of web sites onto separate author
instances

§

Publish instances are shared

editing

A

replication

site 1

editing

A

P

site 2

editing

A

P

site 3

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

P

20
Many Editors - Solution Pattern 2
§

Sharding: split up different web sites into separate author instances, but replicate into
one main author, e.g. for shared workflow processes
§
§

§

Practical if the shards do not need to share content.
Cross-replication can be done, but will be hard to keep consistent

Publish instances are shared
A

editing

site 1

A

editing

replication

site 2

A

editing

site 3

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

21

A

P
Many Editors
§

Questions to ask
§

§

What do the editors actually do?

Notes
§

Author dispatcher helps to reduce CPU load on author instances

§

Author CRX cluster instead of sharding will mitigate the problem if CPU-bound

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

22
Geo-distributed Editors
§

Use Case:
§

§

Editors located in different geos (US, EMEA, APAC)

Limiting factor
§

Bandwidth between editor location and author server location

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

23
Geo-distributed Editors - Solution Pattern
§

Use Dispatcher in front of Author

§

Guiding principle: limit traffic between Dispatcher and editor location.
§

gzip traffic

§

Use Client Library Manager to minimize traffic
§

§

minify, concat and gzip all client libraries

Cache all responses that are not under /content in
§

Editor’s browser cache

§

Potentially also dispatcher cache

cache

cache
minimize requests
gzip responses

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

Disp

24

A
Geo-distributed Editors
§

Notes
§

In extreme cases consider writing templates that treat author renditions differently from
publish renditions (especially reducing the number of necessary requests, e.g. by dropping
requests to tracking servers, external CSS, etc)

§

Or use Scaffolding for editing

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

25
Many DAM Assets
§

Use Case:
§

§

Many assets (>5Mio) in DAM

Limiting factor
§

Disc space

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

26
Many DAM Assets - Solution Pattern
§

Split physical storage of data store and repository tar files
§
§

for data store high latency is acceptable

§

§

tar files need disc with very low latency

Locate data store on cheap discs remotely (NAS, S3)

Share data store between instances
§

In 5.6.1: use binary-less replication in case of shared DS to minimize network traffic

Repository

tar

local
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

DS

S3
27
Many DAM Assets
§

Notes
§

In case of shared DS: the DS garbage collection needs to be run on an instance that keeps
references to all assets in DS

§

In 5.6.1: huge performance improvements (~10x or more) for DS GC when the persistence is
tar-based

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

28
Geo-distributed disaster recovery
§

Use Case:
§
§

§

Data centers located in different geos
One DC shall act as failover for author

Limiting factor
§

Latency between DCs (in very low latency cases CRX clustering could be used)

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

29
Geo-distributed disaster recovery - Solution Pattern
§

Use file level tools like rysnc to create replicas in 2nd DC

§

Hourly: sync data store
§
§

§

This is usually the most time consuming part
Sync can be performed anytime, due to add-only data store architecture

Nightly:
§

Create incremental backup into filesystem on 1st DC to get consistent state of files

§

Rsync backup to 2nd DC. For that period CQ on 2nd DC must not be running.

© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

30
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

More Related Content

PPTX
The new repository in AEM 6
PPTX
CQ5.x Maintenance Webinar 2013
PPTX
AEM (CQ) Dispatcher Security and CDN+Browser Caching
PDF
Aem dispatcher – tips & tricks
PPTX
AEM (CQ) Dispatcher Caching Webinar 2013
PDF
S903 palla
PDF
Adobe AEM Maintenance - Customer Care Office Hours
PPTX
Webinar: Optimize digital customer experiences with Adobe Experience Manager ...
The new repository in AEM 6
CQ5.x Maintenance Webinar 2013
AEM (CQ) Dispatcher Security and CDN+Browser Caching
Aem dispatcher – tips & tricks
AEM (CQ) Dispatcher Caching Webinar 2013
S903 palla
Adobe AEM Maintenance - Customer Care Office Hours
Webinar: Optimize digital customer experiences with Adobe Experience Manager ...

What's hot (20)

PDF
Effectively Deploying MongoDB on AEM
PDF
CIRCUIT 2015 - Monitoring AEM
PPTX
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
PPTX
Adobe Managed Services: Complicated Cloud Deployments
PPTX
AEM + MongoDB: How to Scale and Operate Large Digital Asset Management Systems
PPTX
Accelerate your ColdFusion Applications using Caching
PDF
Aem maintenance
PPTX
Migrating enterprise workloads to AWS
PDF
Aem offline content
PPTX
EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rap...
PDF
Scale ColdFusion with Terracotta Distributed Caching for Ehchache
PDF
AEM - A Collection of developer friendly tools
PDF
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
PDF
CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks
PPTX
Running High Availability Websites with Acquia and AWS
PDF
Scaling CQ5
PPTX
Scaling Drupal & Deployment in AWS
PPTX
Apache Performance Tuning: Scaling Out
PPTX
Oracle on AWS partner webinar series
PPT
Knowledge share about scalable application architecture
Effectively Deploying MongoDB on AEM
CIRCUIT 2015 - Monitoring AEM
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Adobe Managed Services: Complicated Cloud Deployments
AEM + MongoDB: How to Scale and Operate Large Digital Asset Management Systems
Accelerate your ColdFusion Applications using Caching
Aem maintenance
Migrating enterprise workloads to AWS
Aem offline content
EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rap...
Scale ColdFusion with Terracotta Distributed Caching for Ehchache
AEM - A Collection of developer friendly tools
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
CIRCUIT 2015 - AEM Infrastructure Automation with Chef Cookbooks
Running High Availability Websites with Acquia and AWS
Scaling CQ5
Scaling Drupal & Deployment in AWS
Apache Performance Tuning: Scaling Out
Oracle on AWS partner webinar series
Knowledge share about scalable application architecture
Ad

Viewers also liked (19)

PDF
12 hot features to engage and save time with aem 6.2
PDF
Masculinoadulto
PDF
Aula trans.calor e massa
PPTX
Do you know Taiwan questions
PPTX
Eurozone Einzelhandel
DOC
PDF
Primera práctica
PPTX
Content strategy for the content experience wave
PDF
FELIZ NATAL 2011
PPTX
Mision
PDF
DOCX
PDF
PPTX
PACE-IT: CE 1.5 - LinkedIn
PDF
Manual de-hidrc3a1ulica-bc3a1sica-ifba
PDF
Google Analytics - Certification
PDF
Termodinâmica
DOCX
Treasure Hunt Activity (方位句型)
PDF
Culture study unit 11 worksheet
12 hot features to engage and save time with aem 6.2
Masculinoadulto
Aula trans.calor e massa
Do you know Taiwan questions
Eurozone Einzelhandel
Primera práctica
Content strategy for the content experience wave
FELIZ NATAL 2011
Mision
PACE-IT: CE 1.5 - LinkedIn
Manual de-hidrc3a1ulica-bc3a1sica-ifba
Google Analytics - Certification
Termodinâmica
Treasure Hunt Activity (方位句型)
Culture study unit 11 worksheet
Ad

Similar to Scaling AEM (CQ5) Gem Session (20)

PPT
Adobe Experience Manager - Replication deep dive
PPTX
Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...
PDF
Developing Quality Products Quickly through a Culture of CI/CD
PPTX
Keeping Current with ColdFusion - Adobe Max 2011
PDF
EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...
PPTX
Aem asset optimizations & best practices
PDF
Immerse 2016 Efficient publishing with content fragments
PDF
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
PDF
Where is cold fusion headed
PDF
High performance Web Applications @ Minted - Notes
PDF
Going Full Throttle: How to Speed Time to Market on Marketing Campaign Sites
PDF
Capacity Planning and Headroom Analysis for Taming Database Replication Latency
PPTX
Aspera - Bridging On Premise and Cloud Deployments for Broadcast IT
PDF
Scalable and Available, Patterns for Success
PDF
HBase and Hadoop at Adobe
PDF
Continuous Delivery at Wix, Yaniv Even Haim
PDF
Cassandra Day Denver 2014: Transitioning to Cassandra for an Already Giant Pr...
PDF
Acquia - 大規模スケールでのマルチサイトの管理と運用 [動画あり]
PDF
Best Practices for Building Scalable Web Applications.pdf
PDF
Adobe.com Redesign: Powered by Day CQ5
Adobe Experience Manager - Replication deep dive
Adobe Managed Services: Complicated Cloud Deployments by Adam Pazik, Mike Til...
Developing Quality Products Quickly through a Culture of CI/CD
Keeping Current with ColdFusion - Adobe Max 2011
EVOLVE'14 | Enhance | Anshul Chhabra & Akhil Aggrawal | Cisco - AEM High Avai...
Aem asset optimizations & best practices
Immerse 2016 Efficient publishing with content fragments
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Where is cold fusion headed
High performance Web Applications @ Minted - Notes
Going Full Throttle: How to Speed Time to Market on Marketing Campaign Sites
Capacity Planning and Headroom Analysis for Taming Database Replication Latency
Aspera - Bridging On Premise and Cloud Deployments for Broadcast IT
Scalable and Available, Patterns for Success
HBase and Hadoop at Adobe
Continuous Delivery at Wix, Yaniv Even Haim
Cassandra Day Denver 2014: Transitioning to Cassandra for an Already Giant Pr...
Acquia - 大規模スケールでのマルチサイトの管理と運用 [動画あり]
Best Practices for Building Scalable Web Applications.pdf
Adobe.com Redesign: Powered by Day CQ5

Recently uploaded (20)

PPTX
A Presentation on Artificial Intelligence
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Machine learning based COVID-19 study performance prediction
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Empathic Computing: Creating Shared Understanding
PDF
cuic standard and advanced reporting.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPT
Teaching material agriculture food technology
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Modernizing your data center with Dell and AMD
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
NewMind AI Monthly Chronicles - July 2025
A Presentation on Artificial Intelligence
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Machine learning based COVID-19 study performance prediction
Mobile App Security Testing_ A Comprehensive Guide.pdf
Big Data Technologies - Introduction.pptx
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Empathic Computing: Creating Shared Understanding
cuic standard and advanced reporting.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Teaching material agriculture food technology
Spectral efficient network and resource selection model in 5G networks
Advanced methodologies resolving dimensionality complications for autism neur...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Modernizing your data center with Dell and AMD
20250228 LYD VKU AI Blended-Learning.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
NewMind AI Monthly Chronicles - July 2025

Scaling AEM (CQ5) Gem Session

  • 1. Scaling AEM Michael Marth | Senior Engineering Manager © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
  • 2. Scalability? § Performance vs Scalability § § § § § Performance: “it takes X secs to do Y” Scalability: “it takes X secs to do Y simultaneously Z times” Yet, performance can help with scalability This talk is about horizontal scalability (vertical scaling is trivial) The content is documented at http://dev.day.com/docs/en/cq/current/deploying/scaling.html © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 2
  • 3. Preliminary Notes § This talk is about pre-Oak scalability patterns, i.e. the CQ5.x line § § with AEM 6 these patterns will change CRX2 Cluster is mostly a technology for reliability, not for scalability § Slight exception is read scalability © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 3
  • 4. Scaling AEM 1. High Volume and High Performance Delivery 2. High Frequency Input Feed 3. High Processing Input Feed 4. High Volume Input Feed 5. Many Editors 6. Geo-distributed Editors 7. Many DAM assets 8. Geo-distributed disaster recovery © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 4
  • 5. High Volume and High Performance Delivery - Description § Use Case: § High traffic site (100m impressions/d) § Examples: adobe.com § Limiting factor § CPU on publish © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 5
  • 6. High Volume and High Performance Delivery - Solution Pattern § Leverage dispatcher caching as much as possible § § SSI and/or client-side for personalized content § § in latest dispatcher: single-page dispatcher flush and scripted flushing, use to cache/flush content in dispatcher Selectors for query caching CDN with short TTL P Disp round robin Load Balancer P Disp © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 6 CDN Client
  • 7. High Volume and High Performance Delivery § Notes § Related to rendering performance, see also § § § CQ performance patterns (use CQ timing component, prefer tree walking over JCR queries, use ClientLibraryManager to concat and minify JS, etc, see [1]) Generic performance patterns (reduce requests with e.g. css sprites, gzip responses, put JS calls at bottom of HTML, etc, see [2]) Anti-Pattern § Adding publishers before leveraging caching [1] http://dev.day.com/docs/en/cq/current/deploying/performance.html [2] http://shop.oreilly.com/product/9780596529307.do © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 7
  • 8. High Frequency Input Feed - Description § Use Case: news feed import (moderate amounts, but constant updates) § Limiting factor § Dispatcher cache invalidation § Therefore actual limiting factor is CPU on publish © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 8
  • 9. High Frequency Input Feed - Solution Pattern 1 § Set up content structure so that other pages do not get invalidated on dispatcher cache § § § if possible: highly volatile content e.g. in /etc with latest dispatcher: single-page flush possible Separate replication queue (so that main queue is not blocked) Backend import process editing A © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. replication P 9 flush Disp
  • 10. High Frequency Input Feed - Solution Pattern 2 § Set up content structure so that other pages do not get invalidated on dispatcher cache § § as previous pattern Import directly into Publish (no replication necessary) Backend Backend import process A © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. import process P flush Disp
  • 11. High Frequency Input Feed § Questions to ask § Human filtering/processing needed? Then imports should be on author and replicated. § If no: is the use case OK with different states on publish? § if yes: no replication needed, then pattern 2 is preferable © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 11
  • 12. High Processing Input Feed - Description § Use Case: § DAM import of images § § happens regularly § § 1000 images at once other editors are editing content at the same time Limiting factor § CPU, memory on author © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 12
  • 13. High Processing Input Feed - Solution Pattern 1 § Separate processing instances from human editing instances § Offload 1 Workflow step, e.g. thumbnail generation from PSDs § There can be more than 1 processing instance § Replicate back and forth in packages if possible § CQ5.6.1: share DS between instances and replicate without binary, offloading framework Processing Author Processing Author workflow steps running, replicating results back offload CPU-intensive WF steps by replication editing © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. A workflows running 13
  • 14. High Processing Input Feed - Solution Pattern 2 § Separate pre-processing instances for uploading § There can be more than 1 pre-processing instance § CQ5.6.1: share DS between instances and replicate without binary workflows running image upload Processing Author replication editing © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. A 14
  • 15. High Processing Input Feed § Notes § Author cluster can help mitigate the problem, but editors must edit content on slave § Throttling WFs or execution during night can help mitigate the problem § If the import is limited by CPU needed image conversion consider using ImageMagick rather than Java © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 15
  • 16. High Volume Input Feed - Description § Use Case: § Product data import § § 1 million products, 10000 modifications/day Limiting factor § Writing to the repository § § reads are also blocked Potentially (to a lesser degree) in case repository scans are needed to create diffs: § CPU for calculating diffs § Repository read caches get flushed © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 16
  • 17. High Volume Input Feed - Solution Pattern § Separate import instance to process imports, partition if possible § § only useful if import requires significant CPU (e.g. no diff delivered) Replicate to author § Replicate as package § § CQ5.6.1: share DS between instances and replicate without binary Replication to publish as package if possible import into repository Backend import process Import Processing Author replication of diff editing © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. A 17 replication of diff P
  • 18. High Volume Input Feed § Questions to ask § § Can the import be throttled? Most problems get much less severe. Notes § Use batch saves (1000 nodes) on import (reduces overhead in indexing, etc and speeds up the import overall) § Import as nt:unstructured rather cq:Page if possible § § If not: switch off heavy listeners (e.g. ContentSync) or use the JcrObservationThrottle Anti-Pattern § Usage of network disc (usually have high latency) § Replicating to publish through same replication queue as editorial content § § Might heavily delay important editorial changes from publication Using PageManager (cannot operate in batch mode, unless you use 5.6.1 where that option was added) © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 18
  • 19. Many Editors - Description § Use Case: § § § News or media portal >50 editors editing content concurrently Limiting factor § Depends on what do the editors actually do, eg. MSM rollouts, starting WFs, but usually CPU-bound © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 19
  • 20. Many Editors - Solution Pattern 1 § Sharding: split up different web sites / parts of web sites onto separate author instances § Publish instances are shared editing A replication site 1 editing A P site 2 editing A P site 3 © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. P 20
  • 21. Many Editors - Solution Pattern 2 § Sharding: split up different web sites into separate author instances, but replicate into one main author, e.g. for shared workflow processes § § § Practical if the shards do not need to share content. Cross-replication can be done, but will be hard to keep consistent Publish instances are shared A editing site 1 A editing replication site 2 A editing site 3 © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 21 A P
  • 22. Many Editors § Questions to ask § § What do the editors actually do? Notes § Author dispatcher helps to reduce CPU load on author instances § Author CRX cluster instead of sharding will mitigate the problem if CPU-bound © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 22
  • 23. Geo-distributed Editors § Use Case: § § Editors located in different geos (US, EMEA, APAC) Limiting factor § Bandwidth between editor location and author server location © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 23
  • 24. Geo-distributed Editors - Solution Pattern § Use Dispatcher in front of Author § Guiding principle: limit traffic between Dispatcher and editor location. § gzip traffic § Use Client Library Manager to minimize traffic § § minify, concat and gzip all client libraries Cache all responses that are not under /content in § Editor’s browser cache § Potentially also dispatcher cache cache cache minimize requests gzip responses © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Disp 24 A
  • 25. Geo-distributed Editors § Notes § In extreme cases consider writing templates that treat author renditions differently from publish renditions (especially reducing the number of necessary requests, e.g. by dropping requests to tracking servers, external CSS, etc) § Or use Scaffolding for editing © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 25
  • 26. Many DAM Assets § Use Case: § § Many assets (>5Mio) in DAM Limiting factor § Disc space © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 26
  • 27. Many DAM Assets - Solution Pattern § Split physical storage of data store and repository tar files § § for data store high latency is acceptable § § tar files need disc with very low latency Locate data store on cheap discs remotely (NAS, S3) Share data store between instances § In 5.6.1: use binary-less replication in case of shared DS to minimize network traffic Repository tar local © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. DS S3 27
  • 28. Many DAM Assets § Notes § In case of shared DS: the DS garbage collection needs to be run on an instance that keeps references to all assets in DS § In 5.6.1: huge performance improvements (~10x or more) for DS GC when the persistence is tar-based © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 28
  • 29. Geo-distributed disaster recovery § Use Case: § § § Data centers located in different geos One DC shall act as failover for author Limiting factor § Latency between DCs (in very low latency cases CRX clustering could be used) © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 29
  • 30. Geo-distributed disaster recovery - Solution Pattern § Use file level tools like rysnc to create replicas in 2nd DC § Hourly: sync data store § § § This is usually the most time consuming part Sync can be performed anytime, due to add-only data store architecture Nightly: § Create incremental backup into filesystem on 1st DC to get consistent state of files § Rsync backup to 2nd DC. For that period CQ on 2nd DC must not be running. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 30
  • 31. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.