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

Use protobuf arenas for v1 API responses.



    • Type: Improvement
    • Status: Accepted
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: agent, master
    • Labels:
    • Target Version/s:


      The v1 API response construction is currently slower than the v0 API response construction. A primary reason for this is that the v1 API constructs intermediate C++ protobuf response objects, which are very expensive in terms of memory allocation/deallocation cost. Also involved is the use of evolve() which evolves messages from unversioned protobuf into v1 protobuf. This also has very high memory allocation / deallocation cost.

      Using arenas for all v1 API response construction will provide a significant improvement.

      This ticket currently captures all the aspects of this:

      • Updating evolve() to use arenas across all v1 API responses.
      • Updating all response construction functions (e.g. getState())) to use arenas.
      • Making this change for both the master and agent.

      This is blocked by MESOS-9755 since we need to upgrade our bundled protobuf to have string fields allocated in the arenas.

      We may split out tickets for CHANGELOG purposes if only a portion of this lands in 1.9.0.


          Issue Links



              • Assignee:
                Will Mahler William Mahler
                bmahler Benjamin Mahler
              • Votes:
                0 Vote for this issue
                2 Start watching this issue


                • Created: