Details
-
Bug
-
Status: Accepted
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Launching a task using revocable resources should be funnelled through an accounting system:
- If a task is launched using revocable resources, the resources must not be in use when launching the task. If they are in use, then the task should fail to start.
- If a task is launched using reserved resources, the resources must be made available. This means potentially evicting tasks which are using revocable resources.
Both cases could be implemented by adding a check in Slave::runTask, like a new helper method:
class Slave { ... // Checks if the given resources are available (i.e. not utilized) // for starting a task. If not, the task should either fail to // start or result in the eviction of revocable resources. virtual process::Future<bool> checkAvailableResources( const Resources& resources); ... }