Repository: mesos Updated Branches: refs/heads/master a4e9695fe -> 9affb606d
Avoid a copy of the status update acknowledgements in the master. This updates the handler to take an rvalue reference and move the data into the `scheduler::Call::Acknowledge` message. Review: https://reviews.apache.org/r/65969 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/3515ba99 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/3515ba99 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/3515ba99 Branch: refs/heads/master Commit: 3515ba991315dd3c56f6c43a3751dc43b4b3c79e Parents: 9b27126 Author: Benjamin Mahler <[email protected]> Authored: Wed Mar 7 19:59:10 2018 -0800 Committer: Benjamin Mahler <[email protected]> Committed: Fri Mar 9 12:36:13 2018 -0800 ---------------------------------------------------------------------- src/master/master.cpp | 30 ++++++++++++++++++------------ src/master/master.hpp | 5 +---- 2 files changed, 19 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/3515ba99/src/master/master.cpp ---------------------------------------------------------------------- diff --git a/src/master/master.cpp b/src/master/master.cpp index 644466e..79d7f88 100644 --- a/src/master/master.cpp +++ b/src/master/master.cpp @@ -831,11 +831,7 @@ void Master::initialize() &KillTaskMessage::task_id); install<StatusUpdateAcknowledgementMessage>( - &Master::statusUpdateAcknowledgement, - &StatusUpdateAcknowledgementMessage::slave_id, - &StatusUpdateAcknowledgementMessage::framework_id, - &StatusUpdateAcknowledgementMessage::task_id, - &StatusUpdateAcknowledgementMessage::uuid); + &Master::statusUpdateAcknowledgement); install<FrameworkToExecutorMessage>( &Master::schedulerMessage, @@ -5722,11 +5718,17 @@ void Master::kill(Framework* framework, const scheduler::Call::Kill& kill) void Master::statusUpdateAcknowledgement( const UPID& from, - const SlaveID& slaveId, - const FrameworkID& frameworkId, - const TaskID& taskId, - const string& uuid) + StatusUpdateAcknowledgementMessage&& statusUpdateAcknowledgementMessage) { + const SlaveID& slaveId = + statusUpdateAcknowledgementMessage.slave_id(); + const FrameworkID& frameworkId = + statusUpdateAcknowledgementMessage.framework_id(); + const TaskID& taskId = + statusUpdateAcknowledgementMessage.task_id(); + const string& uuid = + statusUpdateAcknowledgementMessage.uuid(); + // TODO(bmahler): Consider adding a message validator abstraction // for the master that takes care of all this boilerplate. Ideally // by the time we process messages in the critical master code, we @@ -5767,9 +5769,13 @@ void Master::statusUpdateAcknowledgement( } scheduler::Call::Acknowledge message; - message.mutable_slave_id()->CopyFrom(slaveId); - message.mutable_task_id()->CopyFrom(taskId); - message.set_uuid(uuid); + + *message.mutable_slave_id() = + std::move(*statusUpdateAcknowledgementMessage.mutable_slave_id()); + *message.mutable_task_id() = + std::move(*statusUpdateAcknowledgementMessage.mutable_task_id()); + *message.mutable_uuid() = + std::move(*statusUpdateAcknowledgementMessage.mutable_uuid()); acknowledge(framework, message); } http://git-wip-us.apache.org/repos/asf/mesos/blob/3515ba99/src/master/master.hpp ---------------------------------------------------------------------- diff --git a/src/master/master.hpp b/src/master/master.hpp index 115a3b4..c2305a1 100644 --- a/src/master/master.hpp +++ b/src/master/master.hpp @@ -447,10 +447,7 @@ public: void statusUpdateAcknowledgement( const process::UPID& from, - const SlaveID& slaveId, - const FrameworkID& frameworkId, - const TaskID& taskId, - const std::string& uuid); + StatusUpdateAcknowledgementMessage&& statusUpdateAcknowledgementMessage); void schedulerMessage( const process::UPID& from,
