Hi folks,

When we released MULTI_ROLE support, Offers and Resources within them
included additional information, specifically the AllocationInfo which
indicated which role was being allocated to:

https://github.com/apache/mesos/blob/1.3.0/include/
mesos/v1/mesos.proto#L907-L923
https://github.com/apache/mesos/blob/1.3.0/include/
mesos/v1/mesos.proto#L1453-L1459

We included this information even for non-MULTI_ROLE schedulers, because:

(1) Any schedulers with the old protos would continue to work, since they
ignore the new fields their notion of matching resources to offers keeps
working.

(2) Any schedulers that update the protobuf, but leave their resource
matching logic as is, also continue to work since they ignore the
allocation info.

(3) Any schedulers that update the protobuf and upgrade their matching
logic, would need to update their scheduler code to reflect the changes in
the matching logic. This was OK since the scheduler is updating their own
code to line up with their own resource matching logic.

However, this change introduced some difficulty for libraries that exposed
resource matching logic and that support both schedulers that know about
allocation info and schedulers that do not. Such a library would need to do
something to ensure that both old and new schedulers work against it (e.g.
strip the information from incoming offers if the scheduler instantiated
the library without MULTI_ROLE capability).

So, we're thinking of stripping the AllocationInfo for non-MULTI_ROLE
schedulers to simplify this for libraries. Strictly speaking this is a
*breaking change* for any non-MULTI_ROLE schedulers that have already
updated their logic to depend on the AllocationInfo presence in 1.3.x or
1.4.x.

The assumption so far is that this will be an OK change since
non-MULTI_ROLE schedulers are probably ignoring this information. But
please let me know if this is not the case!

More information here: https://issues.apache.org/jira/browse/MESOS-8237

Ben

Reply via email to