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

Benjamin Mahler updated MESOS-986:
----------------------------------
    Description: 
Message versioning in Mesos provides a number of benefits:

# Prevent incompatible version combinations. For example, we want to reject 
slaves that are > 1 version behind the master.

# The biggest win is providing the ability to determine behavior based on the 
cross-component versioning. For example, in MESOS-1668 we wanted the master to 
send a different ping message based on the version of the slave. In MESOS-1696, 
we wanted to perform reconciliation in the master based on the version of the 
slave. In both cases, when we don't have the version, we have to either rely on 
hacks/tricks, or add additional phases.

  was:
We currently do not prevent rogue versions of components from communicating 
within the cluster. Adding versioning to our messages will allow us to enforce 
version compatibility.

We would need to figure out the right semantics for each pair of components 
that communicate with each other.

For example, if an old incompatible Slave attempts to register with a Master, 
the Master can either ignore it, or shut it down.

        Summary: Add versioning to messages.  (was: Add versioning to messages 
to prevent communication across incompatible versions of components.)

cc [~benjaminhindman]

[~vinodkone] and I chatted about an approach to add versioning at the 
libprocess layer.

We could add the ability for an application to initialize libprocess with the 
application version. This gets encoded via a special libprocess HTTP header. 
{{install}} handlers can optionally receive a {{Version}}, akin to how they can 
optionally receive the sender UPID currently.

> Add versioning to messages.
> ---------------------------
>
>                 Key: MESOS-986
>                 URL: https://issues.apache.org/jira/browse/MESOS-986
>             Project: Mesos
>          Issue Type: Improvement
>            Reporter: Benjamin Mahler
>
> Message versioning in Mesos provides a number of benefits:
> # Prevent incompatible version combinations. For example, we want to reject 
> slaves that are > 1 version behind the master.
> # The biggest win is providing the ability to determine behavior based on the 
> cross-component versioning. For example, in MESOS-1668 we wanted the master 
> to send a different ping message based on the version of the slave. In 
> MESOS-1696, we wanted to perform reconciliation in the master based on the 
> version of the slave. In both cases, when we don't have the version, we have 
> to either rely on hacks/tricks, or add additional phases.



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

Reply via email to