[ 
https://issues.apache.org/jira/browse/MESOS-3012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Mahler updated MESOS-3012:
-----------------------------------
          Sprint: Twitter Mesos Q3 Sprint 1
    Story Points: 1

> Support existing message passing optimization with Event/Call.
> --------------------------------------------------------------
>
>                 Key: MESOS-3012
>                 URL: https://issues.apache.org/jira/browse/MESOS-3012
>             Project: Mesos
>          Issue Type: Task
>            Reporter: Benjamin Mahler
>            Assignee: Benjamin Mahler
>              Labels: twitter
>
> See the thread here:
> http://markmail.org/thread/wvapc7vkbv7z6gbx
> The scheduler driver currently sends framework messages directly to the 
> slave, when possible:
> {noformat}
>                   (through master)
>     Scheduler  —————> Master  —————>  Slave ————>  Executor
>      Driver    ————————————————————>                Driver
>                    (skip master)
> {noformat}
> The slave always sends messages directly to the scheduler driver:
> {noformat}
>     Scheduler         Master          Slave <————  Executor
>      Driver    <————————————————————                Driver
>                    (skip master)
> {noformat}
> In order for the scheduler driver to receive Events from the master, it needs 
> enough information to continue directly sending messages to slaves. This was 
> previously accomplished by sending the slave's pid inside the [offer 
> message|https://github.com/apache/mesos/blob/0.23.0-rc1/src/messages/messages.proto#L168]:
> {code}
> message ResourceOffersMessage {
>   repeated Offer offers = 1;
>   repeated string pids = 2;
> }
> {code}
> We could add an 'Address' to the Offer protobuf to provide the scheduler 
> driver with the same information:
> {code}
> message Address {
>   required string ip;
>   required string hostname;
>   required uint32_t port;
>   // All HTTP requests to this address must begin with this prefix.
>   required string path_prefix;
> }
> message Offer {
>   required OfferID id = 1;
>   required FrameworkID framework_id = 2;
>   required SlaveID slave_id = 3;
>   required string hostname = 4;   // Deprecated in favor of 'address'.
>   optional Address address = 8;  // Obviates 'hostname'.
>   ...
> }
> {code}
> The path prefix is required for testing purposes, where we can have multiple 
> slaves within a process (e.g. {{localhost:5051/slave(1)/state.json}} vs. 
> {{localhost:5051/slave(2)/state.json}}).
> This provides enough information to allow the scheduler driver to continue to 
> directly send messages to the slaves, which unblocks MESOS-2910.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to