You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Jukka Zitting (JIRA)" <ji...@apache.org> on 2013/07/19 10:34:48 UTC
[jira] [Commented] (OAK-922) Optimize UpdateManyChildNodesTest
[ https://issues.apache.org/jira/browse/OAK-922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13713440#comment-13713440 ]
Jukka Zitting commented on OAK-922:
-----------------------------------
I replaced the O(n^2) algorithm in {{ChildOrderDiff}} with an O(n log n) one in http://svn.apache.org/r1504799. The result:
{noformat}
# UpdateManyChildNodesTest min 10% 50% 90% max N
Oak-Tar 108 110 115 134 1045 230
{noformat}
And an {{AbstractPropertyState.equals()}} optimization in http://svn.apache.org/r1504800 brought the O\(n) comparison to O(1) for many common cases:
{noformat}
# UpdateManyChildNodesTest min 10% 50% 90% max N
Oak-Tar 33 34 36 59 523 588
{noformat}
> Optimize UpdateManyChildNodesTest
> ---------------------------------
>
> Key: OAK-922
> URL: https://issues.apache.org/jira/browse/OAK-922
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: core
> Reporter: Jukka Zitting
> Assignee: Jukka Zitting
>
> The {{UpdateManyChildNodesTest}} benchmark looks pretty bad for Oak:
> {noformat}
> # UpdateManyChildNodesTest min 10% 50% 90% max N
> Jackrabbit 12 14 17 36 486 1263
> Oak-Tar 380 458 483 548 1079 61
> {noformat}
> The main culprits are an O(n^2) algorithm in {{ChildOrderDiff}}, an O\(n) comparison in {{AbstractPropertyState.equals()}} and some missing SegmentMK optimizations.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira