[
https://issues.apache.org/jira/browse/FLINK-4490?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15457976#comment-15457976
]
ASF GitHub Bot commented on FLINK-4490:
---------------------------------------
Github user tillrohrmann commented on a diff in the pull request:
https://github.com/apache/flink/pull/2447#discussion_r77313861
--- Diff:
flink-runtime/src/main/java/org/apache/flink/runtime/instance/SlotSharingGroupAssignment.java
---
@@ -576,7 +560,7 @@ private void internalDisposeEmptySharedSlot(SharedSlot
sharedSlot) {
if (parent == null) {
// root slot, return to the instance.
-
sharedSlot.getInstance().returnAllocatedSlot(sharedSlot);
+ sharedSlot.getOwner().returnAllocatedSlot(sharedSlot);
--- End diff --
Can we use `sharedSlot.releaseSlot` instead? It seems not so right to get
the owner which is then used to call `returnAllocatedSlot` with the same slot.
I think this violates the law of Demeter.
Alternatively, we could add a method `returnSlot` to `Slot` which does:
`owner.returnAllocatedSlot(this)`.
> Decouple Slot and Instance
> --------------------------
>
> Key: FLINK-4490
> URL: https://issues.apache.org/jira/browse/FLINK-4490
> Project: Flink
> Issue Type: Sub-task
> Components: Distributed Coordination
> Reporter: Kurt Young
> Fix For: 1.2.0
>
>
> 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)