Actually "unreserved" here in Marathon means Resources which don't
contains ReservationInfo. For static reservation, they didn't
contains ReservationInfo, so they are "unreserved". For dynamic
reservation, they have ReservationInfo, so they are "reserved". This is why
your task works in static reservation while could not work in dynamic
reservation.

On Mon, May 2, 2016 at 9:10 AM, caogaojin <[email protected]>
wrote:

> @Haosdent,  sorry for delay; i’m not familiar with scala, the compilation
> takes me some time. you are right, after changing the file you told me, it
> works. But that’s not what i want, it my situation, marathon should takes
> both reserved resource and unreserved resource; when using official
> marathon version, marathon will use static reserved resources (mesos agent
> started with `--default_role dev` flag, and marathon with `--mesos_role
> dev`), but it seems marathon did not take static reserved resource as
>  *reserved resource*,
>
> ```
> Considering unreserved resources with roles {dev}. Not all basic resources
> satisfied: cpus NOT SATISFIED (1.0 > 0.0), mem NOT SATISFIED (128.0 > 0.0)
> (mesosphere.mesos.ResourceMatcher$:marathon-akka.actor.default-dispatcher-6)
> ```
>
> the above shows that marathon only considers *unreserved* resources with
> role `dev`. However IMO, all resources with role `dev` should be reserved
> resources, right? i’m quite confused, @haosdent, are resources provided  by
> mesos agent  that started with `--default_role dev` flag unreseved
> resources? i will advise mesosphere/marathon community for more help.
>
> Thanks,
>
> --
> Best Regards,
>
> GaoJin CAO
> ChinaMobile(Suzhou) R&D
> Mail:caogaojin at cmss.chinamobile.com
>
> On May 1, 2016, at 18:04, haosdent <[email protected]> wrote:
>
> This may be a feature of Marathon. I saw it only filter resources from
> those unreserved resources. After change
>
> ```
> diff --git a/src/main/scala/mesosphere/mesos/TaskBuilder.scala
> b/src/main/scala/mesosphere/mesos/TaskBuilder.scala
> index efa3406..e750881 100644
> --- a/src/main/scala/mesosphere/mesos/TaskBuilder.scala
> +++ b/src/main/scala/mesosphere/mesos/TaskBuilder.scala
> @@ -80,7 +80,7 @@ class TaskBuilder(app: AppDefinition,
>
>      val resourceMatch =
>        ResourceMatcher.matchResources(
> -        offer, app, runningTasks, ResourceSelector(acceptedResourceRoles,
> reserved = false))
> +        offer, app, runningTasks, ResourceSelector(acceptedResourceRoles,
> reserved = true))
>
>      build(offer, resourceMatch)
>    }
> ```
>
> It would use the dynamic resources we reserved before. I find Marathon
> document have these words:
>
> ```
> ### Static Reservations
>
> Dynamic reservations can only be created for unreserved resources. If you
> specify an agent's resources to be reserved for a role via the Mesos
> `--resources` or `--default_role` flag, these resources cannot be used for
> dynamic reservations. In addition, if Marathon is started with the
> `--default_accepted_resource_roles` flag specifying a value that does not
> contain `*`, your application definition should explicitly specify
> `"acceptedResourceRoles": ["*"]` in order to allow usage and reservation of
> unreserved cluster resources.
> ```
>
> You could double check this with Marathon mailing list
> https://groups.google.com/forum/?hl=en#!forum/marathon-framework . Thanks
> a lot!
>
> On Sun, May 1, 2016 at 5:07 PM, haosdent <[email protected]> wrote:
>
>> hmm, I am still digging more information in marathon. It may delay
>> because I am not familiar with marathon's code and sick today, but I would
>> inform you once have result. My quick conclusion is this may be the bug of
>> marathon when match resource requirement in offers from Mesos Master. Still
>> under finding the root cause of it.
>>
>> On Sun, May 1, 2016 at 4:24 PM, caogaojin <[email protected]
>> > wrote:
>>
>>> @Haosdent, what does http://10.132.46.71:5050/roles mean? shouldn’t
>>> that tell us all resources that framework with `dev` role takes, both from
>>> `dev` and `*` role? It doesn’t mean resources are consumed from `dev` role,
>>> right?
>>> --
>>> Best Regards,
>>>
>>> GaoJin CAO
>>> ChinaMobile(Suzhou) R&D
>>> Mail:caogaojin at cmss.chinamobile.com
>>>
>>> On May 1, 2016, at 16:02, caogaojin <[email protected]>
>>> wrote:
>>>
>>>
>>> ```
>>> [root@localhost ~]# curl http://10.132.46.71:5050/roles | python -m
>>> json.tool
>>>   % Total    % Received % Xferd  Average Speed   Time    Time     Time
>>>  Current
>>>                                  Dload  Upload   Total   Spent    Left
>>>  Speed
>>> 100   250  100   250    0     0  46772      0 --:--:-- --:--:-- --:--:--
>>> 50000
>>> {
>>>     "roles": [
>>>         {
>>>             "frameworks": [],
>>>             "name": "*",
>>>             "resources": {
>>>                 "cpus": 0,
>>>                 "disk": 0,
>>>                 "mem": 0
>>>             },
>>>             "weight": 1.0
>>>         },
>>>         {
>>>             "frameworks": [
>>>                 "439a851d-aa09-47af-bc68-d5588dc9f5da-0002"
>>>             ],
>>>            * "name": "dev",*
>>> *            "resources": {*
>>> *                "cpus": 1.0,*
>>> *                "disk": 0,*
>>> *                "mem": 128.0,*
>>> *                "ports": "[31994-31994]"*
>>> *            },*
>>>             "weight": 1.0
>>>         }
>>>     ]
>>> }
>>> ```
>>>
>>>
>>>
>>
>>
>> --
>> Best Regards,
>> Haosdent Huang
>>
>
>
>
> --
> Best Regards,
> Haosdent Huang
>
>
>


-- 
Best Regards,
Haosdent Huang

Reply via email to