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,

Reply via email to