Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-7713

Optimize number of copies made in dispatch/defer mechanism

    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.2.0, 1.2.1, 1.3.0
    • 1.4.0
    • libprocess
    • None
    • Mesosphere Sprint 60, Mesosphere Sprint 61
    • 3

    Description

      Profiling agents reregistration for a large cluster shows, that many CPU cycles are spent on copying protobuf objects. This is partially due to copies made by a code like this:

      future.then(defer(self(), &Process::method, param);
      

      param could be copied 8-10 times before it reaches method. Specifically, reregisterSlave accepts vectors of rather complex objects, which are passed to defer.
      Currently there are some places in defer, dispatch and Future code, which could use std::move and std::forward to evade some of the copies.

      Attachments

        Issue Links

          Activity

            People

              dzhuk Dmitry Zhuk
              dzhuk Dmitry Zhuk
              Michael Park Michael Park
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: