You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Benjamin Mahler (JIRA)" <ji...@apache.org> on 2018/01/04 00:41:00 UTC

[jira] [Created] (MESOS-8389) Notion of "removable" task in master code is inaccurate.

Benjamin Mahler created MESOS-8389:
--------------------------------------

             Summary: Notion of "removable" task in master code is inaccurate.
                 Key: MESOS-8389
                 URL: https://issues.apache.org/jira/browse/MESOS-8389
             Project: Mesos
          Issue Type: Improvement
          Components: master
            Reporter: Benjamin Mahler


In the past, the notion of a "removable" task meant: the task is terminal and acknowledged. It appears now that a removable task is defined purely by its state (terminal or unreachable) but not whether the terminal update is acknowledged.

As a result, the code that is calling this function ({{isRemovable}}) ends up being unintuitive. One example of a confusing piece of code is within {{updateTask}}. Here, we have logic which says, if the task is removable, recover the resources *but don't remove it*. This seems more intuitive if directly described as: "if the task is no longer consuming resources, then (e.g. transitioned to terminal or unreachable) then recover the resources".

If one looks up the documentation of {{isRemovable}}, it says "When a task becomes removable, it is erased from the master's primary task data structures", but that isn't accurate since this function doesn't say whether the terminal task has been acknowledged, which is required for a task to be removable.

I think an easy improvement here would be to move this notion of removable towards something like {{isTerminalOrUnreachable}}. We could also think about how to name this concept more generally, like {{canReleaseResources}} to describe whether the task's resources are considered allocated.

If we do introduce a notion of {{isRemovable}}, it seems it should be saying whether the task could be removed from the master, which includes checking that terminal tasks have been acknowledged.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)