The existing Mesos API provides unreliable messaging passing for framework
<-> executor communication:

--> Schedulers can call 'sendFrameworkMessage(executor, slave, data)' on
the driver [1], this sends a message to the executor. This has a
best-effort optimization to bypass the master, and send the message to the
slave directly.

--> Executors can call 'sendFrameworkMessage(data)' on the driver [2],
which sends a message to the scheduler. This has a best-effort optimization
to bypass the master, and send the message to the scheduler driver directly
(via the slave).

As part of the HTTP API [3], schedulers can only make Calls against the
master, and all Events must be streamed back on the scheduler-initiated
connection to the master. This means that we can no longer easily support
bypassing the master as an optimization.

The plan is also to remove this optimization in the existing driver, in
order to conform to the upcoming Event/Call messages [4] used in the HTTP
API, so:


*** If anyone is relying on this best-effort optimization, please chime in!
***


[1]
https://github.com/apache/mesos/blob/0.22.1/include/mesos/scheduler.hpp#L289
[2]
https://github.com/apache/mesos/blob/0.22.1/include/mesos/executor.hpp#L185
[3]
https://docs.google.com/document/d/1pnIY_HckimKNvpqhKRhbc9eSItWNFT-priXh_urR-T0/edit
[4]
https://github.com/apache/mesos/blob/0.22.1/include/mesos/scheduler/scheduler.proto

Reply via email to