Currently the following task types are segmentable - and thus able to be distributed to multiple nodes as well as to be resumed at (approximate) point of suspension.
All iterative tasks
Segmentation awareness is built into
AbstractSearchIterativeTaskHandler thus the following tasks are segmentable out of the box:
- Importing accounts from resource
- Iterative scripting
- Executing changes
- Shadow integrity check
- Object integrity check
- Propagation and multi-propagation
(Note that the segmentation was not tested with all of them yet; for some of them it might not be useful at all. The first three - namely import, recomputation and iterative scripting - were tested.)
Although this is not traditional iterative task, it can be partitioned into three segments (operation completion, resource reconciliation, shadow reconciliation), out of which the second and the third can be meaningfully segmented. Some examples are here.
No-op (demo) task
This task does not do anything useful; but it was made segmentable just to illustrate this concept. Please see the sample task.