ALWAYS TEST ASSET SHARE COMMONS DEPLOYMENTS AGAINST REAL, REPRESENTATIVE CONTENT BEFORE GOING LIVE!
- Typically, the initial state content is the most expensive as it contains the least number of restrictions (restrictions tend to increase query speed.)
- AEM 6.3 by default will automatically abort queries that traverse more than 100,000 nodes.
- All the usual AEM performance considerations and sizing also applies to Asset Share Commons deployments.
Caching
- Asset Share Commons’ CSS and JavaScript assets should be cached with long TTLs (even for authenticated users).
- If acceptable, leverage ACS AEM Commons Versioned ClientLibs to aid in this.
- Asset Share Commons adheres to idempotent GET requests (they don’t change state in AEM), thus assuming authentication requirements allow, GET requests can be cached at various levels (CDN / Disaptcher / In Mem).
- Asset Details pages (assuming authentication requirements permit) are highly cache-able.
Authentication and Caching
- Many (most) asset share deployments require authentication making it difficult to cache pages/results at dispatcher. The good news is, this also generally means the number of users accessing the asset share is dramatically less than a public site.
- If authenticated users’ views are defined by their assigned AEM user groups (ACLs by user group, which is the recommended permissions scheme), it is possible to use ACS AEM Commons HTTP Cache to cache requests per group (and it also supports caching requests w query params).
Search Optimization
- Query performance typically degrades as the volume of candidate content increases.
- Queries should always restrict on at least one, and preferably 2 “optimized” (⚡) properties. Making restrictions mandatory requires use of Hidden Filters, (which unfortunately do not enumerate optimized (⚡) properties in the dialog). If mandatory restrictions are using unoptimized (🐢) properties, consult with your development team to augment the Oak index to optimize them.
- When customizing the Search page filter components, prefer optimized (⚡) properties.
- Guess Total is forced by Asset Share Commons. Setting the
guessTotal
lower (ie. <1000) is recommended. This is configured on the Search Results component.
AEM Performance Guides and Resources
Review the following materials for general AEM Performance and Query-related best practices.