jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jukka Zitting (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (OAK-1934) Optimize MutableTree.orderBefore for the common case
Date Tue, 01 Jul 2014 18:06:25 GMT

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

Jukka Zitting resolved OAK-1934.

       Resolution: Fixed
    Fix Version/s: 1.1

I implemented the optimization in revision 1607152.

With that change the ReorderTest output from JCR-3793 goes from:

created in 2930 ms
reodered in 99306 ms


created in 2593 ms
reodered in 1965 ms

> Optimize MutableTree.orderBefore for the common case
> ----------------------------------------------------
>                 Key: OAK-1934
>                 URL: https://issues.apache.org/jira/browse/OAK-1934
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core
>            Reporter: Jukka Zitting
>            Assignee: Jukka Zitting
>             Fix For: 1.1
> After OAK-850 and OAK-1584 we settled on an {{orderBefore()}} implementation that always
recreates the child order list based on the names of the child nodes that are present in a
parent. This is a somewhat expensive operation with lots of child nodes as seen in JCR-3793.
> We could optimize the implementation further for the common case where the child order
list is in sync with the actual list of child nodes. For example we could skip recreating
the child order list when the name we're looking for is already included in that list. Over
time this approach should still detect cases where the list becomes out of sync, and automatically
repair the list when that happens.

This message was sent by Atlassian JIRA

View raw message