[
https://issues.apache.org/jira/browse/FLINK-1984?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15426668#comment-15426668
]
ASF GitHub Bot commented on FLINK-1984:
---------------------------------------
Github user EronWright commented on a diff in the pull request:
https://github.com/apache/flink/pull/2315#discussion_r75333536
--- Diff:
flink-mesos/src/main/scala/org/apache/flink/mesos/scheduler/Tasks.scala ---
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.flink.mesos.scheduler
+
+import akka.actor.{Actor, ActorRef, Props}
+import org.apache.flink.configuration.Configuration
+import org.apache.flink.mesos.scheduler.ReconciliationCoordinator.Reconcile
+import org.apache.flink.mesos.scheduler.TaskMonitor.{TaskGoalState,
TaskGoalStateUpdated, TaskTerminated}
+import org.apache.flink.mesos.scheduler.Tasks._
+import org.apache.flink.mesos.scheduler.messages._
+import org.apache.mesos.{SchedulerDriver, Protos}
+
+import scala.collection.mutable.{Map => MutableMap}
+
+/**
+ * Aggregate of monitored tasks.
+ *
+ * Routes messages between the scheduler and individual task monitor
actors.
+ */
+class Tasks[M <: TaskMonitor](
+ flinkConfig: Configuration,
+ schedulerDriver: SchedulerDriver,
+ taskMonitorClass: Class[M]) extends Actor {
+
+ /**
+ * A map of task monitors by task ID.
+ */
+ private val taskMap: MutableMap[Protos.TaskID,ActorRef] = MutableMap()
+
+ /**
+ * Cache of current connection state.
+ */
+ private var registered: Option[Any] = None
+
+ override def preStart(): Unit = {
+ // TODO subscribe to context.system.deadLetters for messages to
nonexistent tasks
+ }
+
+ override def receive: Receive = {
+
+ case msg: Disconnected =>
+ registered = None
+ context.actorSelection("*").tell(msg, self)
+
+ case msg : Connected =>
+ registered = Some(msg)
+ context.actorSelection("*").tell(msg, self)
+
+ case msg: TaskGoalStateUpdated =>
+ val taskID = msg.state.taskID
+
+ // ensure task monitor exists
+ if(!taskMap.contains(taskID)) {
+ val actorRef = createTask(msg.state)
+ registered.foreach(actorRef ! _)
+ }
+
+ taskMap(taskID) ! msg
+
+ case msg: StatusUpdate =>
+ taskMap(msg.status().getTaskId) ! msg
+
+ case msg: Reconcile =>
+ context.parent.forward(msg)
--- End diff --
Actually this code is generic; at best we could say it is the scheduler
(which is actually the RM or the dispatcher).
I think the argument is stronger for this reference to be explicit than for
the TaskMonitor case, because `Tasks` and `TaskMonitor` are coupled by design
(one is the aggregate for the other). I'll fix this reference if I have
time.
> Integrate Flink with Apache Mesos
> ---------------------------------
>
> Key: FLINK-1984
> URL: https://issues.apache.org/jira/browse/FLINK-1984
> Project: Flink
> Issue Type: New Feature
> Components: Cluster Management
> Reporter: Robert Metzger
> Assignee: Eron Wright
> Priority: Minor
> Attachments: 251.patch
>
>
> There are some users asking for an integration of Flink into Mesos.
> -There also is a pending pull request for adding Mesos support for Flink-:
> https://github.com/apache/flink/pull/251
> Update (May '16): a new effort is now underway, building on the recent
> ResourceManager work.
> Design document: ([google
> doc|https://docs.google.com/document/d/1WItafBmGbjlaBbP8Of5PAFOH9GUJQxf5S4hjEuPchuU/edit?usp=sharing])
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)