Re: Review Request 35239: Update the JSON model for Resources to display their revocablility attribute.

2015-06-09 Thread Vinod Kone

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35239/#review87252
---



src/master/http.cpp
https://reviews.apache.org/r/35239/#comment139566

why not just

object.values[resources] = model(slave.totalResources);

because total resources represent the current state of the slave's 
resources.

also, this is more consistent with used_resources and offered_resources 
which will now have revocable resources in them.


- Vinod Kone


On June 9, 2015, 12:38 a.m., Jiang Yan Xu wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/35239/
 ---
 
 (Updated June 9, 2015, 12:38 a.m.)
 
 
 Review request for mesos and Vinod Kone.
 
 
 Bugs: MESOS-2776
 https://issues.apache.org/jira/browse/MESOS-2776
 
 
 Repository: mesos
 
 
 Description
 ---
 
 See summary.
 
 
 Diffs
 -
 
   src/common/http.cpp 2ac7fba7a3aac913540f1b09768777393b79284a 
   src/master/http.cpp f8ac30934352db859e73819e0656a70047bb0dc5 
   src/tests/common/http_tests.cpp f087b2313a13c3199b70b3d7feb728e1449a52e7 
 
 Diff: https://reviews.apache.org/r/35239/diff/
 
 
 Testing
 ---
 
 Added a test.
 
 Also tested with a master/slave pair.
 
 e.g., The following state.json output shows a slave using a fixed estimator 
 with `cpus:1;mem:512` revocable resources.
 ```json
   slaves: [
 {
 ...
   resources: {
 cpus: 24,
 disk: 454767,
 mem: 71322,
 ports: [31000-32000]
   },
   total_resources: {
 cpus: 24,
 cpus{REV}: 1,
 disk: 454767,
 mem: 71322,
 mem{REV}: 512,
 ports: [31000-32000]
   },
   used_resources: {
 cpus: 0,
 disk: 0,
 mem: 0
   }
 }
   ],
 ```
 
 Note that `resources` only looks at the resources from SlaveInfo while 
 `total_resources` reads Master::Slave::totalResources.
 
 
 Thanks,
 
 Jiang Yan Xu
 




Re: Review Request 35239: Update the JSON model for Resources to display their revocablility attribute.

2015-06-09 Thread Ben Mahler

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35239/#review87253
---


Any reason not to just add a 'revocable_resources' instead of 
'total_resources'? Looking to avoid the magic REV string proliferating, when 
we're not yet printing role here either.

Ideally, when we add 'total_resources', we can do it in a way that captures 
everything we want (role, disk info, revocable info, etc) in a parseable way. 
Otherwise, might become difficult to make further changes without breaking 
people. For example, if we add 'total_resources' as done here, but then we want 
to show the role, how do we do that without breaking people's code that exactly 
matches cpus ?

- Ben Mahler


On June 9, 2015, 12:38 a.m., Jiang Yan Xu wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/35239/
 ---
 
 (Updated June 9, 2015, 12:38 a.m.)
 
 
 Review request for mesos and Vinod Kone.
 
 
 Bugs: MESOS-2776
 https://issues.apache.org/jira/browse/MESOS-2776
 
 
 Repository: mesos
 
 
 Description
 ---
 
 See summary.
 
 
 Diffs
 -
 
   src/common/http.cpp 2ac7fba7a3aac913540f1b09768777393b79284a 
   src/master/http.cpp f8ac30934352db859e73819e0656a70047bb0dc5 
   src/tests/common/http_tests.cpp f087b2313a13c3199b70b3d7feb728e1449a52e7 
 
 Diff: https://reviews.apache.org/r/35239/diff/
 
 
 Testing
 ---
 
 Added a test.
 
 Also tested with a master/slave pair.
 
 e.g., The following state.json output shows a slave using a fixed estimator 
 with `cpus:1;mem:512` revocable resources.
 ```json
   slaves: [
 {
 ...
   resources: {
 cpus: 24,
 disk: 454767,
 mem: 71322,
 ports: [31000-32000]
   },
   total_resources: {
 cpus: 24,
 cpus{REV}: 1,
 disk: 454767,
 mem: 71322,
 mem{REV}: 512,
 ports: [31000-32000]
   },
   used_resources: {
 cpus: 0,
 disk: 0,
 mem: 0
   }
 }
   ],
 ```
 
 Note that `resources` only looks at the resources from SlaveInfo while 
 `total_resources` reads Master::Slave::totalResources.
 
 
 Thanks,
 
 Jiang Yan Xu
 




Re: Review Request 35239: Update the JSON model for Resources to display their revocablility attribute.

2015-06-09 Thread Jiang Yan Xu


 On June 9, 2015, 11:36 a.m., Ben Mahler wrote:
  Any reason not to just add a 'revocable_resources' instead of 
  'total_resources'? Looking to avoid the magic REV string proliferating, 
  when we're not yet printing role here either.
  
  Ideally, when we add 'total_resources', we can do it in a way that captures 
  everything we want (role, disk info, revocable info, etc) in a parseable 
  way. Otherwise, might become difficult to make further changes without 
  breaking people. For example, if we add 'total_resources' as done here, but 
  then we want to show the role, how do we do that without breaking people's 
  code that exactly matches cpus ?

It would be easy to do so if this were for the 
`total_resources/revocable_resources/resources` alone but the fact is that all 
Resources models are affected by this.

Additionally the following metrics also contain recovable resources and are 
affected one way or another.

- Slave: used_resources, offered_resources
- Task: resources
- Framework: offered_resources

Since revocable resources and un-revocable resources are not addable, they will 
be shown either as
```
  used_resources: {
cpus: 24,
cpus{REV}: 1,
disk: 454767,
mem: 71322,
mem{REV}: 512,
ports: [31000-32000]
  },
```
Or as the following if we don't add the {REV} attribute,

```
  used_resources: {
cpus: 24,
cpus: 1,
disk: 454767,
mem: 71322,
mem: 512,
ports: [31000-32000]
  },
```
, which is more confusing.

To make sure existing metrics stay unchanged we would need to filter out 
revocable resources from them explicitly.

```
object.values[offered_resources] = model(slave.offeredResources - 
slave.offeredResources.revocable());
```

And then add a revocable version for each of them. I don't think that's what we 
want here?


- Jiang Yan


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35239/#review87253
---


On June 8, 2015, 5:38 p.m., Jiang Yan Xu wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/35239/
 ---
 
 (Updated June 8, 2015, 5:38 p.m.)
 
 
 Review request for mesos and Vinod Kone.
 
 
 Bugs: MESOS-2776
 https://issues.apache.org/jira/browse/MESOS-2776
 
 
 Repository: mesos
 
 
 Description
 ---
 
 See summary.
 
 
 Diffs
 -
 
   src/common/http.cpp 2ac7fba7a3aac913540f1b09768777393b79284a 
   src/master/http.cpp f8ac30934352db859e73819e0656a70047bb0dc5 
   src/tests/common/http_tests.cpp f087b2313a13c3199b70b3d7feb728e1449a52e7 
 
 Diff: https://reviews.apache.org/r/35239/diff/
 
 
 Testing
 ---
 
 Added a test.
 
 Also tested with a master/slave pair.
 
 e.g., The following state.json output shows a slave using a fixed estimator 
 with `cpus:1;mem:512` revocable resources.
 ```json
   slaves: [
 {
 ...
   resources: {
 cpus: 24,
 disk: 454767,
 mem: 71322,
 ports: [31000-32000]
   },
   total_resources: {
 cpus: 24,
 cpus{REV}: 1,
 disk: 454767,
 mem: 71322,
 mem{REV}: 512,
 ports: [31000-32000]
   },
   used_resources: {
 cpus: 0,
 disk: 0,
 mem: 0
   }
 }
   ],
 ```
 
 Note that `resources` only looks at the resources from SlaveInfo while 
 `total_resources` reads Master::Slave::totalResources.
 
 
 Thanks,
 
 Jiang Yan Xu
 




Re: Review Request 35239: Update the JSON model for Resources to display their revocablility attribute.

2015-06-09 Thread Jiang Yan Xu


 On June 9, 2015, 11:36 a.m., Ben Mahler wrote:
  Any reason not to just add a 'revocable_resources' instead of 
  'total_resources'? Looking to avoid the magic REV string proliferating, 
  when we're not yet printing role here either.
  
  Ideally, when we add 'total_resources', we can do it in a way that captures 
  everything we want (role, disk info, revocable info, etc) in a parseable 
  way. Otherwise, might become difficult to make further changes without 
  breaking people. For example, if we add 'total_resources' as done here, but 
  then we want to show the role, how do we do that without breaking people's 
  code that exactly matches cpus ?
 
 Jiang Yan Xu wrote:
 It would be easy to do so if this were for the 
 `total_resources/revocable_resources/resources` alone but the fact is that 
 all Resources models are affected by this.
 
 Additionally the following metrics also contain recovable resources and 
 are affected one way or another.
 
 - Slave: used_resources, offered_resources
 - Task: resources
 - Framework: offered_resources
 
 Since revocable resources and un-revocable resources are not addable, 
 they will be shown either as
 ```
   used_resources: {
 cpus: 24,
 cpus{REV}: 1,
 disk: 454767,
 mem: 71322,
 mem{REV}: 512,
 ports: [31000-32000]
   },
 ```
 Or as the following if we don't add the {REV} attribute,
 
 ```
   used_resources: {
 cpus: 24,
 cpus: 1,
 disk: 454767,
 mem: 71322,
 mem: 512,
 ports: [31000-32000]
   },
 ```
 , which is more confusing.
 
 To make sure existing metrics stay unchanged we would need to filter out 
 revocable resources from them explicitly.
 
 ```
 object.values[offered_resources] = model(slave.offeredResources - 
 slave.offeredResources.revocable());
 ```
 
 And then add a revocable version for each of them. I don't think that's 
 what we want here?

Another thing is that existing readings of `cpus`, `mem` and `disk` actually 
stay unchagned. So I think it's relatively safe. It only affects people who do 
`len(used_resources) == 3` which is unlikely. (Of course it's always a good 
idea to announce this explicitly).

It'll be involve a deprecation cycle to add the `role` attribute so I didn't 
add it here. However I agree that we should think about the path forward for 
modeling more extended resources attributes.


- Jiang Yan


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35239/#review87253
---


On June 8, 2015, 5:38 p.m., Jiang Yan Xu wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/35239/
 ---
 
 (Updated June 8, 2015, 5:38 p.m.)
 
 
 Review request for mesos and Vinod Kone.
 
 
 Bugs: MESOS-2776
 https://issues.apache.org/jira/browse/MESOS-2776
 
 
 Repository: mesos
 
 
 Description
 ---
 
 See summary.
 
 
 Diffs
 -
 
   src/common/http.cpp 2ac7fba7a3aac913540f1b09768777393b79284a 
   src/master/http.cpp f8ac30934352db859e73819e0656a70047bb0dc5 
   src/tests/common/http_tests.cpp f087b2313a13c3199b70b3d7feb728e1449a52e7 
 
 Diff: https://reviews.apache.org/r/35239/diff/
 
 
 Testing
 ---
 
 Added a test.
 
 Also tested with a master/slave pair.
 
 e.g., The following state.json output shows a slave using a fixed estimator 
 with `cpus:1;mem:512` revocable resources.
 ```json
   slaves: [
 {
 ...
   resources: {
 cpus: 24,
 disk: 454767,
 mem: 71322,
 ports: [31000-32000]
   },
   total_resources: {
 cpus: 24,
 cpus{REV}: 1,
 disk: 454767,
 mem: 71322,
 mem{REV}: 512,
 ports: [31000-32000]
   },
   used_resources: {
 cpus: 0,
 disk: 0,
 mem: 0
   }
 }
   ],
 ```
 
 Note that `resources` only looks at the resources from SlaveInfo while 
 `total_resources` reads Master::Slave::totalResources.
 
 
 Thanks,
 
 Jiang Yan Xu
 




Re: Review Request 35239: Update the JSON model for Resources to display their revocablility attribute.

2015-06-08 Thread Mesos ReviewBot

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35239/#review87121
---


Patch looks great!

Reviews applied: [35239]

All tests passed.

- Mesos ReviewBot


On June 9, 2015, 12:38 a.m., Jiang Yan Xu wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/35239/
 ---
 
 (Updated June 9, 2015, 12:38 a.m.)
 
 
 Review request for mesos and Vinod Kone.
 
 
 Bugs: MESOS-2776
 https://issues.apache.org/jira/browse/MESOS-2776
 
 
 Repository: mesos
 
 
 Description
 ---
 
 See summary.
 
 
 Diffs
 -
 
   src/common/http.cpp 2ac7fba7a3aac913540f1b09768777393b79284a 
   src/master/http.cpp f8ac30934352db859e73819e0656a70047bb0dc5 
   src/tests/common/http_tests.cpp f087b2313a13c3199b70b3d7feb728e1449a52e7 
 
 Diff: https://reviews.apache.org/r/35239/diff/
 
 
 Testing
 ---
 
 Added a test.
 
 Also tested with a master/slave pair.
 
 e.g., The following state.json output shows a slave using a fixed estimator 
 with `cpus:1;mem:512` revocable resources.
 ```json
   slaves: [
 {
 ...
   resources: {
 cpus: 24,
 disk: 454767,
 mem: 71322,
 ports: [31000-32000]
   },
   total_resources: {
 cpus: 24,
 cpus{REV}: 1,
 disk: 454767,
 mem: 71322,
 mem{REV}: 512,
 ports: [31000-32000]
   },
   used_resources: {
 cpus: 0,
 disk: 0,
 mem: 0
   }
 }
   ],
 ```
 
 Note that `resources` only looks at the resources from SlaveInfo while 
 `total_resources` reads Master::Slave::totalResources.
 
 
 Thanks,
 
 Jiang Yan Xu
 




Review Request 35239: Update the JSON model for Resources to display their revocablility attribute.

2015-06-08 Thread Jiang Yan Xu

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35239/
---

Review request for mesos and Vinod Kone.


Bugs: MESOS-2776
https://issues.apache.org/jira/browse/MESOS-2776


Repository: mesos


Description
---

See summary.


Diffs
-

  src/common/http.cpp 2ac7fba7a3aac913540f1b09768777393b79284a 
  src/master/http.cpp f8ac30934352db859e73819e0656a70047bb0dc5 
  src/tests/common/http_tests.cpp f087b2313a13c3199b70b3d7feb728e1449a52e7 

Diff: https://reviews.apache.org/r/35239/diff/


Testing
---

Added a test.

Also tested with a master/slave pair.

e.g., The following state.json output shows a slave using a fixed estimator 
with `cpus:1;mem:512` revocable resources.
```json
  slaves: [
{
...
  resources: {
cpus: 24,
disk: 454767,
mem: 71322,
ports: [31000-32000]
  },
  total_resources: {
cpus: 24,
cpus{REV}: 1,
disk: 454767,
mem: 71322,
mem{REV}: 512,
ports: [31000-32000]
  },
  used_resources: {
cpus: 0,
disk: 0,
mem: 0
  }
}
  ],
```

Note that `resources` only looks at the resources from SlaveInfo while 
`total_resources` reads Master::Slave::totalResources.


Thanks,

Jiang Yan Xu