Details
-
Task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
As part of supporting multi-role frameworks, we can no longer assume that the framework ID maps directly to a role. Even without multi-role framework support, this assumption breaks if we want to allow frameworks to modify their role.
To determine which role resources are allocated to, we now need to store allocation information within the Resource:
message Resource { ... // The role that this resource is reserved for. If "*", this indicates // that the resource is unreserved. Otherwise, the resource will only // be offered to frameworks that belong to this role. optional string role = 6 [default = "*"]; message AllocationInfo { // If set, this resource is allocated to a role. Note that // in the future, this may be unset and the scheduler // may be responsible for allocating to one of its roles. optional string role = 1; // In the future, we may add additional fields here, e.g. priority tier, // type of allocation (quota / fair share). } optional AllocationInfo allocation_info = X; ... }
An alternative considered was to augment TaskInfo or ExecutorInfo or introduce another layer on top of Resource called Allocation which contains Resource. The first option does not work since some components that need to know about the allocation do not have visibility into the tasks/executors. The second option requires dramatic changes and so is harder to accomplish.
Attachments
Issue Links
- is depended upon by
-
MESOS-6634 Add Resource.AllocationInfo in Offer to indicate a single role per offer.
- Resolved
-
MESOS-6635 Update allocator to handle multi-role frameworks.
- Resolved