SlideShare a Scribd company logo
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Michael Marth | Senior Engineering Manager | @michaelmarth
Scaling CQ5
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 2
Michael
§ Engineering manager in R&D
§ Responsible for Granite (repo, CQSE, etc)
§ Many years in the field
§ Wears shorts today
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Escape the soup coma, let’s make this a workshop session
3
Soup Coma
© 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)
§ is about pre-Oak scalability patterns
§ The content will soon be documented in docs.day.com
4
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Scaling problems are good problems to have (you are in demand!)
5
Text
opportunities
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
CQ5 Scaling Patterns
1. High Volume and High Performance Delivery
2. High Frequency Input Feed
3. Many Editors
4. High Processing Input Feed
5. High Volume Input Feed
6.Geo-distributed Editors
7. Many DAM assets
8.Geo-distributed disaster recovery
6
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
High Volume and High Performance Delivery - Description
§ Use Case:
§ High traffic site (100m impressions/d)
§ Examples: adobe.com
§ Limiting factor
§ CPU on publish
7
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
High Volume and High Performance Delivery - Solution Pattern
8
§ Leverage dispatcher caching as much as possible
§ in latest dispatcher: single-page dispatcher flush and scripted flushing, use to cache/flush
content in dispatcher
§ SSI and/or client-side for personalized content
§ Selectors for query caching
§ CDN with short TTL
P
P Disp
Disp
Load
Balancer
round robin
CDN Client
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
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
9
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
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
10
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
High Frequency Input Feed - Solution Pattern 1
11
§ 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)
A
editing
import
process
Backend
P
replication
Disp
flush
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
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)
A
import
process
Backend
P Disp
flush
import
process
Backend
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
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
13
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Many Editors - Description
§ Use Case:
§ News or media portal
§ >50 editors editing content concurrently
§ Limiting factor
§ Depends on what do the editors actually do:
§ Heavyweight editing, e.g. MSM rollouts, starting WFs: repository- or CPU-bound
§ Lightweight editing: CPU bound
14
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Many Editors - Solution Pattern 1
15
§ Sharding: split up different web sites / parts of web sites onto separate author
instances
§ Publish instances are shared
A
site 3
editing
P
A
site 2
editing
P
A
site 1
editing
P
replication
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Many Editors - Solution Pattern 2
16
§ 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
site 3
editing
A
site 2
editing
P
A
site 1
editing
replication
A
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Many Editors
§ Questions to ask
§ What do the editors actually do?
§ Notes
§ Author dispatcher helps to reduce CPU load on author instances
§ Author cluster instead of sharding will mitigate the problem if CPU-bound
17
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
High Processing Input Feed - Description
18
§ Use Case:
§ DAM import of images
§ 1000 images at once
§ happens regularly
§ other editors are editing content at the same time
§ Limiting factor
§ CPU, memory on author
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
High Processing Input Feed - Solution Pattern 1
19
§ 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
A
Processing
Author
Processing
Author
editing
workflows
running
offload CPU-intensive
WF steps
by replication
workflow steps
running, replicating results back
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
High Processing Input Feed - Solution Pattern 2
20
§ 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
A
Processing
Author
editing
workflows
running
replication
image
upload
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
High Processing Input Feed
21
§ 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.
High Volume Input Feed - Description
22
§ 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.
High Volume Input Feed - Solution Pattern
23
§ 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
A
Import
Processing
Author
editing
import into
repository
replication of diff
import
processBackend
P
replication
of diff
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
High Volume Input Feed
24
§ Questions to ask
§ Can the import be throttled? Most problems get much less severe.
§ Do all changes get on publish?
§ 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.
Geo-distributed Editors
25
§ Use Case:
§ Editors located in different geos (US, EMEA, APAC)
§ Limiting factor
§ Bandwidth between editor location and author server location
§ 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
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Geo-distributed Editors - Solution Pattern
26
ADisp
cache
cache
minimize requests
gzip responses
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
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
27
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Many DAM Assets
§ Use Case:
§ Many assets (>5Mio) in DAM
§ Limiting factor
§ Disc space
28
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Many DAM Assets - Solution Pattern
29
§ Split physical storage of data store and repository tar files
§ tar files need disc with very low latency
§ for data store high latency is acceptable
§ 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 DS
local S3
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
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
30
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Geo-distributed disaster recovery
31
§ 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)
§ 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.
Geo-distributed disaster recovery - Solution Pattern
32
© 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.

More Related Content

What's hot

Sql Server High Availability & DR Technologies
Sql Server High Availability & DR TechnologiesSql Server High Availability & DR Technologies
Sql Server High Availability & DR Technologies
RockSolid SQL
 
VMworld 2014: Virtualizing Databases
VMworld 2014: Virtualizing DatabasesVMworld 2014: Virtualizing Databases
VMworld 2014: Virtualizing Databases
VMworld
 
Scaling Up and Out your Virtualized SQL Servers
Scaling Up and Out your Virtualized SQL ServersScaling Up and Out your Virtualized SQL Servers
Scaling Up and Out your Virtualized SQL Servers
heraflux
 
SQL Server High Availability and Disaster Recovery
SQL Server High Availability and Disaster RecoverySQL Server High Availability and Disaster Recovery
SQL Server High Availability and Disaster Recovery
Michael Poremba
 
Drupal performance optimization Best Practices
Drupal performance optimization Best PracticesDrupal performance optimization Best Practices
Drupal performance optimization Best Practices
Ratnesh kumar, CSM
 
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
Sharon James
 
VMworld 2014: Virtualize Active Directory, the Right Way!
VMworld 2014: Virtualize Active Directory, the Right Way!VMworld 2014: Virtualize Active Directory, the Right Way!
VMworld 2014: Virtualize Active Directory, the Right Way!
VMworld
 
Delphix Platform Overview
Delphix Platform OverviewDelphix Platform Overview
Delphix Platform Overview
Franco_Dagosto
 
Sa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administratorsSa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administrators
Sharon James
 
Practical solutions for connections administrators lite
Practical solutions for connections administrators litePractical solutions for connections administrators lite
Practical solutions for connections administrators lite
Sharon James
 
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
Tinku Ajit
 
Dueling duplications RMAN vs Delphix
Dueling duplications RMAN vs DelphixDueling duplications RMAN vs Delphix
Dueling duplications RMAN vs DelphixKyle Hailey
 
Accelerating Devops via Data Virtualization | Delphix
Accelerating Devops via Data Virtualization | DelphixAccelerating Devops via Data Virtualization | Delphix
Accelerating Devops via Data Virtualization | Delphix
DelphixCorp
 
Practical solutions for connections administrators
Practical solutions for connections administratorsPractical solutions for connections administrators
Practical solutions for connections administrators
Sharon James
 
VMworld 2013: Virtualizing Highly Available SQL Servers
VMworld 2013: Virtualizing Highly Available SQL Servers VMworld 2013: Virtualizing Highly Available SQL Servers
VMworld 2013: Virtualizing Highly Available SQL Servers
VMworld
 
Connections install in 45 mins
Connections install in 45 minsConnections install in 45 mins
Connections install in 45 mins
Sharon James
 
VMworld Europe 2014: Virtual SAN Best Practices and Use Cases
VMworld Europe 2014: Virtual SAN Best Practices and Use CasesVMworld Europe 2014: Virtual SAN Best Practices and Use Cases
VMworld Europe 2014: Virtual SAN Best Practices and Use Cases
VMworld
 
J2EE Performance And Scalability Bp
J2EE Performance And Scalability BpJ2EE Performance And Scalability Bp
J2EE Performance And Scalability Bp
Chris Adkin
 

What's hot (20)

Sql Server High Availability & DR Technologies
Sql Server High Availability & DR TechnologiesSql Server High Availability & DR Technologies
Sql Server High Availability & DR Technologies
 
VMworld 2014: Virtualizing Databases
VMworld 2014: Virtualizing DatabasesVMworld 2014: Virtualizing Databases
VMworld 2014: Virtualizing Databases
 
What is Delphix
What is DelphixWhat is Delphix
What is Delphix
 
Scaling Up and Out your Virtualized SQL Servers
Scaling Up and Out your Virtualized SQL ServersScaling Up and Out your Virtualized SQL Servers
Scaling Up and Out your Virtualized SQL Servers
 
SQL Server High Availability and Disaster Recovery
SQL Server High Availability and Disaster RecoverySQL Server High Availability and Disaster Recovery
SQL Server High Availability and Disaster Recovery
 
Drupal performance optimization Best Practices
Drupal performance optimization Best PracticesDrupal performance optimization Best Practices
Drupal performance optimization Best Practices
 
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
Bp307 Practical Solutions for Connections Administrators, tips and scrips for...
 
VMworld 2014: Virtualize Active Directory, the Right Way!
VMworld 2014: Virtualize Active Directory, the Right Way!VMworld 2014: Virtualize Active Directory, the Right Way!
VMworld 2014: Virtualize Active Directory, the Right Way!
 
Delphix Platform Overview
Delphix Platform OverviewDelphix Platform Overview
Delphix Platform Overview
 
Sa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administratorsSa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administrators
 
Practical solutions for connections administrators lite
Practical solutions for connections administrators litePractical solutions for connections administrators lite
Practical solutions for connections administrators lite
 
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
 
Dueling duplications RMAN vs Delphix
Dueling duplications RMAN vs DelphixDueling duplications RMAN vs Delphix
Dueling duplications RMAN vs Delphix
 
Accelerating Devops via Data Virtualization | Delphix
Accelerating Devops via Data Virtualization | DelphixAccelerating Devops via Data Virtualization | Delphix
Accelerating Devops via Data Virtualization | Delphix
 
Practical solutions for connections administrators
Practical solutions for connections administratorsPractical solutions for connections administrators
Practical solutions for connections administrators
 
VMworld 2013: Virtualizing Highly Available SQL Servers
VMworld 2013: Virtualizing Highly Available SQL Servers VMworld 2013: Virtualizing Highly Available SQL Servers
VMworld 2013: Virtualizing Highly Available SQL Servers
 
Delphix
DelphixDelphix
Delphix
 
Connections install in 45 mins
Connections install in 45 minsConnections install in 45 mins
Connections install in 45 mins
 
VMworld Europe 2014: Virtual SAN Best Practices and Use Cases
VMworld Europe 2014: Virtual SAN Best Practices and Use CasesVMworld Europe 2014: Virtual SAN Best Practices and Use Cases
VMworld Europe 2014: Virtual SAN Best Practices and Use Cases
 
J2EE Performance And Scalability Bp
J2EE Performance And Scalability BpJ2EE Performance And Scalability Bp
J2EE Performance And Scalability Bp
 

Viewers also liked

Creating Multiscreen Apps using Adobe Flash Platform
Creating Multiscreen Apps using Adobe Flash PlatformCreating Multiscreen Apps using Adobe Flash Platform
Creating Multiscreen Apps using Adobe Flash Platform
Hemanth Sharma
 
RTMFP Overview for IETF77
RTMFP Overview for IETF77RTMFP Overview for IETF77
RTMFP Overview for IETF77
stoem
 
E banking
E   bankingE   banking
Game design & development
Game design & developmentGame design & development
Game design & development
Hemanth Sharma
 
JUMP13 Whitepapers Live: Mobile Innovation
JUMP13 Whitepapers Live: Mobile InnovationJUMP13 Whitepapers Live: Mobile Innovation
JUMP13 Whitepapers Live: Mobile Innovation
Jamie Brighton
 
Search Engines and Flash: Secrets, Tricks, and Black Magic
Search Engines and Flash: Secrets, Tricks, and Black MagicSearch Engines and Flash: Secrets, Tricks, and Black Magic
Search Engines and Flash: Secrets, Tricks, and Black Magic
guestb1f3a
 

Viewers also liked (7)

dps_webinar
dps_webinardps_webinar
dps_webinar
 
Creating Multiscreen Apps using Adobe Flash Platform
Creating Multiscreen Apps using Adobe Flash PlatformCreating Multiscreen Apps using Adobe Flash Platform
Creating Multiscreen Apps using Adobe Flash Platform
 
RTMFP Overview for IETF77
RTMFP Overview for IETF77RTMFP Overview for IETF77
RTMFP Overview for IETF77
 
E banking
E   bankingE   banking
E banking
 
Game design & development
Game design & developmentGame design & development
Game design & development
 
JUMP13 Whitepapers Live: Mobile Innovation
JUMP13 Whitepapers Live: Mobile InnovationJUMP13 Whitepapers Live: Mobile Innovation
JUMP13 Whitepapers Live: Mobile Innovation
 
Search Engines and Flash: Secrets, Tricks, and Black Magic
Search Engines and Flash: Secrets, Tricks, and Black MagicSearch Engines and Flash: Secrets, Tricks, and Black Magic
Search Engines and Flash: Secrets, Tricks, and Black Magic
 

Similar to Scaling CQ5

Redis Developers Day 2014 - Redis Labs Talks
Redis Developers Day 2014 - Redis Labs TalksRedis Developers Day 2014 - Redis Labs Talks
Redis Developers Day 2014 - Redis Labs Talks
Redis Labs
 
Aem asset optimizations & best practices
Aem asset optimizations & best practicesAem asset optimizations & best practices
Aem asset optimizations & best practices
Kanika Gera
 
Veeam webinar - Deduplication best practices
Veeam webinar - Deduplication best practicesVeeam webinar - Deduplication best practices
Veeam webinar - Deduplication best practicesJoep Piscaer
 
ActiveMQ Performance Tuning
ActiveMQ Performance TuningActiveMQ Performance Tuning
ActiveMQ Performance TuningChristian Posta
 
Automating a PostgreSQL High Availability Architecture with Ansible
Automating a PostgreSQL High Availability Architecture with AnsibleAutomating a PostgreSQL High Availability Architecture with Ansible
Automating a PostgreSQL High Availability Architecture with Ansible
EDB
 
Global Data Replication with Galera for Ansell Guardian®
Global Data Replication with Galera for Ansell Guardian®Global Data Replication with Galera for Ansell Guardian®
Global Data Replication with Galera for Ansell Guardian®
MariaDB plc
 
Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014
Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014
Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014
DouglasWaterfall
 
S903 palla
S903 pallaS903 palla
S903 palla
Andrew Khoury
 
NoSQL and ACID
NoSQL and ACIDNoSQL and ACID
NoSQL and ACID
FoundationDB
 
OVH Lab - Enterprise Cloud Databases
OVH Lab - Enterprise Cloud DatabasesOVH Lab - Enterprise Cloud Databases
OVH Lab - Enterprise Cloud Databases
OVHcloud
 
2007-05-23 Cecchet_PGCon2007.ppt
2007-05-23 Cecchet_PGCon2007.ppt2007-05-23 Cecchet_PGCon2007.ppt
2007-05-23 Cecchet_PGCon2007.ppt
nadirpervez2
 
DOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M usersDOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M usersYoav Avrahami
 
AWS Meetup - Sydney - February
AWS Meetup - Sydney - February AWS Meetup - Sydney - February
AWS Meetup - Sydney - February
markghiasy
 
Platform Engineering for the Modern Oracle World
Platform Engineering for the Modern Oracle WorldPlatform Engineering for the Modern Oracle World
Platform Engineering for the Modern Oracle World
Simon Haslam
 
Scaling PHP apps
Scaling PHP appsScaling PHP apps
Scaling PHP apps
Matteo Moretti
 
Upgrading to Oracle SOA 12.1 & 12.2 - Practical Steps and Project Experiences
Upgrading to Oracle SOA 12.1 & 12.2 - Practical Steps and Project ExperiencesUpgrading to Oracle SOA 12.1 & 12.2 - Practical Steps and Project Experiences
Upgrading to Oracle SOA 12.1 & 12.2 - Practical Steps and Project Experiences
Bruno Alves
 
ukoug-soa-sig-june-2016 v0.5
ukoug-soa-sig-june-2016 v0.5ukoug-soa-sig-june-2016 v0.5
ukoug-soa-sig-june-2016 v0.5Bruno Alves
 
Emc sql server 2012 overview
Emc sql server 2012 overviewEmc sql server 2012 overview
Emc sql server 2012 overview
solarisyougood
 
Containerizing GPU Applications with Docker for Scaling to the Cloud
Containerizing GPU Applications with Docker for Scaling to the CloudContainerizing GPU Applications with Docker for Scaling to the Cloud
Containerizing GPU Applications with Docker for Scaling to the Cloud
Subbu Rama
 
Docker vs. Kubernetes vs. Serverless
Docker vs. Kubernetes vs. ServerlessDocker vs. Kubernetes vs. Serverless
Docker vs. Kubernetes vs. Serverless
LogicworksNY
 

Similar to Scaling CQ5 (20)

Redis Developers Day 2014 - Redis Labs Talks
Redis Developers Day 2014 - Redis Labs TalksRedis Developers Day 2014 - Redis Labs Talks
Redis Developers Day 2014 - Redis Labs Talks
 
Aem asset optimizations & best practices
Aem asset optimizations & best practicesAem asset optimizations & best practices
Aem asset optimizations & best practices
 
Veeam webinar - Deduplication best practices
Veeam webinar - Deduplication best practicesVeeam webinar - Deduplication best practices
Veeam webinar - Deduplication best practices
 
ActiveMQ Performance Tuning
ActiveMQ Performance TuningActiveMQ Performance Tuning
ActiveMQ Performance Tuning
 
Automating a PostgreSQL High Availability Architecture with Ansible
Automating a PostgreSQL High Availability Architecture with AnsibleAutomating a PostgreSQL High Availability Architecture with Ansible
Automating a PostgreSQL High Availability Architecture with Ansible
 
Global Data Replication with Galera for Ansell Guardian®
Global Data Replication with Galera for Ansell Guardian®Global Data Replication with Galera for Ansell Guardian®
Global Data Replication with Galera for Ansell Guardian®
 
Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014
Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014
Advanced EPUB creation for iPad with Adobe InDesign CC - Digital Book World 2014
 
S903 palla
S903 pallaS903 palla
S903 palla
 
NoSQL and ACID
NoSQL and ACIDNoSQL and ACID
NoSQL and ACID
 
OVH Lab - Enterprise Cloud Databases
OVH Lab - Enterprise Cloud DatabasesOVH Lab - Enterprise Cloud Databases
OVH Lab - Enterprise Cloud Databases
 
2007-05-23 Cecchet_PGCon2007.ppt
2007-05-23 Cecchet_PGCon2007.ppt2007-05-23 Cecchet_PGCon2007.ppt
2007-05-23 Cecchet_PGCon2007.ppt
 
DOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M usersDOs and DONTs on the way to 10M users
DOs and DONTs on the way to 10M users
 
AWS Meetup - Sydney - February
AWS Meetup - Sydney - February AWS Meetup - Sydney - February
AWS Meetup - Sydney - February
 
Platform Engineering for the Modern Oracle World
Platform Engineering for the Modern Oracle WorldPlatform Engineering for the Modern Oracle World
Platform Engineering for the Modern Oracle World
 
Scaling PHP apps
Scaling PHP appsScaling PHP apps
Scaling PHP apps
 
Upgrading to Oracle SOA 12.1 & 12.2 - Practical Steps and Project Experiences
Upgrading to Oracle SOA 12.1 & 12.2 - Practical Steps and Project ExperiencesUpgrading to Oracle SOA 12.1 & 12.2 - Practical Steps and Project Experiences
Upgrading to Oracle SOA 12.1 & 12.2 - Practical Steps and Project Experiences
 
ukoug-soa-sig-june-2016 v0.5
ukoug-soa-sig-june-2016 v0.5ukoug-soa-sig-june-2016 v0.5
ukoug-soa-sig-june-2016 v0.5
 
Emc sql server 2012 overview
Emc sql server 2012 overviewEmc sql server 2012 overview
Emc sql server 2012 overview
 
Containerizing GPU Applications with Docker for Scaling to the Cloud
Containerizing GPU Applications with Docker for Scaling to the CloudContainerizing GPU Applications with Docker for Scaling to the Cloud
Containerizing GPU Applications with Docker for Scaling to the Cloud
 
Docker vs. Kubernetes vs. Serverless
Docker vs. Kubernetes vs. ServerlessDocker vs. Kubernetes vs. Serverless
Docker vs. Kubernetes vs. Serverless
 

More from connectwebex

Jackrabbit OCM in practice
Jackrabbit OCM in practiceJackrabbit OCM in practice
Jackrabbit OCM in practice
connectwebex
 
Building Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience ManagerBuilding Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience Manager
connectwebex
 
AEM 6 DAM - Integrations, Integrations, Integrations
AEM 6 DAM - Integrations, Integrations, IntegrationsAEM 6 DAM - Integrations, Integrations, Integrations
AEM 6 DAM - Integrations, Integrations, Integrations
connectwebex
 
JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?
connectwebex
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMconnectwebex
 
Presentation daniel takai
Presentation daniel takaiPresentation daniel takai
Presentation daniel takaiconnectwebex
 
Presentation thomas simlinger
Presentation thomas simlingerPresentation thomas simlinger
Presentation thomas simlingerconnectwebex
 
five Sling features you should know
five Sling features you should knowfive Sling features you should know
five Sling features you should know
connectwebex
 
Efficient content structures and queries in CRX/CQ
Efficient content structures and queries in CRX/CQEfficient content structures and queries in CRX/CQ
Efficient content structures and queries in CRX/CQ
connectwebex
 
Web, Mobile, App and Back!
Web, Mobile, App and Back!Web, Mobile, App and Back!
Web, Mobile, App and Back!
connectwebex
 
Tighten your Security and Privacy
Tighten your Security and PrivacyTighten your Security and Privacy
Tighten your Security and Privacy
connectwebex
 
THE BREAK-UP - A user interface love story
THE BREAK-UP - A user interface love storyTHE BREAK-UP - A user interface love story
THE BREAK-UP - A user interface love story
connectwebex
 
Configuring CQ Security
Configuring CQ SecurityConfiguring CQ Security
Configuring CQ Security
connectwebex
 
Integration Testing in AEM
Integration Testing in AEMIntegration Testing in AEM
Integration Testing in AEM
connectwebex
 
Sling Component Filters in CQ5
Sling Component Filters in CQ5 Sling Component Filters in CQ5
Sling Component Filters in CQ5
connectwebex
 
Integrating Backend Systems
Integrating Backend SystemsIntegrating Backend Systems
Integrating Backend Systems
connectwebex
 
Auto-testing production CQ instances with Muppet
Auto-testing production CQ instances with MuppetAuto-testing production CQ instances with Muppet
Auto-testing production CQ instances with Muppet
connectwebex
 
CQ Maven Methods
CQ Maven MethodsCQ Maven Methods
CQ Maven Methods
connectwebex
 

More from connectwebex (19)

Jackrabbit OCM in practice
Jackrabbit OCM in practiceJackrabbit OCM in practice
Jackrabbit OCM in practice
 
Building Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience ManagerBuilding Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience Manager
 
AEM 6 DAM - Integrations, Integrations, Integrations
AEM 6 DAM - Integrations, Integrations, IntegrationsAEM 6 DAM - Integrations, Integrations, Integrations
AEM 6 DAM - Integrations, Integrations, Integrations
 
JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?
 
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEMBuild single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
 
SonarQube for AEM
SonarQube for AEMSonarQube for AEM
SonarQube for AEM
 
Presentation daniel takai
Presentation daniel takaiPresentation daniel takai
Presentation daniel takai
 
Presentation thomas simlinger
Presentation thomas simlingerPresentation thomas simlinger
Presentation thomas simlinger
 
five Sling features you should know
five Sling features you should knowfive Sling features you should know
five Sling features you should know
 
Efficient content structures and queries in CRX/CQ
Efficient content structures and queries in CRX/CQEfficient content structures and queries in CRX/CQ
Efficient content structures and queries in CRX/CQ
 
Web, Mobile, App and Back!
Web, Mobile, App and Back!Web, Mobile, App and Back!
Web, Mobile, App and Back!
 
Tighten your Security and Privacy
Tighten your Security and PrivacyTighten your Security and Privacy
Tighten your Security and Privacy
 
THE BREAK-UP - A user interface love story
THE BREAK-UP - A user interface love storyTHE BREAK-UP - A user interface love story
THE BREAK-UP - A user interface love story
 
Configuring CQ Security
Configuring CQ SecurityConfiguring CQ Security
Configuring CQ Security
 
Integration Testing in AEM
Integration Testing in AEMIntegration Testing in AEM
Integration Testing in AEM
 
Sling Component Filters in CQ5
Sling Component Filters in CQ5 Sling Component Filters in CQ5
Sling Component Filters in CQ5
 
Integrating Backend Systems
Integrating Backend SystemsIntegrating Backend Systems
Integrating Backend Systems
 
Auto-testing production CQ instances with Muppet
Auto-testing production CQ instances with MuppetAuto-testing production CQ instances with Muppet
Auto-testing production CQ instances with Muppet
 
CQ Maven Methods
CQ Maven MethodsCQ Maven Methods
CQ Maven Methods
 

Recently uploaded

CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptxCADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
fakeloginn69
 
Meas_Dylan_DMBS_PB1_2024-05XX_Revised.pdf
Meas_Dylan_DMBS_PB1_2024-05XX_Revised.pdfMeas_Dylan_DMBS_PB1_2024-05XX_Revised.pdf
Meas_Dylan_DMBS_PB1_2024-05XX_Revised.pdf
dylandmeas
 
Digital Transformation and IT Strategy Toolkit and Templates
Digital Transformation and IT Strategy Toolkit and TemplatesDigital Transformation and IT Strategy Toolkit and Templates
Digital Transformation and IT Strategy Toolkit and Templates
Aurelien Domont, MBA
 
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
BBPMedia1
 
What are the main advantages of using HR recruiter services.pdf
What are the main advantages of using HR recruiter services.pdfWhat are the main advantages of using HR recruiter services.pdf
What are the main advantages of using HR recruiter services.pdf
HumanResourceDimensi1
 
Project File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdfProject File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdf
RajPriye
 
Business Valuation Principles for Entrepreneurs
Business Valuation Principles for EntrepreneursBusiness Valuation Principles for Entrepreneurs
Business Valuation Principles for Entrepreneurs
Ben Wann
 
Exploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social DreamingExploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social Dreaming
Nicola Wreford-Howard
 
Enterprise Excellence is Inclusive Excellence.pdf
Enterprise Excellence is Inclusive Excellence.pdfEnterprise Excellence is Inclusive Excellence.pdf
Enterprise Excellence is Inclusive Excellence.pdf
KaiNexus
 
BeMetals Presentation_May_22_2024 .pdf
BeMetals Presentation_May_22_2024   .pdfBeMetals Presentation_May_22_2024   .pdf
BeMetals Presentation_May_22_2024 .pdf
DerekIwanaka1
 
anas about venice for grade 6f about venice
anas about venice for grade 6f about veniceanas about venice for grade 6f about venice
anas about venice for grade 6f about venice
anasabutalha2013
 
Maksym Vyshnivetskyi: PMO Quality Management (UA)
Maksym Vyshnivetskyi: PMO Quality Management (UA)Maksym Vyshnivetskyi: PMO Quality Management (UA)
Maksym Vyshnivetskyi: PMO Quality Management (UA)
Lviv Startup Club
 
Premium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern BusinessesPremium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern Businesses
SynapseIndia
 
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdfModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
fisherameliaisabella
 
ikea_woodgreen_petscharity_cat-alogue_digital.pdf
ikea_woodgreen_petscharity_cat-alogue_digital.pdfikea_woodgreen_petscharity_cat-alogue_digital.pdf
ikea_woodgreen_petscharity_cat-alogue_digital.pdf
agatadrynko
 
Memorandum Of Association Constitution of Company.ppt
Memorandum Of Association Constitution of Company.pptMemorandum Of Association Constitution of Company.ppt
Memorandum Of Association Constitution of Company.ppt
seri bangash
 
FINAL PRESENTATION.pptx12143241324134134
FINAL PRESENTATION.pptx12143241324134134FINAL PRESENTATION.pptx12143241324134134
FINAL PRESENTATION.pptx12143241324134134
LR1709MUSIC
 
falcon-invoice-discounting-a-premier-platform-for-investors-in-india
falcon-invoice-discounting-a-premier-platform-for-investors-in-indiafalcon-invoice-discounting-a-premier-platform-for-investors-in-india
falcon-invoice-discounting-a-premier-platform-for-investors-in-india
Falcon Invoice Discounting
 
Sustainability: Balancing the Environment, Equity & Economy
Sustainability: Balancing the Environment, Equity & EconomySustainability: Balancing the Environment, Equity & Economy
Sustainability: Balancing the Environment, Equity & Economy
Operational Excellence Consulting
 
Brand Analysis for an artist named Struan
Brand Analysis for an artist named StruanBrand Analysis for an artist named Struan
Brand Analysis for an artist named Struan
sarahvanessa51503
 

Recently uploaded (20)

CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptxCADAVER AS OUR FIRST TEACHER anatomt in your.pptx
CADAVER AS OUR FIRST TEACHER anatomt in your.pptx
 
Meas_Dylan_DMBS_PB1_2024-05XX_Revised.pdf
Meas_Dylan_DMBS_PB1_2024-05XX_Revised.pdfMeas_Dylan_DMBS_PB1_2024-05XX_Revised.pdf
Meas_Dylan_DMBS_PB1_2024-05XX_Revised.pdf
 
Digital Transformation and IT Strategy Toolkit and Templates
Digital Transformation and IT Strategy Toolkit and TemplatesDigital Transformation and IT Strategy Toolkit and Templates
Digital Transformation and IT Strategy Toolkit and Templates
 
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
RMD24 | Debunking the non-endemic revenue myth Marvin Vacquier Droop | First ...
 
What are the main advantages of using HR recruiter services.pdf
What are the main advantages of using HR recruiter services.pdfWhat are the main advantages of using HR recruiter services.pdf
What are the main advantages of using HR recruiter services.pdf
 
Project File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdfProject File Report BBA 6th semester.pdf
Project File Report BBA 6th semester.pdf
 
Business Valuation Principles for Entrepreneurs
Business Valuation Principles for EntrepreneursBusiness Valuation Principles for Entrepreneurs
Business Valuation Principles for Entrepreneurs
 
Exploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social DreamingExploring Patterns of Connection with Social Dreaming
Exploring Patterns of Connection with Social Dreaming
 
Enterprise Excellence is Inclusive Excellence.pdf
Enterprise Excellence is Inclusive Excellence.pdfEnterprise Excellence is Inclusive Excellence.pdf
Enterprise Excellence is Inclusive Excellence.pdf
 
BeMetals Presentation_May_22_2024 .pdf
BeMetals Presentation_May_22_2024   .pdfBeMetals Presentation_May_22_2024   .pdf
BeMetals Presentation_May_22_2024 .pdf
 
anas about venice for grade 6f about venice
anas about venice for grade 6f about veniceanas about venice for grade 6f about venice
anas about venice for grade 6f about venice
 
Maksym Vyshnivetskyi: PMO Quality Management (UA)
Maksym Vyshnivetskyi: PMO Quality Management (UA)Maksym Vyshnivetskyi: PMO Quality Management (UA)
Maksym Vyshnivetskyi: PMO Quality Management (UA)
 
Premium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern BusinessesPremium MEAN Stack Development Solutions for Modern Businesses
Premium MEAN Stack Development Solutions for Modern Businesses
 
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdfModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
ModelingMarketingStrategiesMKS.CollumbiaUniversitypdf
 
ikea_woodgreen_petscharity_cat-alogue_digital.pdf
ikea_woodgreen_petscharity_cat-alogue_digital.pdfikea_woodgreen_petscharity_cat-alogue_digital.pdf
ikea_woodgreen_petscharity_cat-alogue_digital.pdf
 
Memorandum Of Association Constitution of Company.ppt
Memorandum Of Association Constitution of Company.pptMemorandum Of Association Constitution of Company.ppt
Memorandum Of Association Constitution of Company.ppt
 
FINAL PRESENTATION.pptx12143241324134134
FINAL PRESENTATION.pptx12143241324134134FINAL PRESENTATION.pptx12143241324134134
FINAL PRESENTATION.pptx12143241324134134
 
falcon-invoice-discounting-a-premier-platform-for-investors-in-india
falcon-invoice-discounting-a-premier-platform-for-investors-in-indiafalcon-invoice-discounting-a-premier-platform-for-investors-in-india
falcon-invoice-discounting-a-premier-platform-for-investors-in-india
 
Sustainability: Balancing the Environment, Equity & Economy
Sustainability: Balancing the Environment, Equity & EconomySustainability: Balancing the Environment, Equity & Economy
Sustainability: Balancing the Environment, Equity & Economy
 
Brand Analysis for an artist named Struan
Brand Analysis for an artist named StruanBrand Analysis for an artist named Struan
Brand Analysis for an artist named Struan
 

Scaling CQ5

  • 1. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Michael Marth | Senior Engineering Manager | @michaelmarth Scaling CQ5
  • 2. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 2 Michael § Engineering manager in R&D § Responsible for Granite (repo, CQSE, etc) § Many years in the field § Wears shorts today
  • 3. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Escape the soup coma, let’s make this a workshop session 3 Soup Coma
  • 4. © 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) § is about pre-Oak scalability patterns § The content will soon be documented in docs.day.com 4
  • 5. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Scaling problems are good problems to have (you are in demand!) 5 Text opportunities
  • 6. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. CQ5 Scaling Patterns 1. High Volume and High Performance Delivery 2. High Frequency Input Feed 3. Many Editors 4. High Processing Input Feed 5. High Volume Input Feed 6.Geo-distributed Editors 7. Many DAM assets 8.Geo-distributed disaster recovery 6
  • 7. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. High Volume and High Performance Delivery - Description § Use Case: § High traffic site (100m impressions/d) § Examples: adobe.com § Limiting factor § CPU on publish 7
  • 8. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. High Volume and High Performance Delivery - Solution Pattern 8 § Leverage dispatcher caching as much as possible § in latest dispatcher: single-page dispatcher flush and scripted flushing, use to cache/flush content in dispatcher § SSI and/or client-side for personalized content § Selectors for query caching § CDN with short TTL P P Disp Disp Load Balancer round robin CDN Client
  • 9. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 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 9
  • 10. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 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 10
  • 11. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. High Frequency Input Feed - Solution Pattern 1 11 § 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) A editing import process Backend P replication Disp flush
  • 12. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 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) A import process Backend P Disp flush import process Backend
  • 13. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 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 13
  • 14. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Many Editors - Description § Use Case: § News or media portal § >50 editors editing content concurrently § Limiting factor § Depends on what do the editors actually do: § Heavyweight editing, e.g. MSM rollouts, starting WFs: repository- or CPU-bound § Lightweight editing: CPU bound 14
  • 15. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Many Editors - Solution Pattern 1 15 § Sharding: split up different web sites / parts of web sites onto separate author instances § Publish instances are shared A site 3 editing P A site 2 editing P A site 1 editing P replication
  • 16. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Many Editors - Solution Pattern 2 16 § 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 site 3 editing A site 2 editing P A site 1 editing replication A
  • 17. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Many Editors § Questions to ask § What do the editors actually do? § Notes § Author dispatcher helps to reduce CPU load on author instances § Author cluster instead of sharding will mitigate the problem if CPU-bound 17
  • 18. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. High Processing Input Feed - Description 18 § Use Case: § DAM import of images § 1000 images at once § happens regularly § other editors are editing content at the same time § Limiting factor § CPU, memory on author
  • 19. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. High Processing Input Feed - Solution Pattern 1 19 § 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 A Processing Author Processing Author editing workflows running offload CPU-intensive WF steps by replication workflow steps running, replicating results back
  • 20. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. High Processing Input Feed - Solution Pattern 2 20 § 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 A Processing Author editing workflows running replication image upload
  • 21. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. High Processing Input Feed 21 § 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
  • 22. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. High Volume Input Feed - Description 22 § 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
  • 23. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. High Volume Input Feed - Solution Pattern 23 § 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 A Import Processing Author editing import into repository replication of diff import processBackend P replication of diff
  • 24. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. High Volume Input Feed 24 § Questions to ask § Can the import be throttled? Most problems get much less severe. § Do all changes get on publish? § 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)
  • 25. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Geo-distributed Editors 25 § Use Case: § Editors located in different geos (US, EMEA, APAC) § Limiting factor § Bandwidth between editor location and author server location
  • 26. § 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 © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Geo-distributed Editors - Solution Pattern 26 ADisp cache cache minimize requests gzip responses
  • 27. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 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 27
  • 28. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Many DAM Assets § Use Case: § Many assets (>5Mio) in DAM § Limiting factor § Disc space 28
  • 29. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Many DAM Assets - Solution Pattern 29 § Split physical storage of data store and repository tar files § tar files need disc with very low latency § for data store high latency is acceptable § 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 DS local S3
  • 30. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 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 30
  • 31. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Geo-distributed disaster recovery 31 § 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)
  • 32. § 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. Geo-distributed disaster recovery - Solution Pattern 32
  • 33. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.