jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jukka Zitting (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-169) Support orderable nodes
Date Fri, 06 Jul 2012 13:49:34 GMT

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

Jukka Zitting commented on OAK-169:

bq. Why would we not implement the ordering as a linked list, i.e. each child node has a pointer
to the next child node?

That would force a {{Node.getNodes()}} call to load all the child node states from the underlying
storage, which becomes linearly more expensive the more child nodes there are. We can avoid
by keeping the order information as a property of the parent node. Having the information
in a
single place makes also updates and things like access control easier to manage.

bq. I'm not implying that you should implement something for my use cases, but I think saying
"there are any good uses cases" is a little bit too quick for me :-)

Good point, and thanks for bringing up the counterexamples! How about "no significant use
cases without reasonable workarounds"?

Note that even preserving insertion order may be troublesome. I don't expect us to be able
to provide efficient ordering (either explicit or insertion order) of more than a few thousand
child nodes without changes to the underlying architecture. Luckily that won't be a backwards
compatibility concern, as Jackrabbit 2.x in any case starts hitting performance issues with
more than a few thousand child nodes per parent.

> Support orderable nodes
> -----------------------
>                 Key: OAK-169
>                 URL: https://issues.apache.org/jira/browse/OAK-169
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: jcr
>            Reporter: Jukka Zitting
> There are JCR clients that depend on the ability to explicitly specify the order of child
nodes. That functionality is not included in the MicroKernel tree model, so we need to implement
it either in oak-core or oak-jcr using something like an extra (hidden) {{oak:childOrder}}
property that records the specified ordering of child nodes. A multi-valued string property
is probably good enough for this.

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