You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by "Chris Lambert (JIRA)" <ji...@apache.org> on 2013/11/08 20:44:17 UTC

[jira] [Commented] (MESOS-579) Refactor the Isolator to return Futures and wrap a libprocess Process.

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

Chris Lambert commented on MESOS-579:
-------------------------------------

[~idownes], is this out for review?  If so can you link the RBs and move this to Reviewable?  Thanks.

> Refactor the Isolator to return Futures and wrap a libprocess Process.
> ----------------------------------------------------------------------
>
>                 Key: MESOS-579
>                 URL: https://issues.apache.org/jira/browse/MESOS-579
>             Project: Mesos
>          Issue Type: Improvement
>            Reporter: Benjamin Mahler
>            Assignee: Ian Downes
>
> Currently the Isolator interface _is_ a libprocess Process:
> class Isolator : public process::Process<Isolator>
> {
>   ...
>   virtual void killExecutor(
>       const FrameworkID& frameworkId,
>       const ExecutorID& executorId) = 0;
>   ...
> }
> This has led to issues where we've accidentally called directly into Isolator (instead of dispatching). We should make Isolator a wrapper around a libprocess Process.
> Second, the Isolator should return Futures rather than calling back into the slave. We currently have to construct the ProcessIsolator / CgroupsIsolator by passing in the Slave PID, so that they can dispatch back into the slave to notify when the executor has exited (for example). We can eliminate the need for this by returning Futures!
> class Isolator
> {
>   ...
>   // Returns a Future that becomes ready when the executor has been killed.
>   // Exited contains the status and message.
>   virtual Future<Exited> killExecutor(
>       const FrameworkID& frameworkId,
>       const ExecutorID& executorId);
>   {
>     return dispatch(isolator, &IsolatorProcess::killExecutor, frameworkId, executorId);
>   }
>   ...
> private:
>   IsolatorProcess* isolator;
> }



--
This message was sent by Atlassian JIRA
(v6.1#6144)