On Mon, Nov 5, 2018 at 5:23 AM Benjamin Bannier < benjamin.bann...@mesosphere.io> wrote:
> Hi Michał, > > > Is it guaranteed that reservations' roles for all resources within > single offer will always be the same? I've tried to with " > --resources="cpus(foo):1;mem(bar):4096" passed to agent and framework > having multiple roles (foo and bar) and I'm getting only offers like: > > * mem(reservations: [(STATIC,bar)]):4096;disk:471782;ports:[31000-32000] > > * cpus(reservations: [(STATIC,foo)]):1 > > * cpus(reservations: [(STATIC,foo)]):1;disk:471782;ports:[31000-32000] > > > > so on my machine I couldn't get an offer where resources have > reservation role. If this is guaranteed then where I can find any > information about it in official doc? > > > > should be "so on my machine I couldn't get an offer where resources have > different reservation role" > > The answer depends on the role(s) of your framework. In general it is much > safer to not make strong assumptions here if possible; I’d expect that your > framework would need to possibly examine the roles of offered resources > anyway, at least to distinguish unreserved and reserved resources. > > * * * > > On the technical level, an offer will always only contain resources > allocated to just a single role, see > https://github.com/apache/mesos/blob/master/include/mesos/mesos.proto#L1911-L1914. > In the default hierarchical allocator reserved resources are only > allocatable to the role they are reserved for or any of its subroles, > https://github.com/bbannier/mesos/blob/b5d884bba4e5c1550e15df4c3d51c692a985126e/src/common/resources.cpp#L1211-L1212 > . > > More practically, if you you register a framework in the hierarchical role > `foo/bar`, resources reserved for `foo` are allocatable to the framework as > are resources reserved for `foo/bar`. Here an offer might contain resources > reserved for `foo` and resources reserved for `foo/bar` at the same time in > addition to unreserved resources; all these resources would be allocated to > `foo/bar`. > > If your framework is registered to a non-hierarchical role `foo`, any > offers to it would only contain resources reserved to `foo` or unreserved > resources, allocated to `foo`. > Yup, it helps a lot. Thank you. > > > HTH & cheers, > > Benjamin -- BR, Michał Łowicki