...
Pros | Cons |
- Simple to implement the current tool does that for host affinity enabled jobs (since they maintain locality mapping)
| - Needs a job restart and does a best effort to get preferred hosts for containers but has no guarantee on getting them
- If a job has standby containers enabled, this method involves changing standby mapping in addition to active container mappings
- Job faces downtime when the job has hundreds of containers and only one of them needs to be restarted, if it is stateful there is a likelihood that containers might not get the new asked resource on the restart and start bootstrapping
- This solution is not scalable to be used by Controllers who want to take multiple control actions on containers across several jobs, for example, auto-sizing controller
- This method will not be work for building Canary / Cluster Balancer
|
Solution 2. Container Placement
...
API [Accepted]
API design
On the basis of types of Control actions, the commands are the following:
...
API | containerStatus |
Description | Gives the status & info of the container placement request, for ex is it running, stopped what control commands are issued on it |
Parameters | processor-id: Samza resource id of container e.g 0, 1, 2 deploymentId: unique identifier of the deployed app for which the action is taken |
Status code | BAD_REQUEST, SUCCEEDED |
Returns | Status of the Container placement action |
...