My experience is that looking up the ancestors of a node for property 
inheritance does indeed have a significant performance impact.

My experience was in the realm of:
https://docs.adobe.com/docs/en/cq/5-6-1/developing/cloud-service-configurations.html
https://docs.adobe.com/docs/en/cq/5-6-1/javadoc/com/day/cq/commons/inherit/InheritanceValueMap.html

I don’t have much more detail in any shareable form.

-Rob

On 10/10/16, 8:58 AM, "Stefan Seifert" <[email protected]> wrote:

    one thought i had when implementing SLING-6059 and SLING-6058 (resource and 
property inheritance):
    
    - currently both inheritance variants are switched off by default
    - they can be switched on by setting a special inherit property in the 
configuration resource
    - this property can either be set on the "inner-most" configuration 
resource matching the configuration path, or on anyone of the "outer" 
configuration levels up to the fallback path in /conf/global, /apps/conf, 
/libs/conf.
    - thus it is possible to enable resource and/or property inheritance by 
default for specific configuration names and keep it disabled for others. and 
it is possible to "break inheritance" on any level if enabled globally.
    
    all this flexible is not too complex to implement, but it comes at a cost: 
for each configuration resource the whole configuration inheritance hierarchy 
has to be searched for this special property if it is set to true. if yes, the 
inheritance takes place. checking for the property is a cheap operations, but 
still it leads to several additional resource accesses.
    
    if we would remove the feature to allow this property to be set on any 
hierarchy level, and only check for it on the last/inner-most configuration 
level this it would be more performant to implement. but it would reduce the 
features (no inheritance for all lower levels, no breaking of inheritance), 
which would make it less flexible.
    
    the problem is that even if the inheritance is never switched on anywhere, 
still all the whole inheritance tree has to be checked. do we think this is a 
performance problem?
    
    stefan
    
    

Reply via email to