From the docs (
https://ci.apache.org/projects/flink/flink-docs-master/concepts/runtime.html
)
By adjusting the number of task slots, users can define how
subtasks are isolated from each other. Having one slot per
TaskManager means each task group runs in a separate JVM (which
can be started in a
separate container, for example). Having multiple slots
means more subtasks share the same JVM. Tasks in the same JVM
share TCP connections (via multiplexing) and
heartbeat messages. They may also share data sets and data
structures, thus reducing the per-task overhead.
Does this mean that if the same task and job is running in two
slots on the same task-manager, that messages that happen to move
between these slots will do so more efficiently, and avoid
serialization overhead?