> On March 6, 2015, 9:42 p.m., Alexander Rukletsov wrote: > > Sorry for commenting after giving a "Ship It". I was checking `r/31665` and > > realised that we do an extra copy while calculating the aggregate of > > resources: `std::list<Resources>` out of `hashmap<SlaveID, Resources>`. > > Does it make sense to avoid it?
I think it makes to have this operation which takes `hashmap<Key, Resources>` and collapses it to `Resources` merely to facilitate preserving existing functionalities (e.g. HTTP endpoints, `calculateShare` in `DRFSorter`). I've made `sum` function take a `hashmap<Key, Resources>` instead, since we want to use this for `hashmap<FrameworkID, Resources>` as well. - Michael ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/31183/#review75550 ----------------------------------------------------------- On March 7, 2015, 10:08 a.m., Michael Park wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/31183/ > ----------------------------------------------------------- > > (Updated March 7, 2015, 10:08 a.m.) > > > Review request for mesos, Alexander Rukletsov, Benjamin Hindman, Ben Mahler, > and Jie Yu. > > > Bugs: MESOS-2373 > https://issues.apache.org/jira/browse/MESOS-2373 > > > Repository: mesos > > > Description > ------- > > This is the start of a patch chain for converting `Resources` to > `hashmap<SlaveID, Resources>` in places where we have an aggregate of > resources across multiple slaves. In short, scalar resources aggregate > correctly across multiple slaves, but non-scalar resources (e.g. ports) do > not aggregate correctly. Please refer to the JIRA ticket for further details. > > The function `sum` is factored out to facilitate small patches. The following > is the strategy and why this function will be useful: > > (1) Update a variable `resources` in a component (e.g. master) from > `Resources` to `hashmap<SlaveID, Resources>`. > (2) For callsites where we pass `resources` to another component (e.g. > allocator), we'll pass `sum(resources)` instead to preserve the existing > behavior in the other component. > > > Diffs > ----- > > include/mesos/resources.hpp da6d48871a0061d8bbf5e681dd6e7edac659d812 > src/master/allocator/mesos/hierarchical.hpp > c0b1da75565d9dc7728c5566f01815234163fc47 > src/tests/hierarchical_allocator_tests.cpp > 93753d1c04159a04a733927a487eb69505438e32 > > Diff: https://reviews.apache.org/r/31183/diff/ > > > Testing > ------- > > make check > > > Thanks, > > Michael Park > >