Hi Ben, Just a quick note: Ian D. and the performance isolation working group are discussing similar annotations and we should meet and talk about the options.
Niklas On Sat, Mar 12, 2016 at 12:05 AM, Klaus Ma <klaus1982...@gmail.com> wrote: > Yes, I think that's true for now; so we define `ThrottleInfo` as message to > be more flexible. In Optimistic Offer Phase 1, we only use it to > distinguish usage oversubscriptions and allocation oversubscription, > similar to bool :). > > Regarding the resources type, two questions after the discussion: > > 1. should we send different offer to the framework, so when > usage/allocation oversubscription updated, only one type of offer will be > rescinded? > 2. should we define framework's capability against `ThrottleInfo`? > > ---- > Da (Klaus), Ma (马达) | PMP® | Advisory Software Engineer > Platform OpenSource Technology, STG, IBM GCG > +86-10-8245 4084 | klaus1982...@gmail.com | http://k82.me > > On Sat, Mar 12, 2016 at 12:03 PM, Guangya Liu <gyliu...@gmail.com> wrote: > > > > > Hi Ben, > > > > I think that currently and even in the near future, the __ThrottleInfo__ > > will only be used by the usage oversubscriptions and the oversubscription > > for allocator (Both quota and reservations) will not use this value but > > only using __RevocableInfo__ is enough. > > > > I can even think that the __ThrottleInfo__ as a boolean value in > > optimistic offer phase 1 as it is mainly used to distinguish resources > > between usage oversubscriptions and allocation oversubscription (Quota > and > > Reservations), comments? > > > > Thanks, > > > > Guangya > > > > 在 2016年3月12日星期六 UTC+8上午11:09:46,Benjamin Mahler写道: > > > >> 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. > > To post to this group, send email to mesos-allocat...@googlegroups.com. > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/mesos-allocation/a68b9e92-f22e-4cf7-9499-b982c9c07613%40googlegroups.com > > < > https://groups.google.com/d/msgid/mesos-allocation/a68b9e92-f22e-4cf7-9499-b982c9c07613%40googlegroups.com?utm_medium=email&utm_source=footer > > > > . > > For more options, visit https://groups.google.com/d/optout. > > > -- Niklas