[
https://issues.apache.org/jira/browse/OAK-1416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13898343#comment-13898343
]
Jukka Zitting commented on OAK-1416:
------------------------------------
The SegmentMK uses a HAMT data structure for child nodes, with {{O\(log n)}}
insertion times. And since the transient space gets periodically purged,
instead of one large insert that could be optimized to {{O\(n)}}, the
performance of this benchmark operation necessarily ends up being {{O\(n log
n)}}. I don't think it's reasonable to expect linear performance for this use
case.
> Adding many siblings does not scale linearly in the number of added nodes
> -------------------------------------------------------------------------
>
> Key: OAK-1416
> URL: https://issues.apache.org/jira/browse/OAK-1416
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: mongomk, segmentmk
> Reporter: Michael Dürig
>
> {{org.apache.jackrabbit.oak.jcr.LargeOperationIT#manySiblings}} does not
> scale linearly. Neither on a segment nor on a document node store:
> {code}
> seg quotients: 0.4181951174217804, 0.4163634468727202, 0.8406068389090829,
> 1.0735629207664423, 1.290574274619522
> doc quotients: 1.5713552072927073, 0.6562667320967186, 0.6101785222342979,
> 2.0164792911151244, 1.6989089236000476
> {code}
> In both cases adding sibling becomes more expensive when there are already
> many siblings. Although the behaviour is more expressed on a document node
> store. See also OAK-1413 on how to read these numbers.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)