You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by "Benjamin Mahler (JIRA)" <ji...@apache.org> on 2014/05/17 01:21:52 UTC
[jira] [Updated] (MESOS-692) reservations are reported incorrectly
in master's state.json
[ https://issues.apache.org/jira/browse/MESOS-692?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benjamin Mahler updated MESOS-692:
----------------------------------
Fix Version/s: (was: 0.19.0)
> reservations are reported incorrectly in master's state.json
> ------------------------------------------------------------
>
> Key: MESOS-692
> URL: https://issues.apache.org/jira/browse/MESOS-692
> Project: Mesos
> Issue Type: Bug
> Components: master
> Reporter: brian wickman
> Assignee: Dominic Hamon
> Labels: newbie
>
> When you dump state.json from the master, it lists out a single resources dict, e.g.
> {noformat}
> >>> state['slaves'][0]
> {..., u'registered_time': 1378851991.87182, u'reregistered_time': 1378917907.3190701, u'id': u'201309042122-1937777162-5050-55755-120', u'resources': {u'mem': 21913, u'disk': 400000, u'cpus': 14, u'ports': u'[31000-32000]'}}
> {noformat}
> Looking at the code, it looks like last value wins:
> {noformat}
> // Returns a JSON object modeled on a Resources.
> JSON::Object model(const Resources& resources)
> {
> JSON::Object object;
> foreach (const Resource& resource, resources) {
> switch (resource.type()) {
> case Value::SCALAR:
> object.values[resource.name()] = resource.scalar().value();
> break;
> case Value::RANGES:
> object.values[resource.name()] = stringify(resource.ranges());
> break;
> case Value::SET:
> object.values[resource.name()] = stringify(resource.set());
> break;
> default:
> LOG(FATAL) << "Unexpected Value type: " << resource.type();
> break;
> }
> }
> return object;
> }
> {noformat}
> So for example if you had role * with 15 cores and role "hdfs" with 1 cores, the resource dict might just report 1 core. Instead it should probably aggregate resources by role, and have resources = {'*': {ram, cpu, disk}, 'hdfs': {ram, cpu, disk}} etc.
--
This message was sent by Atlassian JIRA
(v6.2#6252)