You can configure the behavior of the Heron Instances (HIs) in a topology using the parameters below.
Internal Configuration
These parameters deal with the TCP write and read queue for each instance.
Parameter | Meaning | Default |
---|---|---|
heron.instance.internal.bolt.read.queue.capacity |
The queue capacity (number of items) in bolt for buffer packets to read from stream manager | 128 |
heron.instance.internal.bolt.write.queue.capacity |
The queue capacity (number of items) in bolt for buffer packets to write to stream manager | 128 |
heron.instance.internal.spout.read.queue.capacity |
The queue capacity (number of items) in spout for buffer packets to read from stream manager | 1024 |
heron.instance.internal.spout.write.queue.capacity |
The queue capacity (number of items) in spout for buffer packets to write to stream manager | 128 |
heron.instance.internal.metrics.write.queue.capacity |
The queue capacity (number of items) for metrics packets to write to metrics manager | 128 |
Network Configuration
You can configure how HIs collect and transmit data in one (but only one) of two ways: time based or size based. If you choose time based, you can specify the maximum batch time (in milliseconds) for reading from and writing to the HI’s socket; if you choose size based, you can specify maximum batch sizes (in bytes) instead.
Parameter | Meaning | Default |
---|---|---|
heron.instance.network.read.batch.time.ms |
Time based, the maximum batch time in ms for instance to read from stream manager per attempt | 16 |
heron.instance.network.read.batch.size.bytes |
Size based, the maximum batch size in bytes to read from stream manager | 32768 |
heron.instance.network.write.batch.time.ms |
Time based, the maximum batch time in ms for instance to write to stream manager per attempt | 16 |
heron.instance.network.write.batch.size.bytes |
Size based, the maximum batch size in bytes to write to stream manager | 32768 |
Other Network Parameters
The following parameters do not need to be set in accordance with a time- or size-based system.
Parameter | Meaning | Default |
---|---|---|
heron.instance.network.options.socket.send.buffer.size.bytes |
The maximum socket’s send buffer size in bytes | 6553600 |
heron.instance.network.options.socket.received.buffer.size.bytes |
The maximum socket’s received buffer size in bytes of instance’s network options | 8738000 |
heron.instance.reconnect.streammgr.interval.sec |
Interval in seconds to reconnect to the stream manager, including the request timeout in connecting | 5 |
heron.instance.reconnect.streammgr.times |
The maximum number of connection attempts made to the SM before the SM is forcibly restarted | 60 |
Metrics Manager Configuration
These parameters deal with how each HI interacts with the topology’s Stream Manager.
Parameter | Meaning | Default |
---|---|---|
heron.instance.metrics.system.sample.interval.sec |
The interval, in seconds, at which an instance samples its system metrics, e.g. CPU load. | 10 |
heron.instance.reconnect.metricsmgr.interval.sec |
Interval in seconds to reconnect to the metrics manager, including the request timeout in connecting | 5 |
heron.instance.reconnect.metricsmgr.times |
The maximum number of connection attempts to the MM before the MM is forcibly restarted | 60 |
Tuning
These parameters are used to dynamically tune the available sizes in read and write queues to maintain high performance while avoiding garbage collection issues.
Parameter | Meaning | Default |
---|---|---|
heron.instance.tuning.expected.bolt.read.queue.size |
The expected size on read queue in bolt | 5 |
heron.instance.tuning.expected.bolt.write.queue.size |
The expected size on write queue in bolt | 5 |
heron.instance.tuning.expected.spout.read.queue.size |
The expected size on read queue in spout | 512 |
heron.instance.tuning.expected.spout.write.queue.size |
The expected size on write queue in spout | 5 |
heron.instance.tuning.expected.metrics.write.queue.size |
The expected size on metrics write queue | 5 |
heron.instance.tuning.current.sample.weight |
TODO | 0.8 |
Other Parameters
Parameter | Meaning | Default |
---|---|---|
heron.instance.set.data.tuple.capacity |
The maximum number of data tuples to batch in a HeronDataTupleSet protobuf message |
256 |
heron.instance.set.control.tuple.capacity |
The maximum number of control tuples to batch in a HeronControlTupleSet protobuf message |
256 |
heron.instance.ack.batch.time.ms |
The maximum time in ms for an spout to do acknowledgement per attempt, the ack batch could also break if there are no more ack tuples to process | 128 |
heron.instance.emit.batch.time.ms |
The maximum time in ms for an spout instance to emit tuples per attempt | 16 |
heron.instance.emit.batch.size.bytes |
The maximum batch size in bytes for an spout to emit tuples per attempt | 32768 |
heron.instance.execute.batch.time.ms |
The maximum time in ms for an bolt instance to execute tuples per attempt | 16 |
heron.instance.execute.batch.size.bytes |
The maximum batch size in bytes for an bolt instance to execute tuples per attempt | 32768 |
heron.instance.state.check.interval.sec |
The time interval for an instance to check the state change, for instance, the interval a spout using to check whether activate/deactivate is invoked | 5 |
heron.instance.acknowledgement.nbuckets |
TODO | 10 |