You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "angela (JIRA)" <ji...@apache.org> on 2010/08/18 18:20:19 UTC

[jira] Resolved: (JCR-2690) Cache of o.a.j.c.security.authorization.AbstractCompiledPermissions should be configurable

     [ https://issues.apache.org/jira/browse/JCR-2690?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

angela resolved JCR-2690.
-------------------------

      Assignee: angela
    Resolution: Won't Fix

resolving issue. 
from my point of view the main issue in 2.0 and 2.1 is the lack of any performance optimization. That's not addressed
by exposing the internals such as cache sizes in the configuration. But as stated above, i will take a closer look at
the caches sizes in a second iteration.

> Cache of o.a.j.c.security.authorization.AbstractCompiledPermissions should be configurable
> ------------------------------------------------------------------------------------------
>
>                 Key: JCR-2690
>                 URL: https://issues.apache.org/jira/browse/JCR-2690
>             Project: Jackrabbit Content Repository
>          Issue Type: Sub-task
>          Components: security
>    Affects Versions: 2.1.0
>            Reporter: Honwai Wong
>            Assignee: angela
>            Priority: Minor
>
> It seems that the LRUMap used to cache permission-results may be too small for large repositories. It is currently hardcoded to 1000. Thread dump show that threads are blocked while reading ACL information from the repository instead of returning them from the cache:
> java.lang.Thread.State: BLOCKED (on object monitor)
> 	at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:167)
> 	- waiting to lock <0x00002aaae4045558> (a org.apache.jackrabbit.core.state.LocalItemStateManager)
> 	at org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(SessionItemStateManager.java:200)
> 	at org.apache.jackrabbit.core.HierarchyManagerImpl.getItemState(HierarchyManagerImpl.java:152)
> 	at org.apache.jackrabbit.core.HierarchyManagerImpl.resolvePath(HierarchyManagerImpl.java:115)
> 	at org.apache.jackrabbit.core.CachingHierarchyManager.resolvePath(CachingHierarchyManager.java:151)
> 	at org.apache.jackrabbit.core.HierarchyManagerImpl.resolveNodePath(HierarchyManagerImpl.java:372)
> 	at org.apache.jackrabbit.core.ItemManager.nodeExists(ItemManager.java:484)
> 	at org.apache.jackrabbit.core.SessionImpl.nodeExists(SessionImpl.java:1446)
> 	at org.apache.jackrabbit.core.security.authorization.acl.ACLProvider$AclPermissions.buildResult(ACLProvider.java:379)
> 	at org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions.getResult(AbstractCompiledPermissions.java:50)
> 	- locked <0x00002aadb4503618> (a org.apache.commons.collections.map.LRUMap)
> 	at org.apache.jackrabbit.core.security.authorization.AbstractCompiledPermissions.grants(AbstractCompiledPermissions.java:86)
> 	at org.apache.jackrabbit.core.security.DefaultAccessManager.isGranted(DefaultAccessManager.java:246)
> 	at org.apache.jackrabbit.core.security.DefaultAccessManager.isGranted(DefaultAccessManager.java:234)
> 	at org.apache.jackrabbit.core.ItemManager.canRead(ItemManager.java:447)
> The size of the LRUMap used by o.a.j.c.security.authorization.AbstractCompiledPermissions should ideally be configurable to allow for adjusting this cache to improve permission lookup.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.