Answer inline :). > On Mar 29, 2016, at 05:25, Niklas Nielsen <n...@qni.dk> wrote: > > Echoing Ben Mahler's comment. I still don't find the ThrottleInfo very > intuitive. [Klaus]: Not sure which one is better: "ScavengeInfo"/ "BestEffortInfo"/“ThrottleableInfo” :).
> Did you discuss the general notion of resource quality further? [Klaus]: Yes, I’m thinking how user/developer will use this feature and its behaviour; that’ll be helpful to the design. > > On Mon, Mar 21, 2016 at 11:50 PM, Klaus Ma <klaus1982...@gmail.com > <mailto:klaus1982...@gmail.com>> wrote: > @benm/joris, > > here's the user scenario in my mind: > > 1. master offers resources to the framework, e.g. 2 cpu > 2. framework launch a task (2 cpu) and mark the task/executors as throttleable > 3. in ResourceEstimator, it should only consider the throttleable > task/executors: > - keep enough resources for the tasks/executors without throttleable > flag/attribute > - report allocated but not used resources by task/executor with > throttleable flag/attribute; for example, report 1 cpu as > "Revocable.Throttleable" resources to framework in this case > 4. it's up to framework to use which resources; "Revocable.Throttleable" > means it'll share compress resources with resources owner, "Revocable" > (without ThrottleableInfo) means it'll be evicted when the resources owner > reclaimed it back > 5. QoS Controller makes sure: > - enough resources for the tasks/executors without throttleable > flag/attribute > - if used resources exceed allocated resources with throttleable > flag/attribute, evict the task/executor on revocable resource > > So to @connor's question, maybe a flag/attribute to task/executor when > launching it. Regarding the name, both "ScavengeInfo"/ > "BestEffortInfo"/"ThrottleableInfo" are OK for me, maybe "ScavengeInfo" is > better. > > Any comments? > > For this scenario, I think there're still open questions: > 1. Can framework launch task with throttleable flag/attribute on revocable > resources? > 2. For ResourceEstimator/QoS Controllor, should Agent double check it report? > 3. What's the behaviour between the two container: the container on original > resouces & the container on revocable resource? > 4. Who handle compressible/in-compressible resources? Maybe > ResourceEstimator/QoSController, it should not report in-compressible > resources as Revocable.Throttleable. > > Thanks > Klaus > > On Tuesday, March 22, 2016 at 4:13:10 AM UTC+8, Benjamin Mahler wrote: > Yeah that's definitely a question I've been asking myself, and we synced on > that with Niklas during the last meeting. The thought currently is that we > should choose a better name than ThrottleInfo. ThrottleInfo seems to carry > too strong of an implication about what the resources will experience. > Rather, we could pick a name like "ScavengeInfo" / "BestEffortInfo" / etc > that indicates that these resources are running within the un-utilized > portion of the machine and _may_ experience degradation. > > On Mon, Mar 21, 2016 at 1:26 AM, Joris Van Remoortere <jo...@mesosphere.io > <mailto:jo...@mesosphere.io>> wrote: > @klaus: > I think @connor's question is whether we are absolutely sure we never want to > support throttle-able but non-revocable resources. > It's clear from the protos that this is not supported, the question is > whether we are sure that is what we want. If so, can you elaborate as to > *why* we would never want that concept in Mesos. > > — > Joris Van Remoortere > Mesosphere > > On Sun, Mar 20, 2016 at 8:33 PM, Klaus Ma <klaus1982...@gmail.com > <mailto:klaus1982...@gmail.com>> wrote: > Here's some input :). > > If throttling is tolerable but preemption is not, how would that be > expressed? (Is that supported?) > [Klaus]: It's not supported; only revocable resources has this attribute: > non-throttleable or throttleable. The throttleable revocable resources is > reported by ResourceEstimator which means the resources maybe throttled by > its original owner. > > How does this work with the QoS controller? Will there be a new correction > type to indicate throttling, or does throttling happen "behind the agent's > back"? > [Klaus]: The QoSController/ResourceEstimator only manages throttleable > revocable resources; the others resources (regular resources and > non-throttleable revocable resources) are managed by allocator. The "manage" > means generation and destroy/eviction. Regarding "throttling happen", good > question. I think the throttling will dependent on containers, let me double > check it :). > > If any comments, please let me know. > > ---- > Da (Klaus), Ma (马达) | PMP® | Advisory Software Engineer > Platform OpenSource Technology, STG, IBM GCG > +86-10-8245 4084 <> | klaus1982...@gmail.com <mailto:klaus1982...@gmail.com> > | http://k82.me <http://k82.me/> > On Sat, Mar 19, 2016 at 11:15 PM, <connor....@gmail.com > <mailto:connor....@gmail.com>> wrote: > Thanks for the good explanations so far Ben and Klaus. Apologies if you guys > already covered these questions in the meeting: > > If throttling is tolerable but preemption is not, how would that be > expressed? (Is that supported?) > > How does this work with the QoS controller? Will there be a new correction > type to indicate throttling, or does throttling happen "behind the agent's > back"? > > Thanks, > -- > Connor > > > On Mar 19, 2016, at 04:01, Klaus Ma <klaus1982...@gmail.com > > <mailto:klaus1982...@gmail.com>> wrote: > > > > @team, in the latest meeting, we agree to keep current name ThrottleInfo. > > > > If any more comments, please let me know. > > > >> On Wednesday, March 16, 2016 at 9:32:37 PM UTC+8, Guangya Liu wrote: > >> Also please show your comments if any for the name here, the current name > >> is ThrottleInfo, in Kubernetes resources qos design document, they are > >> using scavenging as the key work for such behaviour, so a possible name > >> here could be ScavengeInfo , please show your comments if any for those > >> two names or even if you want to propose a new name here. > >> > >> message RevocableInfo { > >> message ThrottleInfo {} > >> > >> // If set, indicates that the resources may be throttled at > >> // any time. Throttle-able resoruces can be used for tasks > >> // that do not have strict performance requirements and are > >> // capable of handling being throttled. > >> optional ThrottleInfo throttle_info = 1; > >> } > >> > >> 在 2016年3月16日星期三 UTC+8上午10:24:14,Klaus Ma写道: > >>> > >>> The patches are updated accordingly; JIRA: MESOS-3888 , RR: > >>> https://reviews.apache.org/r/40375/ <https://reviews.apache.org/r/40375/> > >>> . > >>> > >>> Thanks > >>> klaus > >>> > >>>> On Saturday, March 12, 2016 at 11:09:46 AM UTC+8, Benjamin Mahler wrote: > >>>> Hey folks, > >>>> > >>>> In the resource allocation working group we've been looking into a few > >>>> projects that will make the allocator able to offer out resources as > >>>> revocable. For example: > >>>> > >>>> -We'll want to eventually allocate resources as revocable _by default_, > >>>> only allowing non-revocable when there are guarantees put in place > >>>> (static reservations or quota). > >>>> > >>>> -On the path to revocable by default, we can incrementally start to > >>>> offer certain resources as revocable. Consider when quota is set but the > >>>> role isn't using all of the quota. The unallocated quota can be offered > >>>> to other roles, but it should be revocable because we may revoke them > >>>> should the quota'ed role want to use the resources. Unused reservations > >>>> fall into a similar category. > >>>> > >>>> -Going revocable by default also allows us to enforce fairness in a > >>>> dynamically changing cluster by revoking resources as weights are > >>>> changed, frameworks are added or removed, etc. > >>>> > >>>> In this context, "revocable" means that the resources may be taken away > >>>> and the container will be destroyed. The meaning of "revocable" in the > >>>> context of usage oversubscription includes this, but also the container > >>>> may experience a throttling (e.g. lower cpu shares, less network > >>>> priority, etc). > >>>> > >>>> For this reason, and because we internally need to distinguish revocable > >>>> resources between the those that are generated by usage oversubscription > >>>> and those that are generated by the allocator, we're thinking of the > >>>> following change to the API: > >>>> > >>>> > >>>> > >>>> - message RevocableInfo {} > >>>> + message RevocableInfo { > >>>> + message ThrottleInfo {} > >>>> + > >>>> + // If set, indicates that the resources may be throttled at > >>>> + // any time. Throttle-able resoruces can be used for tasks > >>>> + // that do not have strict performance requirements and are > >>>> + // capable of handling being throttled. > >>>> + optional ThrottleInfo throttle_info; > >>>> + } > >>>> > >>>> // If this is set, the resources are revocable, i.e., any tasks or > >>>> - // executors launched using these resources could get preempted or > >>>> - // throttled at any time. This could be used by frameworks to run > >>>> - // best effort tasks that do not need strict uptime or performance > >>>> + // executors launched using these resources could be terminated at > >>>> + // any time. This could be used by frameworks to run > >>>> + // best effort tasks that do not need strict uptime > >>>> // guarantees. Note that if this is set, 'disk' or 'reservation' > >>>> // cannot be set. > >>>> optional RevocableInfo revocable = 9; > >>>> > >>>> > >>>> > >>>> Essentially we want to distinguish between revocable and revocable + > >>>> throttle-able. This is because usage-oversubscription generates > >>>> throttle-able revocable resources, whereas the allocator does not. This > >>>> also solves our problem of distinguishing between these two kinds of > >>>> revocable resources internally. > >>>> > >>>> Feedback welcome! > >>>> > >>>> Ben > >>>> > > > -- > You received this message because you are subscribed to the Google Groups > "Mesos Resource Allocation Working Group" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to mesos-allocation+unsubscr...@googlegroups.com > <mailto:mesos-allocation+unsubscr...@googlegroups.com>. > To post to this group, send email to mesos-allocat...@googlegroups.com > <mailto:mesos-allocat...@googlegroups.com>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/mesos-allocation/CAGmKMfU4NJpY8NP6PVu9g-ebfi7Q9UseEdPUc0XkL1qqqqm75g%40mail.gmail.com > > <https://groups.google.com/d/msgid/mesos-allocation/CAGmKMfU4NJpY8NP6PVu9g-ebfi7Q9UseEdPUc0XkL1qqqqm75g%40mail.gmail.com?utm_medium=email&utm_source=footer>. > > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. > > > -- > You received this message because you are subscribed to the Google Groups > "Mesos Resource Allocation Working Group" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to mesos-allocation+unsubscr...@googlegroups.com > <mailto:mesos-allocation+unsubscr...@googlegroups.com>. > To post to this group, send email to mesos-allocat...@googlegroups.com > <mailto:mesos-allocat...@googlegroups.com>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/mesos-allocation/CAKgKkU6EoOVvFVw0ppptE%2BA%2BHXuTB5UwETkHXz8CPsdqaDeh%2BQ%40mail.gmail.com > > <https://groups.google.com/d/msgid/mesos-allocation/CAKgKkU6EoOVvFVw0ppptE%2BA%2BHXuTB5UwETkHXz8CPsdqaDeh%2BQ%40mail.gmail.com?utm_medium=email&utm_source=footer>. > > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. > > > > > -- > Niklas