123456789101112131415161718 |
- // Package allocator aims to manage allocation of different
- // cluster-wide resources on behalf of the manager. In particular, it
- // manages a set of independent allocator processes which can mostly
- // execute concurrently with only a minimal need for coordination.
- //
- // One of the instances where it needs coordination is when deciding to
- // move a task to the PENDING state. Since a task can move to the
- // PENDING state only when all the task allocators have completed,
- // they must cooperate. The way `allocator` achieves this is by creating
- // a `taskBallot` to which all task allocators register themselves as
- // mandatory voters. For each task that needs allocation, each allocator
- // independently votes to indicate the completion of their allocation.
- // Once all registered voters have voted then the task is moved to the
- // PENDING state.
- //
- // Other than the coordination needed for task PENDING state, all
- // the allocators function fairly independently.
- package allocator
|