You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@mesos.apache.org by Adam B <ad...@mesosphere.io> on 2016/02/09 08:07:10 UTC
Re: Review Request 41681: Introduce HTTP endpoint /weights for
updating weight.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/41681/#review118362
-----------------------------------------------------------
I like the reworking of the recover logic, but I'm still unclear about why you have to tell the allocator to update some weights to 1.0.
src/master/master.hpp (line 1560)
<https://reviews.apache.org/r/41681/#comment179590>
Nit: Could you swap the order here, so that it matches the check above in `if (weight->info().role() != weightInfo.role()) {`? I think it'll read a bit cleaner, and even align with the line following: `weight->mutable_info()->CopyFrom(weightInfo);`
src/master/master.cpp (line 1548)
<https://reviews.apache.org/r/41681/#comment179591>
s/alloctor/allocator/
src/master/master.cpp (lines 1548 - 1549)
<https://reviews.apache.org/r/41681/#comment179593>
Can you explain more clearly why this needs to be done? Is it because we already initialized the allocator with the weights from --weights?
- Adam B
On Jan. 25, 2016, 7:36 a.m., Yongqiao Wang wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/41681/
> -----------------------------------------------------------
>
> (Updated Jan. 25, 2016, 7:36 a.m.)
>
>
> Review request for mesos, Adam B, Neil Conway, and Qian Zhang.
>
>
> Bugs: MESOS-4214
> https://issues.apache.org/jira/browse/MESOS-4214
>
>
> Repository: mesos
>
>
> Description
> -------
>
> Introduce HTTP endpoint /weights for updating weight.
>
>
> Diffs
> -----
>
> include/mesos/authorizer/authorizer.hpp 5ee3c7afadd131802c93febbb6b4dbad069c2d81
> include/mesos/authorizer/authorizer.proto 226441f8cbd6d0828bf1636cc08c21ffcc75e6a7
> src/CMakeLists.txt 47d0a7c0fe73b9297cd7dde6086b5e6e9e1f9e4e
> src/Makefile.am 8657a869f931aa7482fbb09f2c6df95b6a8c50c6
> src/authorizer/local/authorizer.hpp c7321c276d566eca6a91f45c546468bea1b0da15
> src/authorizer/local/authorizer.cpp 9557bbdf68ff182c4538bbf70cee576d717abc05
> src/master/http.cpp 12c1fe5a514903f657911302e8770e9b245fdbb7
> src/master/master.hpp 3a7e18232323a1c051bcc97915484b1195fffe58
> src/master/master.cpp 9ee56277c8a472be9e683d5db505becfb5f7c422
> src/master/registry.proto 9958f9c2bdb785390fca2f292b65d5a9310434d5
> src/master/weights_handler.cpp PRE-CREATION
> src/tests/mesos.hpp 5a737a6490060b0194db097990b327c9921221f4
> src/tests/mesos.cpp 18d0d8f8037ebc27c87bcb0f1ce9f143e7505ec8
>
> Diff: https://reviews.apache.org/r/41681/diff/
>
>
> Testing
> -------
>
> Make & Make check successfully!
>
> $ (./mesos-master.sh --ip=127.0.0.1 --work_dir=/tmp/mesos-master --weights="role1=4.2,role2=3.1" --authenticate_http --credentials=/opt/credentials.json >> /tmp/mesos-master.log 2>&1 &)
> $ curl http://localhost:5050/roles | python -mjson.tool
> {
> "roles": [
> {
> "frameworks": [ ],
> "name": "*",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 1
> },
> {
> "frameworks": [ ],
> "name": "role1",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 4.2
> },
> {
> "frameworks": [ ],
> "name": "role2",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 3.1
> }
> ]
> }
>
> Test update:
> $ curl --user framework1:secret_string1 --data "[{\"weight\":1.8,\"role\":\"role1\"},{\"weight\":1.0,\"role\":\"role2\"},{\"weight\":3.4,\"role\":\"role3\"}]" -X PUT http://127.0.0.1:5050/weights
> $ curl http://localhost:5050/roles | python -mjson.tool
> {
> "roles": [
> {
> "frameworks": [],
> "name": "*",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 1.0
> },
> {
> "frameworks": [],
> "name": "role1",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 1.8
> },
> {
> "frameworks": [],
> "name": "role2",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 1.0
> },
> {
> "frameworks": [],
> "name": "role3",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 3.4
> }
> ]
> }
>
> Test recovuery:
> $ ps -ef | grep mesos-master
> 501 56292 1 0 6:18PM ttys001 0:00.31 /Users/yqwyq/Desktop/mesos/build/src/.libs/mesos-master --ip=127.0.0.1 --work_dir=/tmp/mesos-master --weights=role1=4.2,role2=3.1 --authenticate_http --credentials=/opt/credentials.json
> $ kill -9 56292
>
> $ (./mesos-master.sh --ip=127.0.0.1 --work_dir=/tmp/mesos-master --weights="role1=4.2,role2=3.1,role6=9.0" --authenticate_http --credentials=/opt/credentials.json >> /tmp/mesos-master.log 2>&1 &)
> $ curl http://localhost:5050/roles | python -mjson.tool
> {
> "roles": [
> {
> "frameworks": [],
> "name": "*",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 1.0
> },
> {
> "frameworks": [],
> "name": "role1",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 1.8
> },
> {
> "frameworks": [],
> "name": "role2",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 1.0
> },
> {
> "frameworks": [],
> "name": "role3",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 3.4
> }
> ]
> }
>
>
> Thanks,
>
> Yongqiao Wang
>
>
Re: Review Request 41681: Introduce HTTP endpoint /weights for
updating weight.
Posted by Yongqiao Wang <yq...@cn.ibm.com>.
> On Feb. 9, 2016, 7:07 a.m., Adam B wrote:
> > src/master/master.cpp, lines 1560-1561
> > <https://reviews.apache.org/r/41681/diff/29-31/?file=1203160#file1203160line1560>
> >
> > Can you explain more clearly why this needs to be done? Is it because we already initialized the allocator with the weights from --weights?
Yes, when master recovered the weight infos from registry, allocator has been initialized with the weights specified by --weights flag, so we need to do this update.
- Yongqiao
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/41681/#review118362
-----------------------------------------------------------
On Jan. 25, 2016, 3:36 p.m., Yongqiao Wang wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/41681/
> -----------------------------------------------------------
>
> (Updated Jan. 25, 2016, 3:36 p.m.)
>
>
> Review request for mesos, Adam B, Neil Conway, and Qian Zhang.
>
>
> Bugs: MESOS-4214
> https://issues.apache.org/jira/browse/MESOS-4214
>
>
> Repository: mesos
>
>
> Description
> -------
>
> Introduce HTTP endpoint /weights for updating weight.
>
>
> Diffs
> -----
>
> include/mesos/authorizer/authorizer.hpp 5ee3c7afadd131802c93febbb6b4dbad069c2d81
> include/mesos/authorizer/authorizer.proto 226441f8cbd6d0828bf1636cc08c21ffcc75e6a7
> src/CMakeLists.txt 47d0a7c0fe73b9297cd7dde6086b5e6e9e1f9e4e
> src/Makefile.am 8657a869f931aa7482fbb09f2c6df95b6a8c50c6
> src/authorizer/local/authorizer.hpp c7321c276d566eca6a91f45c546468bea1b0da15
> src/authorizer/local/authorizer.cpp 9557bbdf68ff182c4538bbf70cee576d717abc05
> src/master/http.cpp 12c1fe5a514903f657911302e8770e9b245fdbb7
> src/master/master.hpp 3a7e18232323a1c051bcc97915484b1195fffe58
> src/master/master.cpp 9ee56277c8a472be9e683d5db505becfb5f7c422
> src/master/registry.proto 9958f9c2bdb785390fca2f292b65d5a9310434d5
> src/master/weights_handler.cpp PRE-CREATION
> src/tests/mesos.hpp 5a737a6490060b0194db097990b327c9921221f4
> src/tests/mesos.cpp 18d0d8f8037ebc27c87bcb0f1ce9f143e7505ec8
>
> Diff: https://reviews.apache.org/r/41681/diff/
>
>
> Testing
> -------
>
> Make & Make check successfully!
>
> $ (./mesos-master.sh --ip=127.0.0.1 --work_dir=/tmp/mesos-master --weights="role1=4.2,role2=3.1" --authenticate_http --credentials=/opt/credentials.json >> /tmp/mesos-master.log 2>&1 &)
> $ curl http://localhost:5050/roles | python -mjson.tool
> {
> "roles": [
> {
> "frameworks": [ ],
> "name": "*",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 1
> },
> {
> "frameworks": [ ],
> "name": "role1",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 4.2
> },
> {
> "frameworks": [ ],
> "name": "role2",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 3.1
> }
> ]
> }
>
> Test update:
> $ curl --user framework1:secret_string1 --data "[{\"weight\":1.8,\"role\":\"role1\"},{\"weight\":1.0,\"role\":\"role2\"},{\"weight\":3.4,\"role\":\"role3\"}]" -X PUT http://127.0.0.1:5050/weights
> $ curl http://localhost:5050/roles | python -mjson.tool
> {
> "roles": [
> {
> "frameworks": [],
> "name": "*",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 1.0
> },
> {
> "frameworks": [],
> "name": "role1",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 1.8
> },
> {
> "frameworks": [],
> "name": "role2",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 1.0
> },
> {
> "frameworks": [],
> "name": "role3",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 3.4
> }
> ]
> }
>
> Test recovuery:
> $ ps -ef | grep mesos-master
> 501 56292 1 0 6:18PM ttys001 0:00.31 /Users/yqwyq/Desktop/mesos/build/src/.libs/mesos-master --ip=127.0.0.1 --work_dir=/tmp/mesos-master --weights=role1=4.2,role2=3.1 --authenticate_http --credentials=/opt/credentials.json
> $ kill -9 56292
>
> $ (./mesos-master.sh --ip=127.0.0.1 --work_dir=/tmp/mesos-master --weights="role1=4.2,role2=3.1,role6=9.0" --authenticate_http --credentials=/opt/credentials.json >> /tmp/mesos-master.log 2>&1 &)
> $ curl http://localhost:5050/roles | python -mjson.tool
> {
> "roles": [
> {
> "frameworks": [],
> "name": "*",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 1.0
> },
> {
> "frameworks": [],
> "name": "role1",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 1.8
> },
> {
> "frameworks": [],
> "name": "role2",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 1.0
> },
> {
> "frameworks": [],
> "name": "role3",
> "resources": {
> "cpus": 0,
> "disk": 0,
> "mem": 0
> },
> "weight": 3.4
> }
> ]
> }
>
>
> Thanks,
>
> Yongqiao Wang
>
>