The CapacityScheduler is a rather static at the moment, and refreshqueue provides a rather heavy-handed way to reconfigure it. Moving towards long-running services (tracked in YARN-896) and to enable more advanced admission control and resource parcelling we need to make the CapacityScheduler more dynamic. This is instrumental to the umbrella jira
Concretely this require the following changes:
- create queues dynamically
- destroy queues dynamically
- dynamically change queue parameters (e.g., capacity)
- modify refreshqueue validation to enforce sum(child.getCapacity())<= 100% instead of ==100%
We limit this to LeafQueues.