[
https://issues.apache.org/jira/browse/OAK-2492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14314009#comment-14314009
]
Stefan Egli commented on OAK-2492:
----------------------------------
bq. 2. Once set no effort would be made to unset it. So if number of children
reduce diff logic would continue to use the query based approach
Could the new flag carry a timeout - eg a few minutes, an hour - after which it
would become invalid and would have to be calculated again?
> Flag Document having many children
> ----------------------------------
>
> Key: OAK-2492
> URL: https://issues.apache.org/jira/browse/OAK-2492
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: mongomk
> Reporter: Chetan Mehrotra
> Assignee: Chetan Mehrotra
> Fix For: 1.0.12, 1.1.7
>
>
> Current DocumentMK logic while performing a diff for child nodes works as
> below
> # Get children for _before_ revision upto MANY_CHILDREN_THRESHOLD (which
> defaults to 50). Further note that current logic of fetching children nodes
> also add children {{NodeDocument}} to {{Document}} cache and also reads the
> complete Document for those children
> # Get children for _after_ revision with limits as above
> # If the child list is complete then it does a direct diff on the fetched
> children
> # if the list is not complete i.e. number of children are more than the
> threshold then it for a query based diff (also see OAK-1970)
> So in those cases where number of children are large then all work done in #1
> above is wasted and should be avoided. To do that we can mark those parent
> nodes which have many children via special flag like {{_manyChildren}}. One
> such nodes are marked the diff logic can check for the flag and skip the work
> done in #1
> This is kind of similar to way we mark nodes which have at least one child
> (OAK-1117)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)