Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Later
-
None
-
None
Description
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)
Attachments
Issue Links
- relates to
-
OAK-1970 Optimize the diff logic for large number of children case
- Closed