jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dürig (JIRA) <j...@apache.org>
Subject [jira] [Commented] (OAK-175) MemoryNodeStateBuilder inefficient for large child node lists
Date Tue, 10 Jul 2012 11:26:34 GMT

    [ https://issues.apache.org/jira/browse/OAK-175?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13410252#comment-13410252

Michael Dürig commented on OAK-175:

Thanks Jukka, that's great stuff. It only solves half the problem though. 

The other half is cause by {{MemoryNodeStateBuilder.snapshot}} which deeply copies all child
nodes. When adding node sequentially this leads to a quadratic performance degradation in
the number of child nodes. The solution I implemented through {{RootImpl.purge()}} purges
changes down to the branch when the number of changes kept in memory reach a certain threshold.
While this works, I find my approach too ad-hoc and would like to come up with a more general
> MemoryNodeStateBuilder inefficient for large child node lists
> -------------------------------------------------------------
>                 Key: OAK-175
>                 URL: https://issues.apache.org/jira/browse/OAK-175
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core
>            Reporter: Michael Dürig
> OAK-174 leverages the {{getChildBuilder()}} method introduced with OAK-170. This revealed
a performance issue for large child node list with the {{MemoryNodeStateBuilder}} implementation:
without additional measures (see below) {{RootImplTest.largeChildList()}} is very slow. 
> The additional measures I currently implemented consist of counting the overall number
of changes to a tree and purge these down to the branch when a certain threshold is reached.
See {{RootImpl.purge()}}. However, I think this mechanism is too ad-hoc and we should find
a more general solution.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message