You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Chesnay Schepler (Jira)" <ji...@apache.org> on 2020/08/28 09:55:00 UTC

[jira] [Commented] (FLINK-14870) Introducing non-nullable assumption for task slot sharing group

    [ https://issues.apache.org/jira/browse/FLINK-14870?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17186436#comment-17186436 ] 

Chesnay Schepler commented on FLINK-14870:
------------------------------------------

[~trohrmann] What do you think about this?

> Introducing non-nullable assumption for task slot sharing group
> ---------------------------------------------------------------
>
>                 Key: FLINK-14870
>                 URL: https://issues.apache.org/jira/browse/FLINK-14870
>             Project: Flink
>          Issue Type: Improvement
>          Components: Runtime / Coordination
>    Affects Versions: 1.10.0
>            Reporter: Zhu Zhu
>            Priority: Major
>
> In runtime, a null slot sharing group means the vertex should be run in an individual slot which is not shared with other vertices. 
> However, at the moment, there is no way to set the slot sharing group of a vertex to null in production. This is because {{StreamGraphGenerator}} would always assign a non-null slot sharing group to an operator({{StreamNode}}), and that would be the group of the generated {{JobVertex}}. (In the case of {{DataSet}}, all vertices are in the "default" group.)
> Moreover, currently users are already able to force an operator to run in an individual slot by specify a different slot sharing group key to that operator.
> So looks that supporting null slot sharing groups in runtime does not make much sense. And it's making things more complex, with codes like {{@Nullable}} annotations for slot sharing group, task required resources calculations, and single task slot allocation. 
> To make runtime code base and future development simpler, I'd propose to introduce the assumption that task slot sharing group should not be null. 
> The detailed proposal is:
> 1. In {{StreamingJobGraphGenerator}}, we check to ensure the slot sharing group key of a {{StreamNode}} is non-null, so that we always set a non-null {{SlotSharingGroup}} to a JobVertex
> 2. Remove all the {{@Nullable}} annotations for {{SlotSharingGroup}} and {{SlotSharingGroupID}} in several classes
> 3. Always use the slot sharing group resources as the physical slot resources for a task
> 4. Remove {{SchedulerImp#allocateSingleSlot}} and the related code paths
> cc [~chesnay] [~gjy] [~trohrmann]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)