3.1.1.5.5.7.3 Tree-delete Processing Specifics

  • The tree-delete operation proceeds by removing the tree, starting from the leaf objects and making its way to the root of the tree. The order of processing is not important, as long as each node is only deleted after all of its descendants have been deleted and moved into a Deleted Objects Container (section 6.1.1.4.2).

  • Regular delete processing specifics apply to each object being deleted.

  • The tree-delete operation is implemented using multiple transactions.

  • It is allowed for the tree-delete operation not to delete the complete subtree. If the server failed to complete the tree-delete operation and the error is recoverable (that is, no user intervention is required), it returns a special error code adminLimitExceeded / ERROR_DS_TREE_DELETE_NOT_FINISHED to the user. However, it is required that at least one object in the subtree was deleted (that is, some progress was made). The clients continue repeating the tree-delete request until they either receive a success (indicating that the tree was successfully removed) or receive an error code other than ERROR_DS_TREE_DELETE_NOT_FINISHED (as specified in section 3.1.1.5.5.5).