> On May 18, 2017, 5:03 p.m., James Peach wrote: > > src/master/allocator/sorter/drf/sorter.cpp > > Lines 478 (patched) > > <https://reviews.apache.org/r/59355/diff/1/?file=1723478#file1723478line478> > > > > I'd prefer this: > > > > ``` > > if (child->active || !child->children.empty()) { > > ... > > } > > ```
Sure -- if we go ahead with this approach we'll probably want to refactor a bunch of things. Just posting to get perf feedback at the moment. - Neil ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/59355/#review175396 ----------------------------------------------------------- On May 18, 2017, 10:40 p.m., Neil Conway wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/59355/ > ----------------------------------------------------------- > > (Updated May 18, 2017, 10:40 p.m.) > > > Review request for mesos, Benjamin Mahler and Michael Park. > > > Bugs: MESOS-7521 > https://issues.apache.org/jira/browse/MESOS-7521 > > > Repository: mesos > > > Description > ------- > > Rearrange the `children` vector so that inactive leaves are always at > the end of the vector. This makes it easy to skip processing of inactive > leaves. > > > Diffs > ----- > > src/master/allocator/sorter/drf/sorter.hpp > fee58d6d1f08163e2a06a4a20c891fe535c3dcff > src/master/allocator/sorter/drf/sorter.cpp > 26b77f578f3235a8792c72d4575d607cdb2c7de7 > > > Diff: https://reviews.apache.org/r/59355/diff/2/ > > > Testing > ------- > > Initial perf testing: > > MESOS 1.2.0: > =================== > ``` > [ RUN ] > SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.SuppressOffers/15 > Using 5000 agents and 6000 frameworks > Added 6000 frameworks in 73.164389ms > Added 5000 agents in 39.148832702secs > allocate() took 31.824026984secs to make 5000 offers with 1200 out of 6000 > frameworks suppressing offers > allocate() took 23.467935579secs to make 5000 offers with 2400 out of 6000 > frameworks suppressing offers > allocate() took 15.528170646secs to make 5000 offers with 3600 out of 6000 > frameworks suppressing offers > allocate() took 7.746030551secs to make 5000 offers with 4800 out of 6000 > frameworks suppressing offers > allocate() took 25.867454ms to make 0 offers with 6000 out of 6000 frameworks > suppressing offers > [ OK ] > SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.SuppressOffers/15 > (121894 ms) > [----------] 1 test from > SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test (121894 ms total) > ``` > > MESOS in master branch: > =================== > ``` > [ RUN ] > SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.SuppressOffers/15 > Using 5000 agents and 6000 frameworks > Added 6000 frameworks in 282.858346ms > Added 5000 agents in 16.986189021secs > allocate() took 17.262100444secs to make 5000 offers with 1200 out of 6000 > frameworks suppressing offers > allocate() took 17.106477051secs to make 5000 offers with 2400 out of 6000 > frameworks suppressing offers > allocate() took 17.032456469secs to make 5000 offers with 3600 out of 6000 > frameworks suppressing offers > allocate() took 15.375699284secs to make 5000 offers with 4800 out of 6000 > frameworks suppressing offers > allocate() took 323.279937ms to make 0 offers with 6000 out of 6000 > frameworks suppressing offers > [ OK ] > SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.SuppressOffers/15 > (88780 ms) > [----------] 1 test from > SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test (88781 ms total) > ``` > > MESOS in master branch + this patch: > =================== > ``` > [ RUN ] > SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.SuppressOffers/15 > Using 5000 agents and 6000 frameworks > Added 6000 frameworks in 290.040808ms > Added 5000 agents in 17.406607193secs > allocate() took 14.893550012secs to make 5000 offers with 1200 out of 6000 > frameworks suppressing offers > allocate() took 12.148378927secs to make 5000 offers with 2400 out of 6000 > frameworks suppressing offers > allocate() took 10.28024964secs to make 5000 offers with 3600 out of 6000 > frameworks suppressing offers > allocate() took 8.455132769secs to make 5000 offers with 4800 out of 6000 > frameworks suppressing offers > allocate() took 298.49347ms to make 0 offers with 6000 out of 6000 frameworks > suppressing offers > [ OK ] > SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.SuppressOffers/15 > (68181 ms) > [----------] 1 test from > SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test (68181 ms total) > ``` > > > Thanks, > > Neil Conway > >
