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

Tobias Bocanegra resolved JCR-726.
----------------------------------

    Resolution: Fixed

- introduced a new interface: EffectiveNodeTypeCache
- renamed old implementation to EffectiveNodeTypeCacheImpl
- created faster implementation BitsetENTCacheImpl that uses a bitset to store 
the nodetype names combination
- did some fixes to the NodeTypeRegistry.getEffectiveNodeType()
- improved a little bit the NodeImpl.isNodeType()

the new bitset cache is about 25% faster than the old one, since it does not 
need to sort the nodetype names. the overhead for keeping the bitnumber-index 
for the nodetype names is minimal (and could be avoided completely, if built 
into the nodetype registry).
due to a bug in the caching it could happen that the new calculated effective 
nodetype was not properly put back into the cache.

measuring the Node.isNodeType() performance shows about 20% performance gain 
for simple nodes (where the bug mentioned above had no effect), and about 100 
times faster results in the other cases.

> Improve NodeTypeRegistry.effectiveNodeType()
> --------------------------------------------
>
>                 Key: JCR-726
>                 URL: https://issues.apache.org/jira/browse/JCR-726
>             Project: Jackrabbit
>          Issue Type: Improvement
>          Components: nodetype
>    Affects Versions: 0.9, 1.0, 1.0.1, 1.1, 1.1.1, 1.2.1
>            Reporter: Tobias Bocanegra
>         Assigned To: Tobias Bocanegra
>            Priority: Minor
>
> The current getEffectiveNodeType() implementation has a minor bug that 
> prevents from proper caching for certain nodetype combinations. further 
> performance enhancements can be made to the effective node type cache.

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

Reply via email to