[ 
https://issues.apache.org/jira/browse/OAK-3087?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vikas Saurabh updated OAK-3087:
-------------------------------
    Attachment: removeDescendantsAndSelf-api-take2.patch
                cleanupDisbaledIndices-take2.patch

Added new patches:
# [removeDescendantsAndSelf|^removeDescendantsAndSelf-api-take2.patch] - the 
api would now always remove documents breadth wise upwards. The maxDepth is 
calculated by jumping exponentially up and then zero-ing using binary search
# [cleanupDisabledIndices|^cleanupDisabledIndices-take2.patch] - there is now 
just one exposed method {{cleanupDisabledIndices}}.
Some examples usages of {{cleanupDisabledIndices}} are:
{noformat}
//Generate and print list of currently disabled index names.
//Then use that list to continue in dryMode.
> oak.cleanupDisabledIndices()
Generated index names: ["disabledIndex1", "notToBeCleanedDisabledIndex1", 
"disabledIndex2"]

//validate index names to be cleaned up
> oak.cleanupDisabledIndices(["disabledIndex1", "enabledIndex", 
> "disabledIndex2"])
...
Index enabledIndex is NOT DISABLED
...

//carry out actual cleanup
> oak.cleanupDisabledIndices(["disabledIndex1", "disabledIndex2"], true)
Deleting tree at path /oak:index/disabledIndex1/:index
Deleted 12 documents in 2ms
...
{noformat}

(cc [~chetanm])

> [oak-mongo.js] Add utility to cleanup hidden structure under disabled indices
> -----------------------------------------------------------------------------
>
>                 Key: OAK-3087
>                 URL: https://issues.apache.org/jira/browse/OAK-3087
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: mongomk
>            Reporter: Vikas Saurabh
>            Priority: Minor
>         Attachments: 
> 0001-update-removeDescendantsAndSelf-for-upwards-removal.patch, 
> 0002-OAK-3087-Add-some-methods-to-find-disabled-indices-a.patch, 
> cleanupDisbaledIndices-take2.patch, removeDescendantsAndSelf-api-take2.patch
>
>
> While disabling property indices, avoids usage of those indices. But, they 
> still maintain the data already stored under them. That data would keep on 
> consuming storage space without serving any purpose. Also, it'd pile on 
> mongo's id index.
> While one can delete index definition node to clear these nodes up -- but, 
> it'd be really slow and a JCR based deleted would first create a HUGE commit 
> while marking all documents under it as deleted. And, then the actual 
> deletion would happen in next revision GC after 24 hours have past.
> Hence, it might be beneficial to have a low level api in oak-mongo.js, which 
> simply removes the document from mongo altogether.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to