----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/70497/#review214973 -----------------------------------------------------------
Bad review! Reviews applied: [70497, 70576, 70419, 70418] Error: Circular dependency detected for review 70419.Please fix the 'depends_on' field. - Mesos Reviewbot On May 1, 2019, 1:36 a.m., Meng Zhu wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/70497/ > ----------------------------------------------------------- > > (Updated May 1, 2019, 1:36 a.m.) > > > Review request for mesos, Andrei Sekretenko and Benjamin Mahler. > > > Bugs: MESOS-9725 > https://issues.apache.org/jira/browse/MESOS-9725 > > > Repository: mesos > > > Description > ------- > > This patch optimizes the random sorter by avoiding > clients shuffling. The sorter now does random sampling > as the caller asks for the next client. > > The random sampling works in two steps. Clients with the same > relative weights are grouped together. In the first phase, we > randomly pick a group of clients. This requires the generation > of a weighted random number. In the second phase, a client within > the group is picked. Since all clients in the group have the same > weight, this can be done in constant time. This two step approach > minimizes the cost of generating weighted random number which > could be expensive given the size of the weights. > > > Diffs > ----- > > src/master/allocator/sorter/random/sorter.hpp > 55e22d7705f163fe47d5aa47416ee0714c5a87c0 > src/master/allocator/sorter/random/sorter.cpp > 813f5b55d38dd9fa822de53ee944c3f72251a69d > > > Diff: https://reviews.apache.org/r/70497/diff/2/ > > > Testing > ------- > > make check > > Benchmarking: ran > `QuotaParam/BENCHMARK_HierarchicalAllocator_WithQuotaParam.LargeAndSmallQuota/5` > with optimized build > > Before: > > Added 3000 agents in 101.884509ms > Added 3000 frameworks in 19.711779311secs > Benchmark setup: 3000 agents, 3000 roles, 3000 frameworks, with random sorter > Made 3856 allocations in 16.283607645secs > Made 0 allocation in 16.31197771secs > > After r/70419, r/70576 and r/70497 : > > Added 3000 agents in 87.147084ms > Added 3000 frameworks in 19.246494668secs > Benchmark setup: 3000 agents, 3000 roles, 3000 frameworks, with random sorter > Made 3872 allocations in 12.230518989secs > Made 0 allocation in 12.012211914secs > > > Thanks, > > Meng Zhu > >