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 | [email protected] | http://k82.me

On Sat, Mar 12, 2016 at 12:03 PM, Guangya Liu <[email protected]> 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 [email protected].
> To post to this group, send email to [email protected].
> 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.
>

Reply via email to