Version

    LoadBalancingPartition

    Short Description
    Ports
    Metadata
    Details
    See also

    Short Description

    LoadBalancingPartition distributes incoming input data records among different output ports according to workload of downstream components.

    ComponentSame input metadataSorted inputsInputsOutputsJavaCTLAuto-propagated metadata
    LoadBalancingPartition-11-n

    Ports

    Port typeNumberRequiredDescriptionMetadata
    Input0For input data recordsAny
    Output0For output data recordsInput 0
    1-NFor output data recordsInput 0

    Metadata

    LoadBalancingPartition propagates metadata in both directions. LoadBalancingPartition does not change the priority of propagated metadata.

    The component has no metadata template.

    The component does not require any specific metadata fields.

    Metadata on all output ports must be the same. Metadata name and field names may differ, but the field datatypes must correspond to each other.

    Details

    LoadBalancingPartition distributes incoming input data records among different output ports according to workload of all attached output components.

    Each incoming record is sent to one of the attached output ports. The output port is chosen according to speed of the attached components. The component starts separate working threads for each output port, which concurrently read incoming data records from single input port and send them to dedicated output port.

    Consider different edge implementations and theirs consequences for the described algorithm. For example, direct edge implementation has a cache for hundreds or even thousands of records, so a transformation processing just a small number of data records can send all incoming records to a single output branch. System thread scheduler causes all data to be processed by a single thread. In general, this component is useful in the case of a large number of data records.

    If you process only several and records, it may appear that the distribution of records is not equal. It is expected behavior. The advantage of LoadBalancingPartition is significant if many records are processed. If you need to distribute records equally, use Partition.