[ 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.
|