You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@mesos.apache.org by Itamar Ostricher <it...@yowza3d.com> on 2015/04/06 13:28:24 UTC

A question about "left over" rejected resources

Say my scheduler received a resource offers from slave S with <16cpu, 16GiB
mem>, and called launchTasks on this offer with utilization of <16cpu, 8GiB
mem>.
>From what I see (with mesos 0.21), the left over <0cpu, 8GiB mem> is
considered rejected, and will be re-offered after the rejection filter, or
after I call reviveOffers.

What I'm not sure about, is what happens when the task that was launched
completes, the rejection filter is still applicable, and I don't call
reviveOffers.
Once the <16cpu, 8GiB mem> is available, will I get these resources as an
offer, or will the master combine it with the other 8GiB mem and offer me
<16cpu, 16GiB> again?

Thanks,
- Itamar.

Re: A question about "left over" rejected resources

Posted by Itamar Ostricher <it...@yowza3d.com>.
I believe the correct answer is "it depends" :-)

If the frameworks are running for long times, then it shouldn't matter
(much) if you call reviveOffers or not, because after the reject filter
expires, it will be just like calling reviveOffers.
I guess that the master will be able to consolidate the offers and re-offer
it to a single framework if the reject filter expired, AND the resources
from both offers are currently not used by any framework.

On Tue, Apr 7, 2015 at 3:13 PM, David Greenberg <ds...@gmail.com>
wrote:

> Additionally, it was my understanding that it's possible (when multiple
> frameworks are connected) for mesos to offer one offer to one framework,
> and the other offer to the other framework. In this case, they'd never get
> consolidated and merged together. We've observed this in our cluster as it
> runs for a long time; however, I don't think our frameworks call
> reviveOffers. Would reviveOffers change the situation?
>
> On Tue, Apr 7, 2015 at 1:50 AM Itamar Ostricher <it...@yowza3d.com>
> wrote:
>
>> Got it. Thanks!
>>
>> On Mon, Apr 6, 2015 at 9:02 PM, Vinod Kone <vi...@apache.org> wrote:
>>
>>> To clarify David's answer, you should only get <16, 8> offer until the
>>> filter on <0, 8> is active. Once the filter expires (or you call
>>> reviveOffers), Mesos will consolidate those resources and send a <16, 16>
>>> offer. You don't need to restart the master for the aggregation.
>>>
>>> On Mon, Apr 6, 2015 at 10:46 AM, Itamar Ostricher <it...@yowza3d.com>
>>> wrote:
>>>
>>>> Thanks David!
>>>>
>>>> I'd like to make sure I understand you correctly.
>>>> I will get both <16,8> & <0,8> offers, or just the <16,8> offer?
>>>> (because I previously rejected the <0,8> offer, and did not call
>>>> reviveOffers)
>>>>
>>>> On Mon, Apr 6, 2015 at 3:06 PM, David Greenberg <dsg123456789@gmail.com
>>>> > wrote:
>>>>
>>>>> You'll actually see that as 2 offers: <16,8> and <0,8>. Your framework
>>>>> may need to consolidate those offers if it requires more than 8gb of memory
>>>>> for the next task; you can do that by calling launchTasks with both offers.
>>>>> Besides combining offers in the framework, if you fail over the master, the
>>>>> offers would also be consolidated.
>>>>> On Mon, Apr 6, 2015 at 7:29 AM Itamar Ostricher <it...@yowza3d.com>
>>>>> wrote:
>>>>>
>>>>>> Say my scheduler received a resource offers from slave S with <16cpu,
>>>>>> 16GiB mem>, and called launchTasks on this offer with utilization of
>>>>>> <16cpu, 8GiB mem>.
>>>>>> From what I see (with mesos 0.21), the left over <0cpu, 8GiB mem> is
>>>>>> considered rejected, and will be re-offered after the rejection filter, or
>>>>>> after I call reviveOffers.
>>>>>>
>>>>>> What I'm not sure about, is what happens when the task that was
>>>>>> launched completes, the rejection filter is still applicable, and I don't
>>>>>> call reviveOffers.
>>>>>> Once the <16cpu, 8GiB mem> is available, will I get these resources
>>>>>> as an offer, or will the master combine it with the other 8GiB mem and
>>>>>> offer me <16cpu, 16GiB> again?
>>>>>>
>>>>>> Thanks,
>>>>>> - Itamar.
>>>>>>
>>>>>
>>>>
>>>
>>

Re: A question about "left over" rejected resources

Posted by David Greenberg <ds...@gmail.com>.
Additionally, it was my understanding that it's possible (when multiple
frameworks are connected) for mesos to offer one offer to one framework,
and the other offer to the other framework. In this case, they'd never get
consolidated and merged together. We've observed this in our cluster as it
runs for a long time; however, I don't think our frameworks call
reviveOffers. Would reviveOffers change the situation?
On Tue, Apr 7, 2015 at 1:50 AM Itamar Ostricher <it...@yowza3d.com> wrote:

> Got it. Thanks!
>
> On Mon, Apr 6, 2015 at 9:02 PM, Vinod Kone <vi...@apache.org> wrote:
>
>> To clarify David's answer, you should only get <16, 8> offer until the
>> filter on <0, 8> is active. Once the filter expires (or you call
>> reviveOffers), Mesos will consolidate those resources and send a <16, 16>
>> offer. You don't need to restart the master for the aggregation.
>>
>> On Mon, Apr 6, 2015 at 10:46 AM, Itamar Ostricher <it...@yowza3d.com>
>> wrote:
>>
>>> Thanks David!
>>>
>>> I'd like to make sure I understand you correctly.
>>> I will get both <16,8> & <0,8> offers, or just the <16,8> offer?
>>> (because I previously rejected the <0,8> offer, and did not call
>>> reviveOffers)
>>>
>>> On Mon, Apr 6, 2015 at 3:06 PM, David Greenberg <ds...@gmail.com>
>>> wrote:
>>>
>>>> You'll actually see that as 2 offers: <16,8> and <0,8>. Your framework
>>>> may need to consolidate those offers if it requires more than 8gb of memory
>>>> for the next task; you can do that by calling launchTasks with both offers.
>>>> Besides combining offers in the framework, if you fail over the master, the
>>>> offers would also be consolidated.
>>>> On Mon, Apr 6, 2015 at 7:29 AM Itamar Ostricher <it...@yowza3d.com>
>>>> wrote:
>>>>
>>>>> Say my scheduler received a resource offers from slave S with <16cpu,
>>>>> 16GiB mem>, and called launchTasks on this offer with utilization of
>>>>> <16cpu, 8GiB mem>.
>>>>> From what I see (with mesos 0.21), the left over <0cpu, 8GiB mem> is
>>>>> considered rejected, and will be re-offered after the rejection filter, or
>>>>> after I call reviveOffers.
>>>>>
>>>>> What I'm not sure about, is what happens when the task that was
>>>>> launched completes, the rejection filter is still applicable, and I don't
>>>>> call reviveOffers.
>>>>> Once the <16cpu, 8GiB mem> is available, will I get these resources as
>>>>> an offer, or will the master combine it with the other 8GiB mem and offer
>>>>> me <16cpu, 16GiB> again?
>>>>>
>>>>> Thanks,
>>>>> - Itamar.
>>>>>
>>>>
>>>
>>
>

Re: A question about "left over" rejected resources

Posted by Itamar Ostricher <it...@yowza3d.com>.
Got it. Thanks!

On Mon, Apr 6, 2015 at 9:02 PM, Vinod Kone <vi...@apache.org> wrote:

> To clarify David's answer, you should only get <16, 8> offer until the
> filter on <0, 8> is active. Once the filter expires (or you call
> reviveOffers), Mesos will consolidate those resources and send a <16, 16>
> offer. You don't need to restart the master for the aggregation.
>
> On Mon, Apr 6, 2015 at 10:46 AM, Itamar Ostricher <it...@yowza3d.com>
> wrote:
>
>> Thanks David!
>>
>> I'd like to make sure I understand you correctly.
>> I will get both <16,8> & <0,8> offers, or just the <16,8> offer? (because
>> I previously rejected the <0,8> offer, and did not call reviveOffers)
>>
>> On Mon, Apr 6, 2015 at 3:06 PM, David Greenberg <ds...@gmail.com>
>> wrote:
>>
>>> You'll actually see that as 2 offers: <16,8> and <0,8>. Your framework
>>> may need to consolidate those offers if it requires more than 8gb of memory
>>> for the next task; you can do that by calling launchTasks with both offers.
>>> Besides combining offers in the framework, if you fail over the master, the
>>> offers would also be consolidated.
>>> On Mon, Apr 6, 2015 at 7:29 AM Itamar Ostricher <it...@yowza3d.com>
>>> wrote:
>>>
>>>> Say my scheduler received a resource offers from slave S with <16cpu,
>>>> 16GiB mem>, and called launchTasks on this offer with utilization of
>>>> <16cpu, 8GiB mem>.
>>>> From what I see (with mesos 0.21), the left over <0cpu, 8GiB mem> is
>>>> considered rejected, and will be re-offered after the rejection filter, or
>>>> after I call reviveOffers.
>>>>
>>>> What I'm not sure about, is what happens when the task that was
>>>> launched completes, the rejection filter is still applicable, and I don't
>>>> call reviveOffers.
>>>> Once the <16cpu, 8GiB mem> is available, will I get these resources as
>>>> an offer, or will the master combine it with the other 8GiB mem and offer
>>>> me <16cpu, 16GiB> again?
>>>>
>>>> Thanks,
>>>> - Itamar.
>>>>
>>>
>>
>

Re: A question about "left over" rejected resources

Posted by Vinod Kone <vi...@apache.org>.
To clarify David's answer, you should only get <16, 8> offer until the
filter on <0, 8> is active. Once the filter expires (or you call
reviveOffers), Mesos will consolidate those resources and send a <16, 16>
offer. You don't need to restart the master for the aggregation.

On Mon, Apr 6, 2015 at 10:46 AM, Itamar Ostricher <it...@yowza3d.com>
wrote:

> Thanks David!
>
> I'd like to make sure I understand you correctly.
> I will get both <16,8> & <0,8> offers, or just the <16,8> offer? (because
> I previously rejected the <0,8> offer, and did not call reviveOffers)
>
> On Mon, Apr 6, 2015 at 3:06 PM, David Greenberg <ds...@gmail.com>
> wrote:
>
>> You'll actually see that as 2 offers: <16,8> and <0,8>. Your framework
>> may need to consolidate those offers if it requires more than 8gb of memory
>> for the next task; you can do that by calling launchTasks with both offers.
>> Besides combining offers in the framework, if you fail over the master, the
>> offers would also be consolidated.
>> On Mon, Apr 6, 2015 at 7:29 AM Itamar Ostricher <it...@yowza3d.com>
>> wrote:
>>
>>> Say my scheduler received a resource offers from slave S with <16cpu,
>>> 16GiB mem>, and called launchTasks on this offer with utilization of
>>> <16cpu, 8GiB mem>.
>>> From what I see (with mesos 0.21), the left over <0cpu, 8GiB mem> is
>>> considered rejected, and will be re-offered after the rejection filter, or
>>> after I call reviveOffers.
>>>
>>> What I'm not sure about, is what happens when the task that was launched
>>> completes, the rejection filter is still applicable, and I don't call
>>> reviveOffers.
>>> Once the <16cpu, 8GiB mem> is available, will I get these resources as
>>> an offer, or will the master combine it with the other 8GiB mem and offer
>>> me <16cpu, 16GiB> again?
>>>
>>> Thanks,
>>> - Itamar.
>>>
>>
>

Re: A question about "left over" rejected resources

Posted by Itamar Ostricher <it...@yowza3d.com>.
Thanks David!

I'd like to make sure I understand you correctly.
I will get both <16,8> & <0,8> offers, or just the <16,8> offer? (because I
previously rejected the <0,8> offer, and did not call reviveOffers)

On Mon, Apr 6, 2015 at 3:06 PM, David Greenberg <ds...@gmail.com>
wrote:

> You'll actually see that as 2 offers: <16,8> and <0,8>. Your framework may
> need to consolidate those offers if it requires more than 8gb of memory for
> the next task; you can do that by calling launchTasks with both offers.
> Besides combining offers in the framework, if you fail over the master, the
> offers would also be consolidated.
> On Mon, Apr 6, 2015 at 7:29 AM Itamar Ostricher <it...@yowza3d.com>
> wrote:
>
>> Say my scheduler received a resource offers from slave S with <16cpu,
>> 16GiB mem>, and called launchTasks on this offer with utilization of
>> <16cpu, 8GiB mem>.
>> From what I see (with mesos 0.21), the left over <0cpu, 8GiB mem> is
>> considered rejected, and will be re-offered after the rejection filter, or
>> after I call reviveOffers.
>>
>> What I'm not sure about, is what happens when the task that was launched
>> completes, the rejection filter is still applicable, and I don't call
>> reviveOffers.
>> Once the <16cpu, 8GiB mem> is available, will I get these resources as an
>> offer, or will the master combine it with the other 8GiB mem and offer me
>> <16cpu, 16GiB> again?
>>
>> Thanks,
>> - Itamar.
>>
>

Re: A question about "left over" rejected resources

Posted by David Greenberg <ds...@gmail.com>.
You'll actually see that as 2 offers: <16,8> and <0,8>. Your framework may
need to consolidate those offers if it requires more than 8gb of memory for
the next task; you can do that by calling launchTasks with both offers.
Besides combining offers in the framework, if you fail over the master, the
offers would also be consolidated.
On Mon, Apr 6, 2015 at 7:29 AM Itamar Ostricher <it...@yowza3d.com> wrote:

> Say my scheduler received a resource offers from slave S with <16cpu,
> 16GiB mem>, and called launchTasks on this offer with utilization of
> <16cpu, 8GiB mem>.
> From what I see (with mesos 0.21), the left over <0cpu, 8GiB mem> is
> considered rejected, and will be re-offered after the rejection filter, or
> after I call reviveOffers.
>
> What I'm not sure about, is what happens when the task that was launched
> completes, the rejection filter is still applicable, and I don't call
> reviveOffers.
> Once the <16cpu, 8GiB mem> is available, will I get these resources as an
> offer, or will the master combine it with the other 8GiB mem and offer me
> <16cpu, 16GiB> again?
>
> Thanks,
> - Itamar.
>