[
https://issues.apache.org/jira/browse/OAK-3087?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14620080#comment-14620080
]
Vikas Saurabh edited comment on OAK-3087 at 7/9/15 8:03 AM:
------------------------------------------------------------
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|^cleanupDisbaledIndices-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])
was (Author: catholicon):
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)