Operator ElasticLoadBalance

com.ibm.streamsx.plumbing > com.ibm.streamsx.plumbing 1.0.0 > com.ibm.streamsx.plumbing.balancers > ElasticLoadBalance

This operator distributes tuples to the output ports that have the capacity to receive them. In addition, it will dynamically determine the number of output ports that should be active in order to maximize throughput. Window punctuation markers are forwarded to each output port.

Summary

Ports
This operator has 1 input port and 1 or more output ports.
Windowing
This operator does not accept any windowing configurations.
Parameters
This operator supports 7 parameters.

Required: bufferSize

Optional: congestionTolerance, elastic, initialActivePorts, measurePeriod, rapidScaling, throughputTolerance

Metrics
This operator does not report any metrics.

Properties

Implementation
C++
Threading
Never - Operator never provides a single threaded execution context.

Input Ports

Ports (0)

Port that ingests tuples to be split amongst multiple threads

Properties

Output Ports

Assignments
This operator does not allow assignments to output attributes.
Ports (0)

Port (the first one) that produces split tuples

Properties

Ports (1...)

Additional ports that produce the split tuples

Properties

Parameters

This operator supports 7 parameters.

Required: bufferSize

Optional: congestionTolerance, elastic, initialActivePorts, measurePeriod, rapidScaling, throughputTolerance

bufferSize

Size of each buffer used to store the input tuples for each output port

Properties

congestionTolerance

Value between 0 and 1 which determines which level of congestion to consider "high congestion." The default is 0.5. Values near 0 tolerate less congestion; values near 1 tolerate more congestion.

Properties

elastic

Controls whether or not elasticity is enabled. The default is true, which turns elasticity on. If set to false, elasticity is turned off, and all output ports will be active, unless an initial thread level was provided.

Properties

initialActivePorts

Number of active ports (which is the same as number of threads) to start with. The default is 1 with elasticity turned on; the default is the number of output ports if elasticity is turned off. If elasticity is turned off, this parameter's value will control the thread level for the lifetime of the operator.

Properties

measurePeriod

Period of time, in seconds, for how often to measure and adapt. The default is 5 seconds.

Properties

rapidScaling

When turned on, rapid scaling will change many levels at once, rather than just one. The default is false, wich turns rapid scaling off.

Properties

throughputTolerance

Value between 0 and 1 which determines when we consider throughput to have improved. The default is 0.05. Values near 0 will respond to smaller changes in throughput more; values near 1 will require larger changes in throughput to respond.

Properties

Code Templates

ElasticLoadBalance
(stream<${inputStream}> ${outputStream1};stream<${inputStream}> ${outputStream2}) = ElasticLoadBalance(${inputStream}) {
            param
                bufferSize: ${bufferSize};
        }
      

Libraries

spl-std-tk-lib
Library Name: streams-stdtk-runtime
Include Path: ../../impl/include