You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Andrew Khoury (JIRA)" <ji...@apache.org> on 2011/02/03 20:38:28 UTC

[jira] Updated: (JCR-2878) Allow Configuration of CachingPathResolver cache size

     [ 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