Tony Xintong Song created FLINK-11166:
-----------------------------------------
Summary: Slot Placement Constraint
Key: FLINK-11166
URL:
https://issues.apache.org/jira/browse/FLINK-11166 Project: Flink
Issue Type: New Feature
Components: ResourceManager
Reporter: Tony Xintong Song
In many cases, users may want Flink to schedule their job tasks following certain locality preferences. E.g., colocating upstream/downstream tasks to reduce data transmission costs, dispersing tasks of certain pattern (e.g., I/O intensive) to avoid resource competitions, running tasks in exclusive TaskExecutor-s for task level resource consumption measurements, etc.
Currently, there are two ways in Flink to specify such locality preferences: specifying preferred locations in the slot request, or setting slot sharing group for the task. In both ways the preferences are specified when requesting slots from the SlotPool and can affect how tasks are placed among the slots allocated to the JobMaster.
However, there is no guarantee that such preferences can always be satisfied, especially when slots are customized with different resource profiles for different kinds of tasks. E.g., in cases where two tasks A and B are preferred to be scheduled onto a same TaskExecutor, it is possible that none of the slots customized for A offered to the JobMaster are collocated with slots customized for B.
To better support locality preferences with various slot resource specifications, it is necessary to allow JobMaster-s to request slots subjected to certain placement constraints from the ResourceManager.
In addition, most underlying frameworks Flink runs on (Yarn, Kubernetes, Mesos) already have individual supports for container level placement constraints. It is a great opportunity for Flink to leverage such underlying supports and enable scheduling tasks with rich locality preferences.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)