[ 
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 that
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

        

Reply via email to