----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/64028/ -----------------------------------------------------------
(Updated Nov. 28, 2017, 5:41 p.m.) Review request for mesos, Benjamin Mahler and Michael Park. Changes ------- Rebased. Added comments to code. Added benchmark results. Repository: mesos Description (updated) ------- `RepeatedPtrField<Resource>` can be implicitly converted to `Resources`, leading to hidden multiple resources conversions on performance-critical paths in master. For example, `operator +=` relies on implicit conversion, when invoked with `RepeatedPtrField<Resource>` argument. Using protobuf also implies data validation and sanitization, e.g. when converting to `Resources`, as protobuf generally comes from untrusted sources. By doing conversion only once, and then reusing the result, we save on these checks as well, as operations on `Resources` are generally faster as they can trust data in `Resources`. Diffs (updated) ----- src/master/master.hpp 2a2e830354db4a2191fb8321beb8174b80f7ba7d src/master/master.cpp 53263e499d88b906b6406c24c0dfb737e589e813 Diff: https://reviews.apache.org/r/64028/diff/2/ Changes: https://reviews.apache.org/r/64028/diff/1-2/ Testing (updated) ------- make check ./mesos-tests.sh --benchmark --gtest_filter=AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test.* Before changes: [==========] Running 3 tests from 1 test case. [----------] Global test environment set-up. [----------] 3 tests from AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test [ RUN ] AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test.AgentReregistrationDelay/0 Starting reregistration for all agents Reregistered 2000 agents with a total of 100000 running tasks and 100000 completed tasks in 13.267079264secs [ OK ] AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test.AgentReregistrationDelay/0 (25274 ms) [ RUN ] AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test.AgentReregistrationDelay/1 Starting reregistration for all agents Reregistered 2000 agents with a total of 200000 running tasks and 0 completed tasks in 26.212404584secs [ OK ] AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test.AgentReregistrationDelay/1 (52153 ms) [ RUN ] AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test.AgentReregistrationDelay/2 Starting reregistration for all agents Reregistered 20000 agents with a total of 100000 running tasks and 0 completed tasks in 20.269919213secs [ OK ] AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test.AgentReregistrationDelay/2 (34072 ms) [----------] 3 tests from AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test (111499 ms total) [----------] Global test environment tear-down [==========] 3 tests from 1 test case ran. (111515 ms total) [ PASSED ] 3 tests. After cahnges: [==========] Running 3 tests from 1 test case. [----------] Global test environment set-up. [----------] 3 tests from AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test [ RUN ] AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test.AgentReregistrationDelay/0 Starting reregistration for all agents Reregistered 2000 agents with a total of 100000 running tasks and 100000 completed tasks in 12.550849382secs [ OK ] AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test.AgentReregistrationDelay/0 (24289 ms) [ RUN ] AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test.AgentReregistrationDelay/1 Starting reregistration for all agents Reregistered 2000 agents with a total of 200000 running tasks and 0 completed tasks in 24.63363665secs [ OK ] AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test.AgentReregistrationDelay/1 (44266 ms) [ RUN ] AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test.AgentReregistrationDelay/2 Starting reregistration for all agents Reregistered 20000 agents with a total of 100000 running tasks and 0 completed tasks in 18.150451886secs [ OK ] AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test.AgentReregistrationDelay/2 (32117 ms) [----------] 3 tests from AgentFrameworkTaskCount/MasterFailover_BENCHMARK_Test (100672 ms total) [----------] Global test environment tear-down [==========] 3 tests from 1 test case ran. (100688 ms total) [ PASSED ] 3 tests. Thanks, Dmitry Zhuk
