[ https://issues.apache.org/jira/browse/FLINK-4490?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15437453#comment-15437453 ]
Stephan Ewen commented on FLINK-4490: ------------------------------------- For the FLIP-6 work, we need that agreed. Here is an idea of how we can make this hopefully without a lot of additional work: (1) We introduce an abstract class {{Slot}} class that defines the methods that the {{ExecutionGraph}} and {{JobManager}} need, like - fail() - release() - return() - getTaskManagerGateway() The {{SlotProvider}} will expose the new {{Slot}}. (2) We implement a version of that slot that internally contains the current master's slot, to keep this compatible in the master, and we change the ExecutionGraph to work on the new {{Slot}}. The scheduler wraps the old slot to the new slot. (3) We can then implement the FLIP-6 specific variant of the new slot. > Decouple Slot and Instance > -------------------------- > > Key: FLINK-4490 > URL: https://issues.apache.org/jira/browse/FLINK-4490 > Project: Flink > Issue Type: Sub-task > Components: Scheduler > Reporter: Kurt Young > > Currently, {{Slot}} and {{Instance}} holds each other. For {{Instance}} > holding {{Slot}}, it makes sense because it reflects how many resources it > can provide and how many are using. > But it's not very necessary for {{Slot}} to hold {{Instance}} which it > belongs to. It only needs to hold some connection information and gateway to > talk to. Another downside for {{Slot}} holding {{Instance}} is that > {{Instance}} actually contains some allocate/de-allocation logicals, it will > be difficult if we want to do some allocation refactor without letting > {{Slot}} noticed. > We should abstract the connection information of {{Instance}} to let {{Slot}} > holds. (Actually we have {{InstanceConnectionInfo}} now, but lacks of > instance's akka gateway, maybe we can just adding the akka gateway to the > {{InstanceConnectionInfo}}) -- This message was sent by Atlassian JIRA (v6.3.4#6332)