-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57254/
-----------------------------------------------------------
(Updated March 7, 2017, 3:26 p.m.)
Review request for mesos, Benjamin Bannier, Benjamin Mahler, and Michael Park.
Changes
-------
Rebase.
Repository: mesos
Description
-------
This commit replaces the sorter's flat list of clients with a tree of
client names; this tree represents the hierarchical relationship between
sorter clients. Each node in the tree contains an (ordered) list of
pointers to child nodes. The tree might contain nodes that do not
correspond directly to sorter clients. For example, adding clients "a/b"
and "c/d" results in the following tree:
root
-> a
-> b
-> c
-> d
The `sort` member function still only returns one result for each
(active) client in the sorter. This is implemented by ensuring that each
sorter client is associated with a leaf node in the tree. Note that it
is possible for a leaf node to be transformed into an internal node by a
subsequent insertion; to handle this case, we "implicitly" create an
extra child node, which maintains the invariant that each client has a
leaf node. For example, if the client "a/b/x" is added to the tree
above, the result is:
root
-> a
-> b
-> .
-> x
-> c
-> d
The "." leaf node holds the allocation that has been made to the "a/b"
client itself; the "a/b" node holds the sum of all the allocations that
have been made to the subtree rooted at "a/b", which also includes
"a/b/x".
Diffs (updated)
-----
src/master/allocator/mesos/hierarchical.hpp
646f66e67d9c6b8c61fc6e6558a1db976a44c126
src/master/allocator/mesos/hierarchical.cpp
0059ccead90f32491591990c791e7fa905a864b7
src/master/allocator/sorter/drf/metrics.hpp
61568cb520826ab59d675824b212e0d3deb63764
src/master/allocator/sorter/drf/metrics.cpp
15aab32db5ca1a7a14080e9bbb7c65283be3ec20
src/master/allocator/sorter/drf/sorter.hpp
76329220e1115c1de7810fb69b943c78c078be59
src/master/allocator/sorter/drf/sorter.cpp
ed54680cecb637931fc344fbcf8fd3b14cc24295
src/master/allocator/sorter/sorter.hpp
b3029fcf7342406955760da53f1ae736769f308c
src/tests/hierarchical_allocator_tests.cpp
cdf1f15b7802439b28405ca8f6634ce83e886630
src/tests/master_allocator_tests.cpp 7b0b786f1c6c53616fd7ae1f7f765752d94a4f83
src/tests/sorter_tests.cpp c93d236b13256f4022a811d019990ef81521aa77
Diff: https://reviews.apache.org/r/57254/diff/2/
Changes: https://reviews.apache.org/r/57254/diff/1-2/
Testing
-------
Thanks,
Neil Conway