Has anyone explored an idea of having a non-exclusive (wrt job role) dedicated constraint in Aurora before?
We do have a dedicated constraint now but it assumes a 1:1 relationship between a job role and a slave attribute [1]. For example: a 'www-data/prod/hello' job with a dedicated constraint of 'dedicated': 'www-data/hello' may only be pinned to a particular set of slaves if all of them have 'www-data/hello' attribute set. No other role tasks will be able to land on those slaves unless their 'role/name' pair is added into the slave attribute set. The above is very limiting as it prevents carving out subsets of a shared pool cluster to be used by multiple roles at the same time. Would it make sense to have a free-form dedicated constraint not bound to a particular role? Multiple jobs could then use this type of constraint dynamically without modifying the slave command line (and requiring slave restart). This could be quite useful for experimenting purposes (e.g. different host OS) or to target a different hardware offering (e.g. GPUs). In other words, only those jobs that explicitly opt-in to participate in an experiment or hw offering would be landing on that slave set. Thanks, Maxim [1]- https://github.com/apache/aurora/blob/eec985d948f02f46637d87cd4d212eb2a70ef8d0/src/main/java/org/apache/aurora/scheduler/configuration/ConfigurationManager.java#L272-L276