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.
Required: bufferSize
Optional: congestionTolerance, elastic, initialActivePorts, measurePeriod, rapidScaling, throughputTolerance
Port that ingests tuples to be split amongst multiple threads
Port (the first one) that produces split tuples
Additional ports that produce the split tuples
Required: bufferSize
Optional: congestionTolerance, elastic, initialActivePorts, measurePeriod, rapidScaling, throughputTolerance
Size of each buffer used to store the input tuples for each output port
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.
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.
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.
Period of time, in seconds, for how often to measure and adapt. The default is 5 seconds.
When turned on, rapid scaling will change many levels at once, rather than just one. The default is false, wich turns rapid scaling off.
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.
(stream<${inputStream}> ${outputStream1};stream<${inputStream}> ${outputStream2}) = ElasticLoadBalance(${inputStream}) { param bufferSize: ${bufferSize}; }