You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2017/12/21 01:43:51 UTC
mesos git commit: Eliminated some unnecessary copying in the HTTP
operator API.
Repository: mesos
Updated Branches:
refs/heads/master 327726d3c -> 3035c8828
Eliminated some unnecessary copying in the HTTP operator API.
This is only a minor portion of the performance improvements
needed to bring the v1 operator API close to the v0 API
performance.
Review: https://reviews.apache.org/r/64741
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/3035c882
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/3035c882
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/3035c882
Branch: refs/heads/master
Commit: 3035c8828345e7b0f33a4755d50139c8b693d567
Parents: 327726d
Author: Benjamin Mahler <bm...@apache.org>
Authored: Tue Dec 19 17:43:14 2017 -0800
Committer: Benjamin Mahler <bm...@apache.org>
Committed: Wed Dec 20 17:34:18 2017 -0800
----------------------------------------------------------------------
src/master/http.cpp | 54 +++++++++++++++++++++++-------------------------
1 file changed, 26 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/3035c882/src/master/http.cpp
----------------------------------------------------------------------
diff --git a/src/master/http.cpp b/src/master/http.cpp
index ec170a2..5ef7d35 100644
--- a/src/master/http.cpp
+++ b/src/master/http.cpp
@@ -883,12 +883,12 @@ Future<Response> Master::Http::subscribe(
mesos::master::Event event;
event.set_type(mesos::master::Event::SUBSCRIBED);
- event.mutable_subscribed()->mutable_get_state()->CopyFrom(
+ *event.mutable_subscribed()->mutable_get_state() =
_getState(
frameworksApprover,
tasksApprover,
executorsApprover,
- rolesAcceptor));
+ rolesAcceptor);
event.mutable_subscribed()->set_heartbeat_interval_seconds(
DEFAULT_HEARTBEAT_INTERVAL.secs());
@@ -1745,8 +1745,7 @@ Future<Response> Master::Http::getFrameworks(
-> Future<Response> {
mesos::master::Response response;
response.set_type(mesos::master::Response::GET_FRAMEWORKS);
- response.mutable_get_frameworks()->CopyFrom(
- _getFrameworks(frameworksApprover));
+ *response.mutable_get_frameworks() = _getFrameworks(frameworksApprover);
return OK(serialize(contentType, evolve(response)),
stringify(contentType));
@@ -1765,7 +1764,7 @@ mesos::master::Response::GetFrameworks Master::Http::_getFrameworks(
continue;
}
- getFrameworks.add_frameworks()->CopyFrom(model(*framework));
+ *getFrameworks.add_frameworks() = model(*framework);
}
foreachvalue (const Owned<Framework>& framework,
@@ -1775,7 +1774,7 @@ mesos::master::Response::GetFrameworks Master::Http::_getFrameworks(
continue;
}
- getFrameworks.add_completed_frameworks()->CopyFrom(model(*framework));
+ *getFrameworks.add_completed_frameworks() = model(*framework);
}
return getFrameworks;
@@ -1818,8 +1817,8 @@ Future<Response> Master::Http::getExecutors(
mesos::master::Response response;
response.set_type(mesos::master::Response::GET_EXECUTORS);
- response.mutable_get_executors()->CopyFrom(
- _getExecutors(frameworksApprover, executorsApprover));
+ *response.mutable_get_executors() =
+ _getExecutors(frameworksApprover, executorsApprover);
return OK(serialize(contentType, evolve(response)),
stringify(contentType));
@@ -1933,12 +1932,13 @@ Future<Response> Master::Http::getState(
mesos::master::Response response;
response.set_type(mesos::master::Response::GET_STATE);
- response.mutable_get_state()->CopyFrom(
+
+ *response.mutable_get_state() =
_getState(
frameworksApprover,
tasksApprover,
executorsApprover,
- rolesAcceptor));
+ rolesAcceptor);
return OK(
serialize(contentType, evolve(response)), stringify(contentType));
@@ -1959,16 +1959,17 @@ mesos::master::Response::GetState Master::Http::_getState(
mesos::master::Response::GetState getState;
- getState.mutable_get_tasks()->CopyFrom(
- _getTasks(frameworksApprover, tasksApprover));
+ *getState.mutable_get_tasks() =
+ _getTasks(frameworksApprover, tasksApprover);
- getState.mutable_get_executors()->CopyFrom(
- _getExecutors(frameworksApprover, executorsApprover));
+ *getState.mutable_get_executors() =
+ _getExecutors(frameworksApprover, executorsApprover);
- getState.mutable_get_frameworks()->CopyFrom(
- _getFrameworks(frameworksApprover));
+ *getState.mutable_get_frameworks() =
+ _getFrameworks(frameworksApprover);
- getState.mutable_get_agents()->CopyFrom(_getAgents(rolesAcceptor));
+ *getState.mutable_get_agents() =
+ _getAgents(rolesAcceptor);
return getState;
}
@@ -2592,7 +2593,7 @@ Future<process::http::Response> Master::Http::getAgents(
-> Future<process::http::Response> {
mesos::master::Response response;
response.set_type(mesos::master::Response::GET_AGENTS);
- response.mutable_get_agents()->CopyFrom(_getAgents(rolesAcceptor));
+ *response.mutable_get_agents() = _getAgents(rolesAcceptor);
return OK(serialize(contentType, evolve(response)),
stringify(contentType));
@@ -2606,8 +2607,8 @@ mesos::master::Response::GetAgents Master::Http::_getAgents(
mesos::master::Response::GetAgents getAgents;
foreachvalue (const Slave* slave, master->slaves.registered) {
mesos::master::Response::GetAgents::Agent* agent = getAgents.add_agents();
- agent->CopyFrom(
- protobuf::master::event::createAgentResponse(*slave, rolesAcceptor));
+ *agent = protobuf::master::event::createAgentResponse(
+ *slave, rolesAcceptor);
foreachvalue (
const ResourceProviderInfo& resourceProviderInfo,
@@ -4183,9 +4184,8 @@ Future<Response> Master::Http::getTasks(
mesos::master::Response response;
response.set_type(mesos::master::Response::GET_TASKS);
- response.mutable_get_tasks()->CopyFrom(
- _getTasks(frameworksApprover,
- tasksApprover));
+ *response.mutable_get_tasks() =
+ _getTasks(frameworksApprover, tasksApprover);
return OK(serialize(contentType, evolve(response)),
stringify(contentType));
@@ -4229,10 +4229,8 @@ mesos::master::Response::GetTasks Master::Http::_getTasks(
continue;
}
- const Task& task =
+ *getTasks.add_pending_tasks() =
protobuf::createTask(taskInfo, TASK_STAGING, framework->id());
-
- getTasks.add_pending_tasks()->CopyFrom(task);
}
// Active tasks.
@@ -4568,8 +4566,8 @@ Future<Response> Master::Http::getMaintenanceSchedule(
response.set_type(mesos::master::Response::GET_MAINTENANCE_SCHEDULE);
- response.mutable_get_maintenance_schedule()->mutable_schedule()
- ->CopyFrom(_getMaintenanceSchedule(approver));
+ *response.mutable_get_maintenance_schedule()->mutable_schedule() =
+ _getMaintenanceSchedule(approver);
return OK(serialize(contentType, evolve(response)),
stringify(contentType));