Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

ItemDescription
index

The number of the partition, starting at 1. It might be omitted if all partitions are explicitly defined, and all of them are unnumbered.

taskName

How to derive the name for this partition task.

handlerUriHow to derive the handler URI for this partition task.
workManagementWork management configuration for this partition task.
copyMasterExtensionWhether to copy task extension from the master task to this partition task.
otherDeltasOther deltas to be applied to this partition task. Applied along with deltas from the parent element.
dependents (multivalued)

Dependents of this subtask, i.e. subtasks that should be started only after this subtask has finished. Provided as indices starting at 1. If the sequential execution is chosen, this setting is applied along with the default dependencies of 1 -> 2, 2 -> 3, ..., N-1 -> N.

...

Two examples of partitioned multi-node reconciliation

The following task will start a partitioned reconciliation, whose second stage is separated into buckets and executes in 4 worker tasks on each node.

Code Block
languagexml
<task oid="604866a6-de5e-4cfe-abb4-7aed95505deb"
      xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
      xmlns:syncext="http://midpoint.evolveum.com/xml/ns/public/model/extension-3"
      xmlns:ri="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3"
      xmlns:icfs="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <!-- Resource printable name -->
    <name>Partitioned multi-node reconciliation</name>

    <extension>
        <syncext:objectclass>ri:AccountObjectClass</syncext:objectclass>
    </extension>

    <ownerRef oid="00000000-0000-0000-0000-000000000002"/>
    <executionStatus>runnable</executionStatus>

    <handlerUri>http://midpoint.evolveum.com/xml/ns/public/model/synchronization/task/partitioned-reconciliation/handler-3</handlerUri>
    <objectRef oid="ef2bc95b-76e0-48e2-86d6-3d4f02d3fafe" type="ResourceType"/>
    <workManagement>
        <partitions>
            <partition>
                <index>2</index>
                <workManagement>
                    <taskKind>coordinator</taskKind>
                    <buckets>
                        <stringSegmentation>
                            <discriminator>attributes/icfs:name</discriminator>
                            <matchingRule>stringIgnoreCase</matchingRule>
                            <!-- buckets are like: (start) -> aa, aa -> ab, ab -> ac, ac -> ad, ..., zy -> zz, zz -> (end) -->
                            <boundaryCharacters>abcdefghijklmnopqrstuvwxyz</boundaryCharacters>
                            <boundaryCharacters>abcdefghijklmnopqrstuvwxyz</boundaryCharacters>
                        </stringSegmentation>
                    </buckets>
                    <workers>
                        <workersPerNode>
                            <count>4</count>
                        </workersPerNode>
                    </workers>
                </workManagement>
            </partition>
        </partitions>
    </workManagement>
    <recurrence>single</recurrence>
</task>

And here is analogous situation, this time segmenting numeric space of 64-bit number attribute (i.e. from 0 to 264-1 inclusive) into 128 buckets.

Code Block
languagexml
<task oid="9fa6d045-06d8-4549-9b7c-599b92f202f3"
      xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
      xmlns:syncext="http://midpoint.evolveum.com/xml/ns/public/model/extension-3"
      xmlns:ri="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3"
      xmlns:icfs="http://midpoint.evolveum.com/xml/ns/public/connector/icf-1/resource-schema-3"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <name>Partitioned multi-node reconciliation [numeric]</name>

    <extension>
        <syncext:objectclass>ri:AccountObjectClass</syncext:objectclass>
    </extension>

    <ownerRef oid="00000000-0000-0000-0000-000000000002"/>
    <executionStatus>runnable</executionStatus>

    <handlerUri>http://midpoint.evolveum.com/xml/ns/public/model/synchronization/task/partitioned-reconciliation/handler-3</handlerUri>
    <objectRef oid="ef2bc95b-76e0-48e2-86d6-3d4f02d3fafe" type="ResourceType"/>
    <workManagement>
        <partitions>
            <partition>
                <index>2</index>
                <workManagement>
                    <taskKind>coordinator</taskKind>
                    <buckets>
                        <numericSegmentation>
                            <discriminator>attributes/number</discriminator>
                            <to>18446744073709551616</to>        <!-- 2^64 -->
                            <numberOfBuckets>128</numberOfBuckets>
                        </numericSegmentation>
                    </buckets>
                    <workers>
                        <workersPerNode>
                            <count>4</count>
                        </workersPerNode>
                    </workers>
                </workManagement>
            </partition>
        </partitions>
    </workManagement>
    <recurrence>single</recurrence>
</task>