[
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)