[ https://issues.apache.org/jira/browse/JCR-2878?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Khoury updated JCR-2878: ------------------------------- Description: It would be nice to be able to configure/tune the cache size of the CachingPathResolver and possibly the CachingNameResolver. During some profiling with a client using sling/CRX for their site we could see that the CachingPathResolver was not performing very well. For example, this stacktrace showed up as the top item in the profiler output: org.apache.jackrabbit.spi.commons.name.NameFactoryImpl$NameImpl._init_(NameFactoryImpl.java:108) org.apache.jackrabbit.spi.commons.name.NameFactoryImpl$NameImpl._init_(NameFactoryImpl.java:85) org.apache.jackrabbit.spi.commons.name.NameFactoryImpl.create(NameFactoryImpl.java:54) org.apache.jackrabbit.spi.commons.conversion.NameParser.parse(NameParser.java:191) org.apache.jackrabbit.spi.commons.conversion.ParsingNameResolver.getQName(ParsingNameResolver.java:64) org.apache.jackrabbit.spi.commons.conversion.PathParser.parse(PathParser.java:284) org.apache.jackrabbit.spi.commons.conversion.PathParser.parse(PathParser.java:120) org.apache.jackrabbit.spi.commons.conversion.ParsingPathResolver.getQPath(ParsingPathResolver.java:90) org.apache.jackrabbit.spi.commons.conversion.CachingPathResolver.getQPath(CachingPathResolver.java:98) org.apache.jackrabbit.spi.commons.conversion.CachingPathResolver.getQPath(CachingPathResolver.java:77) org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver.getQPath(DefaultNamePathResolver.java:82) org.apache.jackrabbit.core.SessionImpl.getQPath(SessionImpl.java:729) org.apache.jackrabbit.core.SessionImpl.itemExists(SessionImpl.java:895) org.apache.sling.jcr.base.internal.PooledSession.itemExists(PooledSession.java:236) org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.itemExists(JcrResourceProvider.java:164) org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.createResource(JcrResourceProvider.java:131) org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.getResource(JcrResourceProvider.java:76) org.apache.sling.jcr.resource.internal.helper.WrappedResourceProvider.getResource(WrappedResourceProvider.java:49) org.apache.sling.jcr.resource.internal.helper.ResourceProviderEntry.getInternalResource(ResourceProviderEntry.java:460) org.apache.sling.jcr.resource.internal.helper.ResourceProviderEntry.getResource(ResourceProviderEntry.java:137) org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:713) org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:432) org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:454) org.apache.sling.jcr.resource.internal.JcrResourceResolver.getProperty(JcrResourceResolver.java:738) org.apache.sling.jcr.resource.internal.JcrResourceResolver.getProperty(JcrResourceResolver.java:740) org.apache.sling.jcr.resource.internal.JcrResourceResolver.getChildInternal(JcrResourceResolver.java:693) org.apache.sling.jcr.resource.internal.JcrResourceResolver.resolveInternal(JcrResourceResolver.java:638) org.apache.sling.jcr.resource.internal.JcrResourceResolver.resolve(JcrResourceResolver.java:216) org.apache.sling.engine.impl.request.RequestData.initResource(RequestData.java:198) was: It would be nice to be able to configure/tune the cache size of the CachingPathResolver and possibly the CachingNameResolver. During some profiling with a client using sling/CRX for their site we could see that the CachingPathResolver was not performing very well. For example, this stacktrace showed came up as the top item in the profiler output: org.apache.jackrabbit.spi.commons.name.NameFactoryImpl$NameImpl._init_(NameFactoryImpl.java:108) org.apache.jackrabbit.spi.commons.name.NameFactoryImpl$NameImpl._init_(NameFactoryImpl.java:85) org.apache.jackrabbit.spi.commons.name.NameFactoryImpl.create(NameFactoryImpl.java:54) org.apache.jackrabbit.spi.commons.conversion.NameParser.parse(NameParser.java:191) org.apache.jackrabbit.spi.commons.conversion.ParsingNameResolver.getQName(ParsingNameResolver.java:64) org.apache.jackrabbit.spi.commons.conversion.PathParser.parse(PathParser.java:284) org.apache.jackrabbit.spi.commons.conversion.PathParser.parse(PathParser.java:120) org.apache.jackrabbit.spi.commons.conversion.ParsingPathResolver.getQPath(ParsingPathResolver.java:90) org.apache.jackrabbit.spi.commons.conversion.CachingPathResolver.getQPath(CachingPathResolver.java:98) org.apache.jackrabbit.spi.commons.conversion.CachingPathResolver.getQPath(CachingPathResolver.java:77) org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver.getQPath(DefaultNamePathResolver.java:82) org.apache.jackrabbit.core.SessionImpl.getQPath(SessionImpl.java:729) org.apache.jackrabbit.core.SessionImpl.itemExists(SessionImpl.java:895) org.apache.sling.jcr.base.internal.PooledSession.itemExists(PooledSession.java:236) org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.itemExists(JcrResourceProvider.java:164) org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.createResource(JcrResourceProvider.java:131) org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.getResource(JcrResourceProvider.java:76) org.apache.sling.jcr.resource.internal.helper.WrappedResourceProvider.getResource(WrappedResourceProvider.java:49) org.apache.sling.jcr.resource.internal.helper.ResourceProviderEntry.getInternalResource(ResourceProviderEntry.java:460) org.apache.sling.jcr.resource.internal.helper.ResourceProviderEntry.getResource(ResourceProviderEntry.java:137) org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:713) org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:432) org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:454) org.apache.sling.jcr.resource.internal.JcrResourceResolver.getProperty(JcrResourceResolver.java:738) org.apache.sling.jcr.resource.internal.JcrResourceResolver.getProperty(JcrResourceResolver.java:740) org.apache.sling.jcr.resource.internal.JcrResourceResolver.getChildInternal(JcrResourceResolver.java:693) org.apache.sling.jcr.resource.internal.JcrResourceResolver.resolveInternal(JcrResourceResolver.java:638) org.apache.sling.jcr.resource.internal.JcrResourceResolver.resolve(JcrResourceResolver.java:216) org.apache.sling.engine.impl.request.RequestData.initResource(RequestData.java:198) > Allow Configuration of CachingPathResolver cache size > ----------------------------------------------------- > > Key: JCR-2878 > URL: https://issues.apache.org/jira/browse/JCR-2878 > Project: Jackrabbit Content Repository > Issue Type: Improvement > Components: jackrabbit-spi-commons > Affects Versions: 2.1.0, 2.2.2 > Reporter: Andrew Khoury > Priority: Minor > > It would be nice to be able to configure/tune the cache size of the > CachingPathResolver and possibly the CachingNameResolver. During some > profiling with a client using sling/CRX for their site we could see that the > CachingPathResolver was not performing very well. > For example, this stacktrace showed up as the top item in the profiler output: > org.apache.jackrabbit.spi.commons.name.NameFactoryImpl$NameImpl._init_(NameFactoryImpl.java:108) > org.apache.jackrabbit.spi.commons.name.NameFactoryImpl$NameImpl._init_(NameFactoryImpl.java:85) > org.apache.jackrabbit.spi.commons.name.NameFactoryImpl.create(NameFactoryImpl.java:54) > org.apache.jackrabbit.spi.commons.conversion.NameParser.parse(NameParser.java:191) > org.apache.jackrabbit.spi.commons.conversion.ParsingNameResolver.getQName(ParsingNameResolver.java:64) > org.apache.jackrabbit.spi.commons.conversion.PathParser.parse(PathParser.java:284) > org.apache.jackrabbit.spi.commons.conversion.PathParser.parse(PathParser.java:120) > org.apache.jackrabbit.spi.commons.conversion.ParsingPathResolver.getQPath(ParsingPathResolver.java:90) > org.apache.jackrabbit.spi.commons.conversion.CachingPathResolver.getQPath(CachingPathResolver.java:98) > org.apache.jackrabbit.spi.commons.conversion.CachingPathResolver.getQPath(CachingPathResolver.java:77) > org.apache.jackrabbit.spi.commons.conversion.DefaultNamePathResolver.getQPath(DefaultNamePathResolver.java:82) > org.apache.jackrabbit.core.SessionImpl.getQPath(SessionImpl.java:729) > org.apache.jackrabbit.core.SessionImpl.itemExists(SessionImpl.java:895) > org.apache.sling.jcr.base.internal.PooledSession.itemExists(PooledSession.java:236) > org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.itemExists(JcrResourceProvider.java:164) > org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.createResource(JcrResourceProvider.java:131) > org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.getResource(JcrResourceProvider.java:76) > org.apache.sling.jcr.resource.internal.helper.WrappedResourceProvider.getResource(WrappedResourceProvider.java:49) > org.apache.sling.jcr.resource.internal.helper.ResourceProviderEntry.getInternalResource(ResourceProviderEntry.java:460) > org.apache.sling.jcr.resource.internal.helper.ResourceProviderEntry.getResource(ResourceProviderEntry.java:137) > org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResourceInternal(JcrResourceResolver.java:713) > org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:432) > org.apache.sling.jcr.resource.internal.JcrResourceResolver.getResource(JcrResourceResolver.java:454) > org.apache.sling.jcr.resource.internal.JcrResourceResolver.getProperty(JcrResourceResolver.java:738) > org.apache.sling.jcr.resource.internal.JcrResourceResolver.getProperty(JcrResourceResolver.java:740) > org.apache.sling.jcr.resource.internal.JcrResourceResolver.getChildInternal(JcrResourceResolver.java:693) > org.apache.sling.jcr.resource.internal.JcrResourceResolver.resolveInternal(JcrResourceResolver.java:638) > org.apache.sling.jcr.resource.internal.JcrResourceResolver.resolve(JcrResourceResolver.java:216) > org.apache.sling.engine.impl.request.RequestData.initResource(RequestData.java:198) > -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira