Expand my Community achievements bar.

Learn about Edge Delivery Services in upcoming GEM session
SOLVED

rollout is very slow when we have so many blueprints

Avatar

Level 4

We have implemented a custom rollout by using the OOTB RolloutManager's rollout functionality and passing the required attributes.

We have basically used what we have for we.retail and implemented language masters and live copy implementation for about 10 different languages.

 
In local env rollout works just fine and it is super fast but when we deployed the functionality to QA env, it takes a way too much time.
Upon lot of investigation and indexing, we are able to narrow it down the issue is because of the number of blueprints (3500+) available in the QA env and because of that it is taking lot of time.

 

When we had used profiler then this is what it is pin-pointing at the bundle - com.day.cq.wcm.cq-msm-core - version 5.12.58

 

at com.day.cq.wcm.msm.impl.BlueprintImpl.<init>(BlueprintImpl.java:77)+

at com.day.cq.wcm.msm.impl.BlueprintManagerImpl.getBlueprints(BlueprintManagerImpl.java:50)

at com.day.cq.wcm.msm.impl.BlueprintManagerImpl.getContainingBlueprint(BlueprintManagerImpl.java:80)

at com.day.cq.wcm.msm.impl.BlueprintManagerImpl.getContainingBlueprint(BlueprintManagerImpl.java:22)

at com.day.cq.wcm.msm.impl.LiveRelationshipManagerImpl.computeRolloutConfigs(LiveRelationshipManagerImpl.java:899)

at com.day.cq.wcm.msm.impl.LiveRelationshipManagerImpl.buildRelationship(LiveRelationshipManagerImpl.java:862)

at com.day.cq.wcm.msm.impl.LiveRelationshipManagerImpl.getChildRelation(LiveRelationshipManagerImpl.java:1031)

at com.day.cq.wcm.msm.impl.LiveRelationshipManagerImpl.getChildren(LiveRelationshipManagerImpl.java:172)

at com.day.cq.wcm.msm.impl.RolloutContextImpl.getChildren(RolloutContextImpl.java:384)

at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutResource(RolloutManagerImpl.java:807)

at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutResource(RolloutManagerImpl.java:809)

at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutPage(RolloutManagerImpl.java:693)

at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rolloutPageRelations(RolloutManagerImpl.java:623)

at com.day.cq.wcm.msm.impl.RolloutManagerImpl.rollout(RolloutManagerImpl.java:514)

at com.<my-project>.overlay.msm.servlets.MyRolloutServlet.rolloutOtherlanguages(MyRolloutServlet.java:287)

 

After we removed those blueprints and kept only some handful blueprints under /etc/blueprints, performance again improved drastically in QA.

 

All those blueprints are at /etc/blueprints as those were from AEM 6.3

After we have upgraded to AEM 6.5.7.0, the new blueprints are being created under /apps/msm folder.

 

We have not tried to move blueprints from /etc/blueprints to /apps/msm yet but will try next.

 

Does anyone have any advice or suggestions how to address this slow rollout issue? 

Thanks in advance.

 

1 Accepted Solution

Avatar

Correct answer by
Level 9

Hello,

 

I think you already know the answer as mentioned in your problem (and you may already know, just to add 2 cents of mine based on my understanding). Every blueprint associated to direct or indirect way to OOTB/custom workflows and events (via live copy or language copy) and those are keep listening to fire of those events.

 

couple of precaution you can take

 

1. blue print configuration shouldn't be overriding/applied to same area which is used by other (as blueprint can be shared with many live copies and language copy)

2. Optimize, if you are creating custom blueprint by overriding events then configure those correctly and similarly for workflows as well

 

thanks!!

 

View solution in original post

4 Replies

Avatar

Correct answer by
Level 9

Hello,

 

I think you already know the answer as mentioned in your problem (and you may already know, just to add 2 cents of mine based on my understanding). Every blueprint associated to direct or indirect way to OOTB/custom workflows and events (via live copy or language copy) and those are keep listening to fire of those events.

 

couple of precaution you can take

 

1. blue print configuration shouldn't be overriding/applied to same area which is used by other (as blueprint can be shared with many live copies and language copy)

2. Optimize, if you are creating custom blueprint by overriding events then configure those correctly and similarly for workflows as well

 

thanks!!

 

Avatar

Level 4

Hi rush_pawan - We are not overriding any blueprints. All those blueprints are independent and separate and created for block of content/pages.

We dont have custom implementation for creating the blueprint, but it seems we have so many blueprints as that is our need, rollout performance is getting affected.

Avatar

Level 4
We also found the issues in the code where multiple loops where doing rollout several times.

Avatar

Level 4
Moving the blueprints from /etc/blueprints to /apps/msm had no impact in the performance. I had deleted the /etc/blueprints folder after moving the blueprints.