Short Description |
Ports |
Metadata |
Details |
See also |
LoadBalancingPartition distributes incoming input data records among different output ports according to workload of downstream components.
Component | Same input metadata | Sorted inputs | Inputs | Outputs | Java | CTL | Auto-propagated metadata |
---|---|---|---|---|---|---|---|
LoadBalancingPartition | - | 1 | 1-n |
Port type | Number | Required | Description | Metadata |
---|---|---|---|---|
Input | 0 | For input data records | Any | |
Output | 0 | For output data records | Input 0 | |
1-N | For output data records | Input 0 |
LoadBalancingPartition propagates metadata in both directions. LoadBalancingPartition does not change 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.
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. Actually, component just 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 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 that all data are processed by single thread. In general this component has sense only for a large number of data records.