[
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)