> On Jan. 29, 2019, 9:37 p.m., Benjamin Mahler wrote: > > The commit description makes it sound like the filter is using the > > **union** of the flag and the per-framework/role override: > > > > > This set is populated with any minimal allocatable resources specified in > > > the allocator's options and any framework's minimal allocatable resources. > > > > However, it should be an override (which is what the patch correctly does > > AFAICT). Probably, just using "override" in the explanation would make this > > very clear to the reader. > > > > IMO, we only really need the first paragraph of the description: > > > > > This patch modifies the hierarchical allocator to take > > > framework-specified minimal allocatable resources into account. > > > > We could make it a bit clearer: > > > > > This patch modifies the allocator to take the framework-specified minimum > > > allocatable resources into account. These act as an override of the > > > existing `min_allocatable_resources` flag. > > > > What more needs to be said?
Sorry for not updating the commit message when posting my WIP result; updated now. > On Jan. 29, 2019, 9:37 p.m., Benjamin Mahler wrote: > > src/master/allocator/mesos/hierarchical.cpp > > Lines 1952-1968 (original), 1978-1987 (patched) > > <https://reviews.apache.org/r/69821/diff/2/?file=2123196#file2123196line1978> > > > > This makes it look like we should consolidate into the `isFiltered` > > function? See below. > On Jan. 29, 2019, 9:37 p.m., Benjamin Mahler wrote: > > src/master/allocator/mesos/hierarchical.cpp > > Line 2069 (original), 2082 (patched) > > <https://reviews.apache.org/r/69821/diff/2/?file=2123196#file2123196line2095> > > > > Now that this is a continue instead of a break, it seems they can be > > consolidated into 1 below? > > > > Also, can you post the benchmark numbers before and after this patch to > > make sure we're not accidentally regressing pretty badly on performance? Let's keep this separated from the filtering step, if only to be able to document it more explicitly. After our offline discussion I added an additional check just before this one which triggers a `continue` if `toAllocate.empty()`. This does prevent some useless work. As a benchmark I ran `SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.DeclineOffers/4` (1000 agents, 500 frameworks). I patched the test to only execute `num_frameworks` allocation rounds, and also printed timings in `ms` instead of pretty-printing. The logs from an optimized build are: 1) `9f6ccbd41a55846e54297ecb31fddbeee3be50c9` ``` [ RUN ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.DeclineOffers/4 Using 1000 agents and 500 frameworks Added 500 frameworks in 15.6022ms Added 1000 agents in 82.2129ms round 0 allocate() took 43.379ms to make 1000 offers after filtering 1000 offers round 1 allocate() took 44.7003ms to make 1000 offers after filtering 2000 offers round 2 allocate() took 40.1724ms to make 1000 offers after filtering 3000 offers round 3 allocate() took 56.499ms to make 1000 offers after filtering 4000 offers round 4 allocate() took 42.4679ms to make 1000 offers after filtering 5000 offers round 5 allocate() took 43.2156ms to make 1000 offers after filtering 6000 offers round 6 allocate() took 45.9366ms to make 1000 offers after filtering 7000 offers round 7 allocate() took 40.4537ms to make 1000 offers after filtering 8000 offers round 8 allocate() took 48.6968ms to make 1000 offers after filtering 9000 offers round 9 allocate() took 43.5264ms to make 1000 offers after filtering 10000 offers round 10 allocate() took 42.1773ms to make 1000 offers after filtering 11000 offers round 11 allocate() took 37.3388ms to make 1000 offers after filtering 12000 offers round 12 allocate() took 40.3328ms to make 1000 offers after filtering 13000 offers round 13 allocate() took 43.9844ms to make 1000 offers after filtering 14000 offers round 14 allocate() took 36.8533ms to make 1000 offers after filtering 15000 offers round 15 allocate() took 41.1868ms to make 1000 offers after filtering 16000 offers round 16 allocate() took 44.1921ms to make 1000 offers after filtering 17000 offers round 17 allocate() took 44.6911ms to make 1000 offers after filtering 18000 offers round 18 allocate() took 40.2239ms to make 1000 offers after filtering 19000 offers round 19 allocate() took 46.5701ms to make 1000 offers after filtering 20000 offers round 20 allocate() took 41.5735ms to make 1000 offers after filtering 21000 offers round 21 allocate() took 44.3456ms to make 1000 offers after filtering 22000 offers round 22 allocate() took 42.7894ms to make 1000 offers after filtering 23000 offers round 23 allocate() took 39.352ms to make 1000 offers after filtering 24000 offers round 24 allocate() took 40.5653ms to make 1000 offers after filtering 25000 offers round 25 allocate() took 46.8886ms to make 1000 offers after filtering 26000 offers round 26 allocate() took 39.9539ms to make 1000 offers after filtering 27000 offers round 27 allocate() took 41.6405ms to make 1000 offers after filtering 28000 offers round 28 allocate() took 40.2024ms to make 1000 offers after filtering 29000 offers round 29 allocate() took 40.0754ms to make 1000 offers after filtering 30000 offers round 30 allocate() took 42.2118ms to make 1000 offers after filtering 31000 offers round 31 allocate() took 40.0735ms to make 1000 offers after filtering 32000 offers round 32 allocate() took 41.1366ms to make 1000 offers after filtering 33000 offers round 33 allocate() took 39.5ms to make 1000 offers after filtering 34000 offers round 34 allocate() took 41.9594ms to make 1000 offers after filtering 35000 offers round 35 allocate() took 49.4858ms to make 1000 offers after filtering 36000 offers round 36 allocate() took 40.4156ms to make 1000 offers after filtering 37000 offers round 37 allocate() took 37.1299ms to make 1000 offers after filtering 38000 offers round 38 allocate() took 44.5638ms to make 1000 offers after filtering 39000 offers round 39 allocate() took 43.6203ms to make 1000 offers after filtering 40000 offers round 40 allocate() took 44.9227ms to make 1000 offers after filtering 41000 offers round 41 allocate() took 45.0713ms to make 1000 offers after filtering 42000 offers round 42 allocate() took 44.9159ms to make 1000 offers after filtering 43000 offers round 43 allocate() took 40.4659ms to make 1000 offers after filtering 44000 offers round 44 allocate() took 41.5586ms to make 1000 offers after filtering 45000 offers round 45 allocate() took 40.8119ms to make 1000 offers after filtering 46000 offers round 46 allocate() took 40.719ms to make 1000 offers after filtering 47000 offers round 47 allocate() took 45.5008ms to make 1000 offers after filtering 48000 offers round 48 allocate() took 41.6095ms to make 1000 offers after filtering 49000 offers round 49 allocate() took 49.6347ms to make 1000 offers after filtering 50000 offers round 50 allocate() took 40.6466ms to make 1000 offers after filtering 51000 offers round 51 allocate() took 48.1745ms to make 1000 offers after filtering 52000 offers round 52 allocate() took 42.0721ms to make 1000 offers after filtering 53000 offers round 53 allocate() took 40.2583ms to make 1000 offers after filtering 54000 offers round 54 allocate() took 49.3955ms to make 1000 offers after filtering 55000 offers round 55 allocate() took 41.0407ms to make 1000 offers after filtering 56000 offers round 56 allocate() took 41.6122ms to make 1000 offers after filtering 57000 offers round 57 allocate() took 41.3759ms to make 1000 offers after filtering 58000 offers round 58 allocate() took 43.2541ms to make 1000 offers after filtering 59000 offers round 59 allocate() took 49.5271ms to make 1000 offers after filtering 60000 offers round 60 allocate() took 41.2492ms to make 1000 offers after filtering 61000 offers round 61 allocate() took 36.9911ms to make 1000 offers after filtering 62000 offers round 62 allocate() took 49.6439ms to make 1000 offers after filtering 63000 offers round 63 allocate() took 43.5561ms to make 1000 offers after filtering 64000 offers round 64 allocate() took 43.3742ms to make 1000 offers after filtering 65000 offers round 65 allocate() took 48.0535ms to make 1000 offers after filtering 66000 offers round 66 allocate() took 42.6492ms to make 1000 offers after filtering 67000 offers round 67 allocate() took 46.4883ms to make 1000 offers after filtering 68000 offers round 68 allocate() took 42.4521ms to make 1000 offers after filtering 69000 offers round 69 allocate() took 44.1942ms to make 1000 offers after filtering 70000 offers round 70 allocate() took 47.6116ms to make 1000 offers after filtering 71000 offers round 71 allocate() took 44.7905ms to make 1000 offers after filtering 72000 offers round 72 allocate() took 42.7777ms to make 1000 offers after filtering 73000 offers round 73 allocate() took 48.8829ms to make 1000 offers after filtering 74000 offers round 74 allocate() took 41.238ms to make 1000 offers after filtering 75000 offers round 75 allocate() took 43.8349ms to make 1000 offers after filtering 76000 offers round 76 allocate() took 45.572ms to make 1000 offers after filtering 77000 offers round 77 allocate() took 41.4422ms to make 1000 offers after filtering 78000 offers round 78 allocate() took 49.0392ms to make 1000 offers after filtering 79000 offers round 79 allocate() took 44.7469ms to make 1000 offers after filtering 80000 offers round 80 allocate() took 53.4459ms to make 1000 offers after filtering 81000 offers round 81 allocate() took 51.1132ms to make 1000 offers after filtering 82000 offers round 82 allocate() took 45.5509ms to make 1000 offers after filtering 83000 offers round 83 allocate() took 50.7289ms to make 1000 offers after filtering 84000 offers round 84 allocate() took 43.3636ms to make 1000 offers after filtering 85000 offers round 85 allocate() took 47.5747ms to make 1000 offers after filtering 86000 offers round 86 allocate() took 43.3862ms to make 1000 offers after filtering 87000 offers round 87 allocate() took 44.4346ms to make 1000 offers after filtering 88000 offers round 88 allocate() took 43.3714ms to make 1000 offers after filtering 89000 offers round 89 allocate() took 48.0617ms to make 1000 offers after filtering 90000 offers round 90 allocate() took 48.3744ms to make 1000 offers after filtering 91000 offers round 91 allocate() took 41.4978ms to make 1000 offers after filtering 92000 offers round 92 allocate() took 45.5325ms to make 1000 offers after filtering 93000 offers round 93 allocate() took 48.5243ms to make 1000 offers after filtering 94000 offers round 94 allocate() took 47.5721ms to make 1000 offers after filtering 95000 offers round 95 allocate() took 46.9302ms to make 1000 offers after filtering 96000 offers round 96 allocate() took 45.2669ms to make 1000 offers after filtering 97000 offers round 97 allocate() took 46.111ms to make 1000 offers after filtering 98000 offers round 98 allocate() took 44.9205ms to make 1000 offers after filtering 99000 offers round 99 allocate() took 44.5762ms to make 1000 offers after filtering 100000 offers round 100 allocate() took 48.1169ms to make 1000 offers after filtering 101000 offers round 101 allocate() took 45.0201ms to make 1000 offers after filtering 102000 offers round 102 allocate() took 42.9174ms to make 1000 offers after filtering 103000 offers round 103 allocate() took 52.5127ms to make 1000 offers after filtering 104000 offers round 104 allocate() took 44.2054ms to make 1000 offers after filtering 105000 offers round 105 allocate() took 47.2304ms to make 1000 offers after filtering 106000 offers round 106 allocate() took 44.1472ms to make 1000 offers after filtering 107000 offers round 107 allocate() took 40.484ms to make 1000 offers after filtering 108000 offers round 108 allocate() took 44.1042ms to make 1000 offers after filtering 109000 offers round 109 allocate() took 46.3012ms to make 1000 offers after filtering 110000 offers round 110 allocate() took 46.858ms to make 1000 offers after filtering 111000 offers round 111 allocate() took 45.4239ms to make 1000 offers after filtering 112000 offers round 112 allocate() took 47.6514ms to make 1000 offers after filtering 113000 offers round 113 allocate() took 55.0673ms to make 1000 offers after filtering 114000 offers round 114 allocate() took 44.6646ms to make 1000 offers after filtering 115000 offers round 115 allocate() took 50.6825ms to make 1000 offers after filtering 116000 offers round 116 allocate() took 44.4773ms to make 1000 offers after filtering 117000 offers round 117 allocate() took 46.7083ms to make 1000 offers after filtering 118000 offers round 118 allocate() took 47.7741ms to make 1000 offers after filtering 119000 offers round 119 allocate() took 50.185ms to make 1000 offers after filtering 120000 offers round 120 allocate() took 46.0032ms to make 1000 offers after filtering 121000 offers round 121 allocate() took 42.014ms to make 1000 offers after filtering 122000 offers round 122 allocate() took 44.9489ms to make 1000 offers after filtering 123000 offers round 123 allocate() took 44.4353ms to make 1000 offers after filtering 124000 offers round 124 allocate() took 49.3886ms to make 1000 offers after filtering 125000 offers round 125 allocate() took 45.6761ms to make 1000 offers after filtering 126000 offers round 126 allocate() took 48.6306ms to make 1000 offers after filtering 127000 offers round 127 allocate() took 49.0563ms to make 1000 offers after filtering 128000 offers round 128 allocate() took 44.816ms to make 1000 offers after filtering 129000 offers round 129 allocate() took 49.7764ms to make 1000 offers after filtering 130000 offers round 130 allocate() took 46.4268ms to make 1000 offers after filtering 131000 offers round 131 allocate() took 48.0163ms to make 1000 offers after filtering 132000 offers round 132 allocate() took 43.768ms to make 1000 offers after filtering 133000 offers round 133 allocate() took 47.8291ms to make 1000 offers after filtering 134000 offers round 134 allocate() took 47.3716ms to make 1000 offers after filtering 135000 offers round 135 allocate() took 46.2753ms to make 1000 offers after filtering 136000 offers round 136 allocate() took 46.3543ms to make 1000 offers after filtering 137000 offers round 137 allocate() took 53.9863ms to make 1000 offers after filtering 138000 offers round 138 allocate() took 49.8041ms to make 1000 offers after filtering 139000 offers round 139 allocate() took 50.954ms to make 1000 offers after filtering 140000 offers round 140 allocate() took 44.1232ms to make 1000 offers after filtering 141000 offers round 141 allocate() took 46.1515ms to make 1000 offers after filtering 142000 offers round 142 allocate() took 49.4546ms to make 1000 offers after filtering 143000 offers round 143 allocate() took 47.867ms to make 1000 offers after filtering 144000 offers round 144 allocate() took 43.0991ms to make 1000 offers after filtering 145000 offers round 145 allocate() took 43.8772ms to make 1000 offers after filtering 146000 offers round 146 allocate() took 45.458ms to make 1000 offers after filtering 147000 offers round 147 allocate() took 45.6885ms to make 1000 offers after filtering 148000 offers round 148 allocate() took 48.7958ms to make 1000 offers after filtering 149000 offers round 149 allocate() took 41.555ms to make 1000 offers after filtering 150000 offers round 150 allocate() took 51.497ms to make 1000 offers after filtering 151000 offers round 151 allocate() took 53.1233ms to make 1000 offers after filtering 152000 offers round 152 allocate() took 49.4516ms to make 1000 offers after filtering 153000 offers round 153 allocate() took 50.3223ms to make 1000 offers after filtering 154000 offers round 154 allocate() took 44.0316ms to make 1000 offers after filtering 155000 offers round 155 allocate() took 52.9394ms to make 1000 offers after filtering 156000 offers round 156 allocate() took 46.1572ms to make 1000 offers after filtering 157000 offers round 157 allocate() took 49.5107ms to make 1000 offers after filtering 158000 offers round 158 allocate() took 49.259ms to make 1000 offers after filtering 159000 offers round 159 allocate() took 50.1442ms to make 1000 offers after filtering 160000 offers round 160 allocate() took 49.8259ms to make 1000 offers after filtering 161000 offers round 161 allocate() took 50.7864ms to make 1000 offers after filtering 162000 offers round 162 allocate() took 44.3764ms to make 1000 offers after filtering 163000 offers round 163 allocate() took 52.9589ms to make 1000 offers after filtering 164000 offers round 164 allocate() took 51.9388ms to make 1000 offers after filtering 165000 offers round 165 allocate() took 46.4587ms to make 1000 offers after filtering 166000 offers round 166 allocate() took 52.7674ms to make 1000 offers after filtering 167000 offers round 167 allocate() took 56.5814ms to make 1000 offers after filtering 168000 offers round 168 allocate() took 51.4663ms to make 1000 offers after filtering 169000 offers round 169 allocate() took 46.2037ms to make 1000 offers after filtering 170000 offers round 170 allocate() took 47.0337ms to make 1000 offers after filtering 171000 offers round 171 allocate() took 52.8302ms to make 1000 offers after filtering 172000 offers round 172 allocate() took 47.099ms to make 1000 offers after filtering 173000 offers round 173 allocate() took 48.4415ms to make 1000 offers after filtering 174000 offers round 174 allocate() took 46.2016ms to make 1000 offers after filtering 175000 offers round 175 allocate() took 47.8211ms to make 1000 offers after filtering 176000 offers round 176 allocate() took 52.8813ms to make 1000 offers after filtering 177000 offers round 177 allocate() took 52.5591ms to make 1000 offers after filtering 178000 offers round 178 allocate() took 46.1184ms to make 1000 offers after filtering 179000 offers round 179 allocate() took 52.652ms to make 1000 offers after filtering 180000 offers round 180 allocate() took 46.0045ms to make 1000 offers after filtering 181000 offers round 181 allocate() took 48.9528ms to make 1000 offers after filtering 182000 offers round 182 allocate() took 45.4286ms to make 1000 offers after filtering 183000 offers round 183 allocate() took 47.5286ms to make 1000 offers after filtering 184000 offers round 184 allocate() took 48.5917ms to make 1000 offers after filtering 185000 offers round 185 allocate() took 47.0747ms to make 1000 offers after filtering 186000 offers round 186 allocate() took 52.4931ms to make 1000 offers after filtering 187000 offers round 187 allocate() took 45.8298ms to make 1000 offers after filtering 188000 offers round 188 allocate() took 46.9473ms to make 1000 offers after filtering 189000 offers round 189 allocate() took 49.1067ms to make 1000 offers after filtering 190000 offers round 190 allocate() took 46.0482ms to make 1000 offers after filtering 191000 offers round 191 allocate() took 54.0377ms to make 1000 offers after filtering 192000 offers round 192 allocate() took 48.6816ms to make 1000 offers after filtering 193000 offers round 193 allocate() took 46.547ms to make 1000 offers after filtering 194000 offers round 194 allocate() took 48.6652ms to make 1000 offers after filtering 195000 offers round 195 allocate() took 52.9071ms to make 1000 offers after filtering 196000 offers round 196 allocate() took 50.4669ms to make 1000 offers after filtering 197000 offers round 197 allocate() took 48.9077ms to make 1000 offers after filtering 198000 offers round 198 allocate() took 47.0762ms to make 1000 offers after filtering 199000 offers round 199 allocate() took 53.5286ms to make 1000 offers after filtering 200000 offers round 200 allocate() took 50.3092ms to make 1000 offers after filtering 201000 offers round 201 allocate() took 53.1978ms to make 1000 offers after filtering 202000 offers round 202 allocate() took 46.7309ms to make 1000 offers after filtering 203000 offers round 203 allocate() took 47.197ms to make 1000 offers after filtering 204000 offers round 204 allocate() took 47.9644ms to make 1000 offers after filtering 205000 offers round 205 allocate() took 52.5824ms to make 1000 offers after filtering 206000 offers round 206 allocate() took 52.7134ms to make 1000 offers after filtering 207000 offers round 207 allocate() took 48.2553ms to make 1000 offers after filtering 208000 offers round 208 allocate() took 57.6812ms to make 1000 offers after filtering 209000 offers round 209 allocate() took 53.9594ms to make 1000 offers after filtering 210000 offers round 210 allocate() took 48.2127ms to make 1000 offers after filtering 211000 offers round 211 allocate() took 47.3254ms to make 1000 offers after filtering 212000 offers round 212 allocate() took 50.2534ms to make 1000 offers after filtering 213000 offers round 213 allocate() took 57.9581ms to make 1000 offers after filtering 214000 offers round 214 allocate() took 63.6734ms to make 1000 offers after filtering 215000 offers round 215 allocate() took 61.2235ms to make 1000 offers after filtering 216000 offers round 216 allocate() took 53.5099ms to make 1000 offers after filtering 217000 offers round 217 allocate() took 50.4939ms to make 1000 offers after filtering 218000 offers round 218 allocate() took 54.4549ms to make 1000 offers after filtering 219000 offers round 219 allocate() took 58.4072ms to make 1000 offers after filtering 220000 offers round 220 allocate() took 53.847ms to make 1000 offers after filtering 221000 offers round 221 allocate() took 54.1096ms to make 1000 offers after filtering 222000 offers round 222 allocate() took 56.0966ms to make 1000 offers after filtering 223000 offers round 223 allocate() took 53.592ms to make 1000 offers after filtering 224000 offers round 224 allocate() took 55.2486ms to make 1000 offers after filtering 225000 offers round 225 allocate() took 51.5048ms to make 1000 offers after filtering 226000 offers round 226 allocate() took 51.9086ms to make 1000 offers after filtering 227000 offers round 227 allocate() took 53.3552ms to make 1000 offers after filtering 228000 offers round 228 allocate() took 51.9485ms to make 1000 offers after filtering 229000 offers round 229 allocate() took 58.4765ms to make 1000 offers after filtering 230000 offers round 230 allocate() took 58.9554ms to make 1000 offers after filtering 231000 offers round 231 allocate() took 58.2673ms to make 1000 offers after filtering 232000 offers round 232 allocate() took 60.6808ms to make 1000 offers after filtering 233000 offers round 233 allocate() took 55.9027ms to make 1000 offers after filtering 234000 offers round 234 allocate() took 52.3278ms to make 1000 offers after filtering 235000 offers round 235 allocate() took 65.6062ms to make 1000 offers after filtering 236000 offers round 236 allocate() took 54.8625ms to make 1000 offers after filtering 237000 offers round 237 allocate() took 55.4922ms to make 1000 offers after filtering 238000 offers round 238 allocate() took 59.7203ms to make 1000 offers after filtering 239000 offers round 239 allocate() took 56.8822ms to make 1000 offers after filtering 240000 offers round 240 allocate() took 54.9492ms to make 1000 offers after filtering 241000 offers round 241 allocate() took 57.1337ms to make 1000 offers after filtering 242000 offers round 242 allocate() took 53.6834ms to make 1000 offers after filtering 243000 offers round 243 allocate() took 59.0367ms to make 1000 offers after filtering 244000 offers round 244 allocate() took 57.7153ms to make 1000 offers after filtering 245000 offers round 245 allocate() took 54.9644ms to make 1000 offers after filtering 246000 offers round 246 allocate() took 58.2957ms to make 1000 offers after filtering 247000 offers round 247 allocate() took 59.3979ms to make 1000 offers after filtering 248000 offers round 248 allocate() took 66.781ms to make 1000 offers after filtering 249000 offers round 249 allocate() took 54.285ms to make 1000 offers after filtering 250000 offers round 250 allocate() took 55.0947ms to make 1000 offers after filtering 251000 offers round 251 allocate() took 54.8685ms to make 1000 offers after filtering 252000 offers round 252 allocate() took 54.35ms to make 1000 offers after filtering 253000 offers round 253 allocate() took 54.9059ms to make 1000 offers after filtering 254000 offers round 254 allocate() took 59.597ms to make 1000 offers after filtering 255000 offers round 255 allocate() took 55.5525ms to make 1000 offers after filtering 256000 offers round 256 allocate() took 59.9379ms to make 1000 offers after filtering 257000 offers round 257 allocate() took 55.562ms to make 1000 offers after filtering 258000 offers round 258 allocate() took 56.2249ms to make 1000 offers after filtering 259000 offers round 259 allocate() took 59.7883ms to make 1000 offers after filtering 260000 offers round 260 allocate() took 55.2769ms to make 1000 offers after filtering 261000 offers round 261 allocate() took 52.7732ms to make 1000 offers after filtering 262000 offers round 262 allocate() took 59.3481ms to make 1000 offers after filtering 263000 offers round 263 allocate() took 59.6143ms to make 1000 offers after filtering 264000 offers round 264 allocate() took 53.5964ms to make 1000 offers after filtering 265000 offers round 265 allocate() took 54.7894ms to make 1000 offers after filtering 266000 offers round 266 allocate() took 59.6638ms to make 1000 offers after filtering 267000 offers round 267 allocate() took 60.3564ms to make 1000 offers after filtering 268000 offers round 268 allocate() took 59.8669ms to make 1000 offers after filtering 269000 offers round 269 allocate() took 53.7101ms to make 1000 offers after filtering 270000 offers round 270 allocate() took 61.6155ms to make 1000 offers after filtering 271000 offers round 271 allocate() took 65.0929ms to make 1000 offers after filtering 272000 offers round 272 allocate() took 61.5197ms to make 1000 offers after filtering 273000 offers round 273 allocate() took 57.6912ms to make 1000 offers after filtering 274000 offers round 274 allocate() took 56.9268ms to make 1000 offers after filtering 275000 offers round 275 allocate() took 54.51ms to make 1000 offers after filtering 276000 offers round 276 allocate() took 56.9848ms to make 1000 offers after filtering 277000 offers round 277 allocate() took 63.9871ms to make 1000 offers after filtering 278000 offers round 278 allocate() took 59.9088ms to make 1000 offers after filtering 279000 offers round 279 allocate() took 57.7531ms to make 1000 offers after filtering 280000 offers round 280 allocate() took 68.9986ms to make 1000 offers after filtering 281000 offers round 281 allocate() took 64.2633ms to make 1000 offers after filtering 282000 offers round 282 allocate() took 58.2183ms to make 1000 offers after filtering 283000 offers round 283 allocate() took 63.3825ms to make 1000 offers after filtering 284000 offers round 284 allocate() took 57.9046ms to make 1000 offers after filtering 285000 offers round 285 allocate() took 64.4061ms to make 1000 offers after filtering 286000 offers round 286 allocate() took 55.5097ms to make 1000 offers after filtering 287000 offers round 287 allocate() took 62.9108ms to make 1000 offers after filtering 288000 offers round 288 allocate() took 59.2798ms to make 1000 offers after filtering 289000 offers round 289 allocate() took 57.3862ms to make 1000 offers after filtering 290000 offers round 290 allocate() took 62.5193ms to make 1000 offers after filtering 291000 offers round 291 allocate() took 63.9871ms to make 1000 offers after filtering 292000 offers round 292 allocate() took 62.8136ms to make 1000 offers after filtering 293000 offers round 293 allocate() took 59.3041ms to make 1000 offers after filtering 294000 offers round 294 allocate() took 63.9267ms to make 1000 offers after filtering 295000 offers round 295 allocate() took 64.1519ms to make 1000 offers after filtering 296000 offers round 296 allocate() took 65.9135ms to make 1000 offers after filtering 297000 offers round 297 allocate() took 67.2918ms to make 1000 offers after filtering 298000 offers round 298 allocate() took 59.3885ms to make 1000 offers after filtering 299000 offers round 299 allocate() took 59.6041ms to make 1000 offers after filtering 300000 offers round 300 allocate() took 69.324ms to make 1000 offers after filtering 301000 offers round 301 allocate() took 64.2583ms to make 1000 offers after filtering 302000 offers round 302 allocate() took 64.9007ms to make 1000 offers after filtering 303000 offers round 303 allocate() took 63.8561ms to make 1000 offers after filtering 304000 offers round 304 allocate() took 68.6028ms to make 1000 offers after filtering 305000 offers round 305 allocate() took 67.1413ms to make 1000 offers after filtering 306000 offers round 306 allocate() took 68.6673ms to make 1000 offers after filtering 307000 offers round 307 allocate() took 68.9406ms to make 1000 offers after filtering 308000 offers round 308 allocate() took 63.6815ms to make 1000 offers after filtering 309000 offers round 309 allocate() took 69.0234ms to make 1000 offers after filtering 310000 offers round 310 allocate() took 63.2273ms to make 1000 offers after filtering 311000 offers round 311 allocate() took 67.1414ms to make 1000 offers after filtering 312000 offers round 312 allocate() took 63.4983ms to make 1000 offers after filtering 313000 offers round 313 allocate() took 62.2387ms to make 1000 offers after filtering 314000 offers round 314 allocate() took 68.5613ms to make 1000 offers after filtering 315000 offers round 315 allocate() took 62.5667ms to make 1000 offers after filtering 316000 offers round 316 allocate() took 74.5411ms to make 1000 offers after filtering 317000 offers round 317 allocate() took 64.7132ms to make 1000 offers after filtering 318000 offers round 318 allocate() took 70.9544ms to make 1000 offers after filtering 319000 offers round 319 allocate() took 70.9717ms to make 1000 offers after filtering 320000 offers round 320 allocate() took 73.0904ms to make 1000 offers after filtering 321000 offers round 321 allocate() took 70.3279ms to make 1000 offers after filtering 322000 offers round 322 allocate() took 64.6519ms to make 1000 offers after filtering 323000 offers round 323 allocate() took 66.5118ms to make 1000 offers after filtering 324000 offers round 324 allocate() took 81.1093ms to make 1000 offers after filtering 325000 offers round 325 allocate() took 81.8696ms to make 1000 offers after filtering 326000 offers round 326 allocate() took 78.0062ms to make 1000 offers after filtering 327000 offers round 327 allocate() took 79.5439ms to make 1000 offers after filtering 328000 offers round 328 allocate() took 78.1366ms to make 1000 offers after filtering 329000 offers round 329 allocate() took 82.1965ms to make 1000 offers after filtering 330000 offers round 330 allocate() took 74.5939ms to make 1000 offers after filtering 331000 offers round 331 allocate() took 76.6423ms to make 1000 offers after filtering 332000 offers round 332 allocate() took 75.5452ms to make 1000 offers after filtering 333000 offers round 333 allocate() took 75.7285ms to make 1000 offers after filtering 334000 offers round 334 allocate() took 70.2246ms to make 1000 offers after filtering 335000 offers round 335 allocate() took 79.8553ms to make 1000 offers after filtering 336000 offers round 336 allocate() took 80.9663ms to make 1000 offers after filtering 337000 offers round 337 allocate() took 75.7493ms to make 1000 offers after filtering 338000 offers round 338 allocate() took 77.8515ms to make 1000 offers after filtering 339000 offers round 339 allocate() took 69.8719ms to make 1000 offers after filtering 340000 offers round 340 allocate() took 75.2373ms to make 1000 offers after filtering 341000 offers round 341 allocate() took 70.5976ms to make 1000 offers after filtering 342000 offers round 342 allocate() took 78.1957ms to make 1000 offers after filtering 343000 offers round 343 allocate() took 80.2471ms to make 1000 offers after filtering 344000 offers round 344 allocate() took 80.1235ms to make 1000 offers after filtering 345000 offers round 345 allocate() took 77.7974ms to make 1000 offers after filtering 346000 offers round 346 allocate() took 81.5935ms to make 1000 offers after filtering 347000 offers round 347 allocate() took 75.9347ms to make 1000 offers after filtering 348000 offers round 348 allocate() took 79.2547ms to make 1000 offers after filtering 349000 offers round 349 allocate() took 78.2816ms to make 1000 offers after filtering 350000 offers round 350 allocate() took 76.8709ms to make 1000 offers after filtering 351000 offers round 351 allocate() took 82.6057ms to make 1000 offers after filtering 352000 offers round 352 allocate() took 82.1843ms to make 1000 offers after filtering 353000 offers round 353 allocate() took 89.666ms to make 1000 offers after filtering 354000 offers round 354 allocate() took 83.3957ms to make 1000 offers after filtering 355000 offers round 355 allocate() took 76.816ms to make 1000 offers after filtering 356000 offers round 356 allocate() took 83.0263ms to make 1000 offers after filtering 357000 offers round 357 allocate() took 84.5107ms to make 1000 offers after filtering 358000 offers round 358 allocate() took 84.4714ms to make 1000 offers after filtering 359000 offers round 359 allocate() took 85.2971ms to make 1000 offers after filtering 360000 offers round 360 allocate() took 82.0539ms to make 1000 offers after filtering 361000 offers round 361 allocate() took 78.6038ms to make 1000 offers after filtering 362000 offers round 362 allocate() took 87.049ms to make 1000 offers after filtering 363000 offers round 363 allocate() took 82.9083ms to make 1000 offers after filtering 364000 offers round 364 allocate() took 84.5083ms to make 1000 offers after filtering 365000 offers round 365 allocate() took 82.7553ms to make 1000 offers after filtering 366000 offers round 366 allocate() took 85.3396ms to make 1000 offers after filtering 367000 offers round 367 allocate() took 95.0262ms to make 1000 offers after filtering 368000 offers round 368 allocate() took 92.0614ms to make 1000 offers after filtering 369000 offers round 369 allocate() took 93.5387ms to make 1000 offers after filtering 370000 offers round 370 allocate() took 91.826ms to make 1000 offers after filtering 371000 offers round 371 allocate() took 88.7365ms to make 1000 offers after filtering 372000 offers round 372 allocate() took 92.8509ms to make 1000 offers after filtering 373000 offers round 373 allocate() took 87.5227ms to make 1000 offers after filtering 374000 offers round 374 allocate() took 99.0992ms to make 1000 offers after filtering 375000 offers round 375 allocate() took 90.7155ms to make 1000 offers after filtering 376000 offers round 376 allocate() took 90.7619ms to make 1000 offers after filtering 377000 offers round 377 allocate() took 99.588ms to make 1000 offers after filtering 378000 offers round 378 allocate() took 92.5583ms to make 1000 offers after filtering 379000 offers round 379 allocate() took 99.9011ms to make 1000 offers after filtering 380000 offers round 380 allocate() took 96.3832ms to make 1000 offers after filtering 381000 offers round 381 allocate() took 103.714ms to make 1000 offers after filtering 382000 offers round 382 allocate() took 94.2026ms to make 1000 offers after filtering 383000 offers round 383 allocate() took 105.897ms to make 1000 offers after filtering 384000 offers round 384 allocate() took 102.864ms to make 1000 offers after filtering 385000 offers round 385 allocate() took 97.5296ms to make 1000 offers after filtering 386000 offers round 386 allocate() took 97.1741ms to make 1000 offers after filtering 387000 offers round 387 allocate() took 98.6521ms to make 1000 offers after filtering 388000 offers round 388 allocate() took 101.869ms to make 1000 offers after filtering 389000 offers round 389 allocate() took 98.4426ms to make 1000 offers after filtering 390000 offers round 390 allocate() took 105.741ms to make 1000 offers after filtering 391000 offers round 391 allocate() took 108.668ms to make 1000 offers after filtering 392000 offers round 392 allocate() took 115.337ms to make 1000 offers after filtering 393000 offers round 393 allocate() took 103.518ms to make 1000 offers after filtering 394000 offers round 394 allocate() took 109.81ms to make 1000 offers after filtering 395000 offers round 395 allocate() took 107.036ms to make 1000 offers after filtering 396000 offers round 396 allocate() took 105.338ms to make 1000 offers after filtering 397000 offers round 397 allocate() took 105.576ms to make 1000 offers after filtering 398000 offers round 398 allocate() took 114.354ms to make 1000 offers after filtering 399000 offers round 399 allocate() took 114.78ms to make 1000 offers after filtering 400000 offers round 400 allocate() took 128.764ms to make 1000 offers after filtering 401000 offers round 401 allocate() took 117.37ms to make 1000 offers after filtering 402000 offers round 402 allocate() took 120.953ms to make 1000 offers after filtering 403000 offers round 403 allocate() took 130.353ms to make 1000 offers after filtering 404000 offers round 404 allocate() took 164.708ms to make 1000 offers after filtering 405000 offers round 405 allocate() took 139.55ms to make 1000 offers after filtering 406000 offers round 406 allocate() took 150.352ms to make 1000 offers after filtering 407000 offers round 407 allocate() took 147.875ms to make 1000 offers after filtering 408000 offers round 408 allocate() took 169.377ms to make 1000 offers after filtering 409000 offers round 409 allocate() took 133.379ms to make 1000 offers after filtering 410000 offers round 410 allocate() took 140.929ms to make 1000 offers after filtering 411000 offers round 411 allocate() took 136.794ms to make 1000 offers after filtering 412000 offers round 412 allocate() took 137.735ms to make 1000 offers after filtering 413000 offers round 413 allocate() took 194.353ms to make 1000 offers after filtering 414000 offers round 414 allocate() took 133.945ms to make 1000 offers after filtering 415000 offers round 415 allocate() took 135.624ms to make 1000 offers after filtering 416000 offers round 416 allocate() took 188.676ms to make 1000 offers after filtering 417000 offers round 417 allocate() took 172.045ms to make 1000 offers after filtering 418000 offers round 418 allocate() took 166.023ms to make 1000 offers after filtering 419000 offers round 419 allocate() took 155.177ms to make 1000 offers after filtering 420000 offers round 420 allocate() took 154.241ms to make 1000 offers after filtering 421000 offers round 421 allocate() took 161.956ms to make 1000 offers after filtering 422000 offers round 422 allocate() took 165.201ms to make 1000 offers after filtering 423000 offers round 423 allocate() took 141.996ms to make 1000 offers after filtering 424000 offers round 424 allocate() took 159.023ms to make 1000 offers after filtering 425000 offers round 425 allocate() took 183.697ms to make 1000 offers after filtering 426000 offers round 426 allocate() took 182.128ms to make 1000 offers after filtering 427000 offers round 427 allocate() took 167.881ms to make 1000 offers after filtering 428000 offers round 428 allocate() took 167.875ms to make 1000 offers after filtering 429000 offers round 429 allocate() took 179.076ms to make 1000 offers after filtering 430000 offers round 430 allocate() took 155.26ms to make 1000 offers after filtering 431000 offers round 431 allocate() took 167.543ms to make 1000 offers after filtering 432000 offers round 432 allocate() took 170.75ms to make 1000 offers after filtering 433000 offers round 433 allocate() took 174.551ms to make 1000 offers after filtering 434000 offers round 434 allocate() took 175.726ms to make 1000 offers after filtering 435000 offers round 435 allocate() took 189.921ms to make 1000 offers after filtering 436000 offers round 436 allocate() took 204.84ms to make 1000 offers after filtering 437000 offers round 437 allocate() took 200.174ms to make 1000 offers after filtering 438000 offers round 438 allocate() took 192.34ms to make 1000 offers after filtering 439000 offers round 439 allocate() took 190.289ms to make 1000 offers after filtering 440000 offers round 440 allocate() took 188.914ms to make 1000 offers after filtering 441000 offers round 441 allocate() took 192.17ms to make 1000 offers after filtering 442000 offers round 442 allocate() took 195.385ms to make 1000 offers after filtering 443000 offers round 443 allocate() took 210.42ms to make 1000 offers after filtering 444000 offers round 444 allocate() took 207.173ms to make 1000 offers after filtering 445000 offers round 445 allocate() took 204.144ms to make 1000 offers after filtering 446000 offers round 446 allocate() took 208.471ms to make 1000 offers after filtering 447000 offers round 447 allocate() took 221.676ms to make 1000 offers after filtering 448000 offers round 448 allocate() took 222.286ms to make 1000 offers after filtering 449000 offers round 449 allocate() took 221.566ms to make 1000 offers after filtering 450000 offers round 450 allocate() took 239.995ms to make 1000 offers after filtering 451000 offers round 451 allocate() took 244.494ms to make 1000 offers after filtering 452000 offers round 452 allocate() took 226.159ms to make 1000 offers after filtering 453000 offers round 453 allocate() took 255.145ms to make 1000 offers after filtering 454000 offers round 454 allocate() took 255.047ms to make 1000 offers after filtering 455000 offers round 455 allocate() took 267.907ms to make 1000 offers after filtering 456000 offers round 456 allocate() took 271.945ms to make 1000 offers after filtering 457000 offers round 457 allocate() took 257.02ms to make 1000 offers after filtering 458000 offers round 458 allocate() took 266.546ms to make 1000 offers after filtering 459000 offers round 459 allocate() took 300.27ms to make 1000 offers after filtering 460000 offers round 460 allocate() took 279.867ms to make 1000 offers after filtering 461000 offers round 461 allocate() took 289.722ms to make 1000 offers after filtering 462000 offers round 462 allocate() took 306.197ms to make 1000 offers after filtering 463000 offers round 463 allocate() took 310.402ms to make 1000 offers after filtering 464000 offers round 464 allocate() took 315.617ms to make 1000 offers after filtering 465000 offers round 465 allocate() took 331.05ms to make 1000 offers after filtering 466000 offers round 466 allocate() took 326.992ms to make 1000 offers after filtering 467000 offers round 467 allocate() took 383.029ms to make 1000 offers after filtering 468000 offers round 468 allocate() took 377.97ms to make 1000 offers after filtering 469000 offers round 469 allocate() took 385.744ms to make 1000 offers after filtering 470000 offers round 470 allocate() took 386.417ms to make 1000 offers after filtering 471000 offers round 471 allocate() took 368.315ms to make 1000 offers after filtering 472000 offers round 472 allocate() took 474.101ms to make 1000 offers after filtering 473000 offers round 473 allocate() took 411.344ms to make 1000 offers after filtering 474000 offers round 474 allocate() took 410.315ms to make 1000 offers after filtering 475000 offers round 475 allocate() took 399.043ms to make 1000 offers after filtering 476000 offers round 476 allocate() took 409.796ms to make 1000 offers after filtering 477000 offers round 477 allocate() took 375.789ms to make 1000 offers after filtering 478000 offers round 478 allocate() took 458.395ms to make 1000 offers after filtering 479000 offers round 479 allocate() took 477.515ms to make 1000 offers after filtering 480000 offers round 480 allocate() took 437.423ms to make 1000 offers after filtering 481000 offers round 481 allocate() took 437.347ms to make 1000 offers after filtering 482000 offers round 482 allocate() took 498.898ms to make 1000 offers after filtering 483000 offers round 483 allocate() took 482.352ms to make 1000 offers after filtering 484000 offers round 484 allocate() took 470.363ms to make 1000 offers after filtering 485000 offers round 485 allocate() took 491.267ms to make 1000 offers after filtering 486000 offers round 486 allocate() took 498.423ms to make 1000 offers after filtering 487000 offers round 487 allocate() took 520.17ms to make 1000 offers after filtering 488000 offers round 488 allocate() took 564.598ms to make 1000 offers after filtering 489000 offers round 489 allocate() took 581.649ms to make 1000 offers after filtering 490000 offers round 490 allocate() took 575.418ms to make 1000 offers after filtering 491000 offers round 491 allocate() took 643.322ms to make 1000 offers after filtering 492000 offers round 492 allocate() took 694.066ms to make 1000 offers after filtering 493000 offers round 493 allocate() took 692.645ms to make 1000 offers after filtering 494000 offers round 494 allocate() took 789.98ms to make 1000 offers after filtering 495000 offers round 495 allocate() took 871.893ms to make 1000 offers after filtering 496000 offers round 496 allocate() took 1013.3ms to make 1000 offers after filtering 497000 offers round 497 allocate() took 1340.32ms to make 1000 offers after filtering 498000 offers round 498 allocate() took 1470.92ms to make 1000 offers after filtering 499000 offers round 499 allocate() took 4329.82ms to make 0 offers after filtering 500000 offers [ OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.DeclineOffers/4 (86165 ms) ``` 2) this patch ``` [ RUN ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.DeclineOffers/4 Using 1000 agents and 500 frameworks Added 500 frameworks in 16.4873ms Added 1000 agents in 81.0583ms round 0 allocate() took 41.7778ms to make 1000 offers after filtering 1000 offers round 1 allocate() took 44.5227ms to make 1000 offers after filtering 2000 offers round 2 allocate() took 44.5248ms to make 1000 offers after filtering 3000 offers round 3 allocate() took 55.67ms to make 1000 offers after filtering 4000 offers round 4 allocate() took 41.5302ms to make 1000 offers after filtering 5000 offers round 5 allocate() took 43.9274ms to make 1000 offers after filtering 6000 offers round 6 allocate() took 46.8593ms to make 1000 offers after filtering 7000 offers round 7 allocate() took 38.2174ms to make 1000 offers after filtering 8000 offers round 8 allocate() took 54.2078ms to make 1000 offers after filtering 9000 offers round 9 allocate() took 39.6176ms to make 1000 offers after filtering 10000 offers round 10 allocate() took 40.6607ms to make 1000 offers after filtering 11000 offers round 11 allocate() took 40.9309ms to make 1000 offers after filtering 12000 offers round 12 allocate() took 40.5603ms to make 1000 offers after filtering 13000 offers round 13 allocate() took 40.1238ms to make 1000 offers after filtering 14000 offers round 14 allocate() took 44.733ms to make 1000 offers after filtering 15000 offers round 15 allocate() took 42.1137ms to make 1000 offers after filtering 16000 offers round 16 allocate() took 44.0295ms to make 1000 offers after filtering 17000 offers round 17 allocate() took 42.209ms to make 1000 offers after filtering 18000 offers round 18 allocate() took 44.5247ms to make 1000 offers after filtering 19000 offers round 19 allocate() took 46.5887ms to make 1000 offers after filtering 20000 offers round 20 allocate() took 40.1949ms to make 1000 offers after filtering 21000 offers round 21 allocate() took 40.5234ms to make 1000 offers after filtering 22000 offers round 22 allocate() took 39.5232ms to make 1000 offers after filtering 23000 offers round 23 allocate() took 39.9007ms to make 1000 offers after filtering 24000 offers round 24 allocate() took 57.5847ms to make 1000 offers after filtering 25000 offers round 25 allocate() took 42.8214ms to make 1000 offers after filtering 26000 offers round 26 allocate() took 44.9137ms to make 1000 offers after filtering 27000 offers round 27 allocate() took 45.83ms to make 1000 offers after filtering 28000 offers round 28 allocate() took 41.8177ms to make 1000 offers after filtering 29000 offers round 29 allocate() took 50.1399ms to make 1000 offers after filtering 30000 offers round 30 allocate() took 39.4904ms to make 1000 offers after filtering 31000 offers round 31 allocate() took 36.9673ms to make 1000 offers after filtering 32000 offers round 32 allocate() took 42.4145ms to make 1000 offers after filtering 33000 offers round 33 allocate() took 41.0312ms to make 1000 offers after filtering 34000 offers round 34 allocate() took 41.4932ms to make 1000 offers after filtering 35000 offers round 35 allocate() took 44.8463ms to make 1000 offers after filtering 36000 offers round 36 allocate() took 40.3809ms to make 1000 offers after filtering 37000 offers round 37 allocate() took 40.9504ms to make 1000 offers after filtering 38000 offers round 38 allocate() took 45.9359ms to make 1000 offers after filtering 39000 offers round 39 allocate() took 44.8781ms to make 1000 offers after filtering 40000 offers round 40 allocate() took 47.8755ms to make 1000 offers after filtering 41000 offers round 41 allocate() took 40.1225ms to make 1000 offers after filtering 42000 offers round 42 allocate() took 45.1798ms to make 1000 offers after filtering 43000 offers round 43 allocate() took 44.7383ms to make 1000 offers after filtering 44000 offers round 44 allocate() took 40.2019ms to make 1000 offers after filtering 45000 offers round 45 allocate() took 40.7632ms to make 1000 offers after filtering 46000 offers round 46 allocate() took 41.5674ms to make 1000 offers after filtering 47000 offers round 47 allocate() took 39.7773ms to make 1000 offers after filtering 48000 offers round 48 allocate() took 42.0012ms to make 1000 offers after filtering 49000 offers round 49 allocate() took 41.6746ms to make 1000 offers after filtering 50000 offers round 50 allocate() took 45.0609ms to make 1000 offers after filtering 51000 offers round 51 allocate() took 47.7509ms to make 1000 offers after filtering 52000 offers round 52 allocate() took 46.9355ms to make 1000 offers after filtering 53000 offers round 53 allocate() took 44.804ms to make 1000 offers after filtering 54000 offers round 54 allocate() took 37.5781ms to make 1000 offers after filtering 55000 offers round 55 allocate() took 43.6815ms to make 1000 offers after filtering 56000 offers round 56 allocate() took 45.4468ms to make 1000 offers after filtering 57000 offers round 57 allocate() took 50.7323ms to make 1000 offers after filtering 58000 offers round 58 allocate() took 43.6692ms to make 1000 offers after filtering 59000 offers round 59 allocate() took 47.5851ms to make 1000 offers after filtering 60000 offers round 60 allocate() took 43.6564ms to make 1000 offers after filtering 61000 offers round 61 allocate() took 48.1349ms to make 1000 offers after filtering 62000 offers round 62 allocate() took 51.6804ms to make 1000 offers after filtering 63000 offers round 63 allocate() took 43.0078ms to make 1000 offers after filtering 64000 offers round 64 allocate() took 46.7052ms to make 1000 offers after filtering 65000 offers round 65 allocate() took 44.855ms to make 1000 offers after filtering 66000 offers round 66 allocate() took 42.1539ms to make 1000 offers after filtering 67000 offers round 67 allocate() took 48.4541ms to make 1000 offers after filtering 68000 offers round 68 allocate() took 44.5711ms to make 1000 offers after filtering 69000 offers round 69 allocate() took 42.9009ms to make 1000 offers after filtering 70000 offers round 70 allocate() took 42.2619ms to make 1000 offers after filtering 71000 offers round 71 allocate() took 44.4746ms to make 1000 offers after filtering 72000 offers round 72 allocate() took 56.8473ms to make 1000 offers after filtering 73000 offers round 73 allocate() took 45.4119ms to make 1000 offers after filtering 74000 offers round 74 allocate() took 42.881ms to make 1000 offers after filtering 75000 offers round 75 allocate() took 41.3894ms to make 1000 offers after filtering 76000 offers round 76 allocate() took 41.5492ms to make 1000 offers after filtering 77000 offers round 77 allocate() took 51.9409ms to make 1000 offers after filtering 78000 offers round 78 allocate() took 47.2258ms to make 1000 offers after filtering 79000 offers round 79 allocate() took 46.9158ms to make 1000 offers after filtering 80000 offers round 80 allocate() took 44.0292ms to make 1000 offers after filtering 81000 offers round 81 allocate() took 43.5527ms to make 1000 offers after filtering 82000 offers round 82 allocate() took 44.8989ms to make 1000 offers after filtering 83000 offers round 83 allocate() took 43.791ms to make 1000 offers after filtering 84000 offers round 84 allocate() took 43.1034ms to make 1000 offers after filtering 85000 offers round 85 allocate() took 44.0385ms to make 1000 offers after filtering 86000 offers round 86 allocate() took 41.9909ms to make 1000 offers after filtering 87000 offers round 87 allocate() took 43.1027ms to make 1000 offers after filtering 88000 offers round 88 allocate() took 46.4567ms to make 1000 offers after filtering 89000 offers round 89 allocate() took 43.946ms to make 1000 offers after filtering 90000 offers round 90 allocate() took 43.2952ms to make 1000 offers after filtering 91000 offers round 91 allocate() took 46.274ms to make 1000 offers after filtering 92000 offers round 92 allocate() took 45.3235ms to make 1000 offers after filtering 93000 offers round 93 allocate() took 53.0461ms to make 1000 offers after filtering 94000 offers round 94 allocate() took 46.7041ms to make 1000 offers after filtering 95000 offers round 95 allocate() took 48.0469ms to make 1000 offers after filtering 96000 offers round 96 allocate() took 46.9947ms to make 1000 offers after filtering 97000 offers round 97 allocate() took 52.4771ms to make 1000 offers after filtering 98000 offers round 98 allocate() took 45.9957ms to make 1000 offers after filtering 99000 offers round 99 allocate() took 49.3076ms to make 1000 offers after filtering 100000 offers round 100 allocate() took 50.3469ms to make 1000 offers after filtering 101000 offers round 101 allocate() took 46.8658ms to make 1000 offers after filtering 102000 offers round 102 allocate() took 49.7557ms to make 1000 offers after filtering 103000 offers round 103 allocate() took 42.7787ms to make 1000 offers after filtering 104000 offers round 104 allocate() took 46.4922ms to make 1000 offers after filtering 105000 offers round 105 allocate() took 52.1817ms to make 1000 offers after filtering 106000 offers round 106 allocate() took 48.062ms to make 1000 offers after filtering 107000 offers round 107 allocate() took 42.7622ms to make 1000 offers after filtering 108000 offers round 108 allocate() took 46.5593ms to make 1000 offers after filtering 109000 offers round 109 allocate() took 50.6869ms to make 1000 offers after filtering 110000 offers round 110 allocate() took 51.2224ms to make 1000 offers after filtering 111000 offers round 111 allocate() took 46.8986ms to make 1000 offers after filtering 112000 offers round 112 allocate() took 44.2902ms to make 1000 offers after filtering 113000 offers round 113 allocate() took 44.7367ms to make 1000 offers after filtering 114000 offers round 114 allocate() took 47.1476ms to make 1000 offers after filtering 115000 offers round 115 allocate() took 47.6537ms to make 1000 offers after filtering 116000 offers round 116 allocate() took 47.3911ms to make 1000 offers after filtering 117000 offers round 117 allocate() took 44.0588ms to make 1000 offers after filtering 118000 offers round 118 allocate() took 47.8907ms to make 1000 offers after filtering 119000 offers round 119 allocate() took 45.273ms to make 1000 offers after filtering 120000 offers round 120 allocate() took 61.2225ms to make 1000 offers after filtering 121000 offers round 121 allocate() took 49.7682ms to make 1000 offers after filtering 122000 offers round 122 allocate() took 46.3266ms to make 1000 offers after filtering 123000 offers round 123 allocate() took 44.6682ms to make 1000 offers after filtering 124000 offers round 124 allocate() took 43.9654ms to make 1000 offers after filtering 125000 offers round 125 allocate() took 45.2944ms to make 1000 offers after filtering 126000 offers round 126 allocate() took 47.8649ms to make 1000 offers after filtering 127000 offers round 127 allocate() took 42.3189ms to make 1000 offers after filtering 128000 offers round 128 allocate() took 45.1303ms to make 1000 offers after filtering 129000 offers round 129 allocate() took 43.8637ms to make 1000 offers after filtering 130000 offers round 130 allocate() took 48.1541ms to make 1000 offers after filtering 131000 offers round 131 allocate() took 48.3953ms to make 1000 offers after filtering 132000 offers round 132 allocate() took 44.4208ms to make 1000 offers after filtering 133000 offers round 133 allocate() took 49.7805ms to make 1000 offers after filtering 134000 offers round 134 allocate() took 46.1338ms to make 1000 offers after filtering 135000 offers round 135 allocate() took 47.4951ms to make 1000 offers after filtering 136000 offers round 136 allocate() took 48.5481ms to make 1000 offers after filtering 137000 offers round 137 allocate() took 47.127ms to make 1000 offers after filtering 138000 offers round 138 allocate() took 49.8715ms to make 1000 offers after filtering 139000 offers round 139 allocate() took 49.8043ms to make 1000 offers after filtering 140000 offers round 140 allocate() took 50.6905ms to make 1000 offers after filtering 141000 offers round 141 allocate() took 48.438ms to make 1000 offers after filtering 142000 offers round 142 allocate() took 49.9246ms to make 1000 offers after filtering 143000 offers round 143 allocate() took 45.3852ms to make 1000 offers after filtering 144000 offers round 144 allocate() took 48.4808ms to make 1000 offers after filtering 145000 offers round 145 allocate() took 49.4795ms to make 1000 offers after filtering 146000 offers round 146 allocate() took 46.4664ms to make 1000 offers after filtering 147000 offers round 147 allocate() took 45.796ms to make 1000 offers after filtering 148000 offers round 148 allocate() took 50.8549ms to make 1000 offers after filtering 149000 offers round 149 allocate() took 47.307ms to make 1000 offers after filtering 150000 offers round 150 allocate() took 50.3633ms to make 1000 offers after filtering 151000 offers round 151 allocate() took 44.0746ms to make 1000 offers after filtering 152000 offers round 152 allocate() took 50.5557ms to make 1000 offers after filtering 153000 offers round 153 allocate() took 49.0232ms to make 1000 offers after filtering 154000 offers round 154 allocate() took 50.4216ms to make 1000 offers after filtering 155000 offers round 155 allocate() took 49.1707ms to make 1000 offers after filtering 156000 offers round 156 allocate() took 46.3999ms to make 1000 offers after filtering 157000 offers round 157 allocate() took 55.3348ms to make 1000 offers after filtering 158000 offers round 158 allocate() took 46.5126ms to make 1000 offers after filtering 159000 offers round 159 allocate() took 48.4435ms to make 1000 offers after filtering 160000 offers round 160 allocate() took 51.8479ms to make 1000 offers after filtering 161000 offers round 161 allocate() took 48.0845ms to make 1000 offers after filtering 162000 offers round 162 allocate() took 51.2825ms to make 1000 offers after filtering 163000 offers round 163 allocate() took 52.404ms to make 1000 offers after filtering 164000 offers round 164 allocate() took 51.8101ms to make 1000 offers after filtering 165000 offers round 165 allocate() took 48.5931ms to make 1000 offers after filtering 166000 offers round 166 allocate() took 54.2642ms to make 1000 offers after filtering 167000 offers round 167 allocate() took 51.5216ms to make 1000 offers after filtering 168000 offers round 168 allocate() took 52.9872ms to make 1000 offers after filtering 169000 offers round 169 allocate() took 50.1876ms to make 1000 offers after filtering 170000 offers round 170 allocate() took 48.3152ms to make 1000 offers after filtering 171000 offers round 171 allocate() took 50.1136ms to make 1000 offers after filtering 172000 offers round 172 allocate() took 48.0973ms to make 1000 offers after filtering 173000 offers round 173 allocate() took 54.444ms to make 1000 offers after filtering 174000 offers round 174 allocate() took 50.5152ms to make 1000 offers after filtering 175000 offers round 175 allocate() took 45.3613ms to make 1000 offers after filtering 176000 offers round 176 allocate() took 51.7628ms to make 1000 offers after filtering 177000 offers round 177 allocate() took 52.1021ms to make 1000 offers after filtering 178000 offers round 178 allocate() took 50.2592ms to make 1000 offers after filtering 179000 offers round 179 allocate() took 52.5312ms to make 1000 offers after filtering 180000 offers round 180 allocate() took 47.6698ms to make 1000 offers after filtering 181000 offers round 181 allocate() took 52.2107ms to make 1000 offers after filtering 182000 offers round 182 allocate() took 49.881ms to make 1000 offers after filtering 183000 offers round 183 allocate() took 52.3005ms to make 1000 offers after filtering 184000 offers round 184 allocate() took 47.7453ms to make 1000 offers after filtering 185000 offers round 185 allocate() took 53.0344ms to make 1000 offers after filtering 186000 offers round 186 allocate() took 53.6779ms to make 1000 offers after filtering 187000 offers round 187 allocate() took 53.3131ms to make 1000 offers after filtering 188000 offers round 188 allocate() took 53.8281ms to make 1000 offers after filtering 189000 offers round 189 allocate() took 52.3641ms to make 1000 offers after filtering 190000 offers round 190 allocate() took 51.992ms to make 1000 offers after filtering 191000 offers round 191 allocate() took 50.2624ms to make 1000 offers after filtering 192000 offers round 192 allocate() took 66.0229ms to make 1000 offers after filtering 193000 offers round 193 allocate() took 54.5283ms to make 1000 offers after filtering 194000 offers round 194 allocate() took 48.5434ms to make 1000 offers after filtering 195000 offers round 195 allocate() took 46.7207ms to make 1000 offers after filtering 196000 offers round 196 allocate() took 53.0438ms to make 1000 offers after filtering 197000 offers round 197 allocate() took 49.0459ms to make 1000 offers after filtering 198000 offers round 198 allocate() took 50.0324ms to make 1000 offers after filtering 199000 offers round 199 allocate() took 46.2716ms to make 1000 offers after filtering 200000 offers round 200 allocate() took 52.332ms to make 1000 offers after filtering 201000 offers round 201 allocate() took 53.488ms to make 1000 offers after filtering 202000 offers round 202 allocate() took 52.0786ms to make 1000 offers after filtering 203000 offers round 203 allocate() took 55.5281ms to make 1000 offers after filtering 204000 offers round 204 allocate() took 52.5077ms to make 1000 offers after filtering 205000 offers round 205 allocate() took 60.0233ms to make 1000 offers after filtering 206000 offers round 206 allocate() took 49.8637ms to make 1000 offers after filtering 207000 offers round 207 allocate() took 50.9123ms to make 1000 offers after filtering 208000 offers round 208 allocate() took 57.8844ms to make 1000 offers after filtering 209000 offers round 209 allocate() took 54.0757ms to make 1000 offers after filtering 210000 offers round 210 allocate() took 57.3428ms to make 1000 offers after filtering 211000 offers round 211 allocate() took 54.9045ms to make 1000 offers after filtering 212000 offers round 212 allocate() took 53.7657ms to make 1000 offers after filtering 213000 offers round 213 allocate() took 53.1281ms to make 1000 offers after filtering 214000 offers round 214 allocate() took 54.8563ms to make 1000 offers after filtering 215000 offers round 215 allocate() took 50.8815ms to make 1000 offers after filtering 216000 offers round 216 allocate() took 50.6735ms to make 1000 offers after filtering 217000 offers round 217 allocate() took 59.0934ms to make 1000 offers after filtering 218000 offers round 218 allocate() took 53.812ms to make 1000 offers after filtering 219000 offers round 219 allocate() took 52.406ms to make 1000 offers after filtering 220000 offers round 220 allocate() took 50.8577ms to make 1000 offers after filtering 221000 offers round 221 allocate() took 49.9648ms to make 1000 offers after filtering 222000 offers round 222 allocate() took 53.9701ms to make 1000 offers after filtering 223000 offers round 223 allocate() took 55.0261ms to make 1000 offers after filtering 224000 offers round 224 allocate() took 49.8903ms to make 1000 offers after filtering 225000 offers round 225 allocate() took 56.6535ms to make 1000 offers after filtering 226000 offers round 226 allocate() took 55.405ms to make 1000 offers after filtering 227000 offers round 227 allocate() took 56.8477ms to make 1000 offers after filtering 228000 offers round 228 allocate() took 56.2507ms to make 1000 offers after filtering 229000 offers round 229 allocate() took 74.023ms to make 1000 offers after filtering 230000 offers round 230 allocate() took 60.1671ms to make 1000 offers after filtering 231000 offers round 231 allocate() took 63.4994ms to make 1000 offers after filtering 232000 offers round 232 allocate() took 54.0506ms to make 1000 offers after filtering 233000 offers round 233 allocate() took 65.1516ms to make 1000 offers after filtering 234000 offers round 234 allocate() took 62.9092ms to make 1000 offers after filtering 235000 offers round 235 allocate() took 63.1723ms to make 1000 offers after filtering 236000 offers round 236 allocate() took 64.0823ms to make 1000 offers after filtering 237000 offers round 237 allocate() took 61.7044ms to make 1000 offers after filtering 238000 offers round 238 allocate() took 62.7199ms to make 1000 offers after filtering 239000 offers round 239 allocate() took 57.2652ms to make 1000 offers after filtering 240000 offers round 240 allocate() took 68.0861ms to make 1000 offers after filtering 241000 offers round 241 allocate() took 65.3346ms to make 1000 offers after filtering 242000 offers round 242 allocate() took 56.1819ms to make 1000 offers after filtering 243000 offers round 243 allocate() took 56.3008ms to make 1000 offers after filtering 244000 offers round 244 allocate() took 61.102ms to make 1000 offers after filtering 245000 offers round 245 allocate() took 59.6332ms to make 1000 offers after filtering 246000 offers round 246 allocate() took 61.6356ms to make 1000 offers after filtering 247000 offers round 247 allocate() took 61.4362ms to make 1000 offers after filtering 248000 offers round 248 allocate() took 53.8474ms to make 1000 offers after filtering 249000 offers round 249 allocate() took 52.8345ms to make 1000 offers after filtering 250000 offers round 250 allocate() took 59.6213ms to make 1000 offers after filtering 251000 offers round 251 allocate() took 54.8179ms to make 1000 offers after filtering 252000 offers round 252 allocate() took 58.3169ms to make 1000 offers after filtering 253000 offers round 253 allocate() took 60.5552ms to make 1000 offers after filtering 254000 offers round 254 allocate() took 56.5472ms to make 1000 offers after filtering 255000 offers round 255 allocate() took 69.2071ms to make 1000 offers after filtering 256000 offers round 256 allocate() took 54.4318ms to make 1000 offers after filtering 257000 offers round 257 allocate() took 59.9878ms to make 1000 offers after filtering 258000 offers round 258 allocate() took 61.0531ms to make 1000 offers after filtering 259000 offers round 259 allocate() took 58.1038ms to make 1000 offers after filtering 260000 offers round 260 allocate() took 60.3954ms to make 1000 offers after filtering 261000 offers round 261 allocate() took 58.6118ms to make 1000 offers after filtering 262000 offers round 262 allocate() took 54.1498ms to make 1000 offers after filtering 263000 offers round 263 allocate() took 58.3219ms to make 1000 offers after filtering 264000 offers round 264 allocate() took 58.4455ms to make 1000 offers after filtering 265000 offers round 265 allocate() took 61.308ms to make 1000 offers after filtering 266000 offers round 266 allocate() took 58.1951ms to make 1000 offers after filtering 267000 offers round 267 allocate() took 53.3768ms to make 1000 offers after filtering 268000 offers round 268 allocate() took 55.8097ms to make 1000 offers after filtering 269000 offers round 269 allocate() took 55.7061ms to make 1000 offers after filtering 270000 offers round 270 allocate() took 59.2165ms to make 1000 offers after filtering 271000 offers round 271 allocate() took 58.9237ms to make 1000 offers after filtering 272000 offers round 272 allocate() took 61.3869ms to make 1000 offers after filtering 273000 offers round 273 allocate() took 61.8158ms to make 1000 offers after filtering 274000 offers round 274 allocate() took 60.8892ms to make 1000 offers after filtering 275000 offers round 275 allocate() took 63.0093ms to make 1000 offers after filtering 276000 offers round 276 allocate() took 61.137ms to make 1000 offers after filtering 277000 offers round 277 allocate() took 57.0159ms to make 1000 offers after filtering 278000 offers round 278 allocate() took 60.8722ms to make 1000 offers after filtering 279000 offers round 279 allocate() took 60.0379ms to make 1000 offers after filtering 280000 offers round 280 allocate() took 57.8231ms to make 1000 offers after filtering 281000 offers round 281 allocate() took 62.3983ms to make 1000 offers after filtering 282000 offers round 282 allocate() took 64.023ms to make 1000 offers after filtering 283000 offers round 283 allocate() took 64.8685ms to make 1000 offers after filtering 284000 offers round 284 allocate() took 62.5301ms to make 1000 offers after filtering 285000 offers round 285 allocate() took 55.9546ms to make 1000 offers after filtering 286000 offers round 286 allocate() took 63.0944ms to make 1000 offers after filtering 287000 offers round 287 allocate() took 59.6808ms to make 1000 offers after filtering 288000 offers round 288 allocate() took 74.7162ms to make 1000 offers after filtering 289000 offers round 289 allocate() took 77.3274ms to make 1000 offers after filtering 290000 offers round 290 allocate() took 75.3333ms to make 1000 offers after filtering 291000 offers round 291 allocate() took 62.4031ms to make 1000 offers after filtering 292000 offers round 292 allocate() took 68.3909ms to make 1000 offers after filtering 293000 offers round 293 allocate() took 70.0587ms to make 1000 offers after filtering 294000 offers round 294 allocate() took 71.2835ms to make 1000 offers after filtering 295000 offers round 295 allocate() took 70.9114ms to make 1000 offers after filtering 296000 offers round 296 allocate() took 72.9122ms to make 1000 offers after filtering 297000 offers round 297 allocate() took 60.7703ms to make 1000 offers after filtering 298000 offers round 298 allocate() took 69.9671ms to make 1000 offers after filtering 299000 offers round 299 allocate() took 74.8219ms to make 1000 offers after filtering 300000 offers round 300 allocate() took 68.2744ms to make 1000 offers after filtering 301000 offers round 301 allocate() took 70.5552ms to make 1000 offers after filtering 302000 offers round 302 allocate() took 65.0067ms to make 1000 offers after filtering 303000 offers round 303 allocate() took 72.0208ms to make 1000 offers after filtering 304000 offers round 304 allocate() took 76.8248ms to make 1000 offers after filtering 305000 offers round 305 allocate() took 74.9493ms to make 1000 offers after filtering 306000 offers round 306 allocate() took 81.5447ms to make 1000 offers after filtering 307000 offers round 307 allocate() took 77.949ms to make 1000 offers after filtering 308000 offers round 308 allocate() took 76.6079ms to make 1000 offers after filtering 309000 offers round 309 allocate() took 74.3411ms to make 1000 offers after filtering 310000 offers round 310 allocate() took 66.6751ms to make 1000 offers after filtering 311000 offers round 311 allocate() took 66.7913ms to make 1000 offers after filtering 312000 offers round 312 allocate() took 73.7461ms to make 1000 offers after filtering 313000 offers round 313 allocate() took 72.1125ms to make 1000 offers after filtering 314000 offers round 314 allocate() took 78.8456ms to make 1000 offers after filtering 315000 offers round 315 allocate() took 64.3293ms to make 1000 offers after filtering 316000 offers round 316 allocate() took 72.4045ms to make 1000 offers after filtering 317000 offers round 317 allocate() took 66.9968ms to make 1000 offers after filtering 318000 offers round 318 allocate() took 70.4469ms to make 1000 offers after filtering 319000 offers round 319 allocate() took 68.3307ms to make 1000 offers after filtering 320000 offers round 320 allocate() took 72.4486ms to make 1000 offers after filtering 321000 offers round 321 allocate() took 75.7555ms to make 1000 offers after filtering 322000 offers round 322 allocate() took 69.0754ms to make 1000 offers after filtering 323000 offers round 323 allocate() took 74.8703ms to make 1000 offers after filtering 324000 offers round 324 allocate() took 73.7952ms to make 1000 offers after filtering 325000 offers round 325 allocate() took 76.2883ms to make 1000 offers after filtering 326000 offers round 326 allocate() took 68.6875ms to make 1000 offers after filtering 327000 offers round 327 allocate() took 71.121ms to make 1000 offers after filtering 328000 offers round 328 allocate() took 70.3335ms to make 1000 offers after filtering 329000 offers round 329 allocate() took 68.0637ms to make 1000 offers after filtering 330000 offers round 330 allocate() took 76.386ms to make 1000 offers after filtering 331000 offers round 331 allocate() took 75.1233ms to make 1000 offers after filtering 332000 offers round 332 allocate() took 79.4195ms to make 1000 offers after filtering 333000 offers round 333 allocate() took 74.3742ms to make 1000 offers after filtering 334000 offers round 334 allocate() took 74.7608ms to make 1000 offers after filtering 335000 offers round 335 allocate() took 75.1096ms to make 1000 offers after filtering 336000 offers round 336 allocate() took 75.8252ms to make 1000 offers after filtering 337000 offers round 337 allocate() took 78.2447ms to make 1000 offers after filtering 338000 offers round 338 allocate() took 75.4693ms to make 1000 offers after filtering 339000 offers round 339 allocate() took 73.4176ms to make 1000 offers after filtering 340000 offers round 340 allocate() took 75.0436ms to make 1000 offers after filtering 341000 offers round 341 allocate() took 72.1833ms to make 1000 offers after filtering 342000 offers round 342 allocate() took 75.8582ms to make 1000 offers after filtering 343000 offers round 343 allocate() took 85.0995ms to make 1000 offers after filtering 344000 offers round 344 allocate() took 78.8433ms to make 1000 offers after filtering 345000 offers round 345 allocate() took 83.115ms to make 1000 offers after filtering 346000 offers round 346 allocate() took 80.5135ms to make 1000 offers after filtering 347000 offers round 347 allocate() took 82.9217ms to make 1000 offers after filtering 348000 offers round 348 allocate() took 73.8033ms to make 1000 offers after filtering 349000 offers round 349 allocate() took 82.5932ms to make 1000 offers after filtering 350000 offers round 350 allocate() took 75.9056ms to make 1000 offers after filtering 351000 offers round 351 allocate() took 87.0434ms to make 1000 offers after filtering 352000 offers round 352 allocate() took 82.3068ms to make 1000 offers after filtering 353000 offers round 353 allocate() took 83.9715ms to make 1000 offers after filtering 354000 offers round 354 allocate() took 109.859ms to make 1000 offers after filtering 355000 offers round 355 allocate() took 82.8202ms to make 1000 offers after filtering 356000 offers round 356 allocate() took 87.9937ms to make 1000 offers after filtering 357000 offers round 357 allocate() took 85.5557ms to make 1000 offers after filtering 358000 offers round 358 allocate() took 88.6185ms to make 1000 offers after filtering 359000 offers round 359 allocate() took 82.1789ms to make 1000 offers after filtering 360000 offers round 360 allocate() took 85.2816ms to make 1000 offers after filtering 361000 offers round 361 allocate() took 86.9197ms to make 1000 offers after filtering 362000 offers round 362 allocate() took 83.4324ms to make 1000 offers after filtering 363000 offers round 363 allocate() took 84.1309ms to make 1000 offers after filtering 364000 offers round 364 allocate() took 85.9331ms to make 1000 offers after filtering 365000 offers round 365 allocate() took 94.0053ms to make 1000 offers after filtering 366000 offers round 366 allocate() took 90.5514ms to make 1000 offers after filtering 367000 offers round 367 allocate() took 94.5562ms to make 1000 offers after filtering 368000 offers round 368 allocate() took 88.5705ms to make 1000 offers after filtering 369000 offers round 369 allocate() took 97.0825ms to make 1000 offers after filtering 370000 offers round 370 allocate() took 87.8231ms to make 1000 offers after filtering 371000 offers round 371 allocate() took 97.189ms to make 1000 offers after filtering 372000 offers round 372 allocate() took 98.5036ms to make 1000 offers after filtering 373000 offers round 373 allocate() took 99.4369ms to make 1000 offers after filtering 374000 offers round 374 allocate() took 114.533ms to make 1000 offers after filtering 375000 offers round 375 allocate() took 101.366ms to make 1000 offers after filtering 376000 offers round 376 allocate() took 99.414ms to make 1000 offers after filtering 377000 offers round 377 allocate() took 113.102ms to make 1000 offers after filtering 378000 offers round 378 allocate() took 116.005ms to make 1000 offers after filtering 379000 offers round 379 allocate() took 124.245ms to make 1000 offers after filtering 380000 offers round 380 allocate() took 132.603ms to make 1000 offers after filtering 381000 offers round 381 allocate() took 126.536ms to make 1000 offers after filtering 382000 offers round 382 allocate() took 105.934ms to make 1000 offers after filtering 383000 offers round 383 allocate() took 123.358ms to make 1000 offers after filtering 384000 offers round 384 allocate() took 105.557ms to make 1000 offers after filtering 385000 offers round 385 allocate() took 138.488ms to make 1000 offers after filtering 386000 offers round 386 allocate() took 119.339ms to make 1000 offers after filtering 387000 offers round 387 allocate() took 108.765ms to make 1000 offers after filtering 388000 offers round 388 allocate() took 113.331ms to make 1000 offers after filtering 389000 offers round 389 allocate() took 112.462ms to make 1000 offers after filtering 390000 offers round 390 allocate() took 154.263ms to make 1000 offers after filtering 391000 offers round 391 allocate() took 116.572ms to make 1000 offers after filtering 392000 offers round 392 allocate() took 133.71ms to make 1000 offers after filtering 393000 offers round 393 allocate() took 124.824ms to make 1000 offers after filtering 394000 offers round 394 allocate() took 128.796ms to make 1000 offers after filtering 395000 offers round 395 allocate() took 142.296ms to make 1000 offers after filtering 396000 offers round 396 allocate() took 143.066ms to make 1000 offers after filtering 397000 offers round 397 allocate() took 118.412ms to make 1000 offers after filtering 398000 offers round 398 allocate() took 129.187ms to make 1000 offers after filtering 399000 offers round 399 allocate() took 121.089ms to make 1000 offers after filtering 400000 offers round 400 allocate() took 136.114ms to make 1000 offers after filtering 401000 offers round 401 allocate() took 135.352ms to make 1000 offers after filtering 402000 offers round 402 allocate() took 138.745ms to make 1000 offers after filtering 403000 offers round 403 allocate() took 135.666ms to make 1000 offers after filtering 404000 offers round 404 allocate() took 131.106ms to make 1000 offers after filtering 405000 offers round 405 allocate() took 132.718ms to make 1000 offers after filtering 406000 offers round 406 allocate() took 134.443ms to make 1000 offers after filtering 407000 offers round 407 allocate() took 129.356ms to make 1000 offers after filtering 408000 offers round 408 allocate() took 133.507ms to make 1000 offers after filtering 409000 offers round 409 allocate() took 136.21ms to make 1000 offers after filtering 410000 offers round 410 allocate() took 130.856ms to make 1000 offers after filtering 411000 offers round 411 allocate() took 129.093ms to make 1000 offers after filtering 412000 offers round 412 allocate() took 136.277ms to make 1000 offers after filtering 413000 offers round 413 allocate() took 139.616ms to make 1000 offers after filtering 414000 offers round 414 allocate() took 138.172ms to make 1000 offers after filtering 415000 offers round 415 allocate() took 134.04ms to make 1000 offers after filtering 416000 offers round 416 allocate() took 145.244ms to make 1000 offers after filtering 417000 offers round 417 allocate() took 146.887ms to make 1000 offers after filtering 418000 offers round 418 allocate() took 146.104ms to make 1000 offers after filtering 419000 offers round 419 allocate() took 147.044ms to make 1000 offers after filtering 420000 offers round 420 allocate() took 152.445ms to make 1000 offers after filtering 421000 offers round 421 allocate() took 142.891ms to make 1000 offers after filtering 422000 offers round 422 allocate() took 153.533ms to make 1000 offers after filtering 423000 offers round 423 allocate() took 149.142ms to make 1000 offers after filtering 424000 offers round 424 allocate() took 153.139ms to make 1000 offers after filtering 425000 offers round 425 allocate() took 158.203ms to make 1000 offers after filtering 426000 offers round 426 allocate() took 163.556ms to make 1000 offers after filtering 427000 offers round 427 allocate() took 158.038ms to make 1000 offers after filtering 428000 offers round 428 allocate() took 165.972ms to make 1000 offers after filtering 429000 offers round 429 allocate() took 175.71ms to make 1000 offers after filtering 430000 offers round 430 allocate() took 166.335ms to make 1000 offers after filtering 431000 offers round 431 allocate() took 183.679ms to make 1000 offers after filtering 432000 offers round 432 allocate() took 172.698ms to make 1000 offers after filtering 433000 offers round 433 allocate() took 180.058ms to make 1000 offers after filtering 434000 offers round 434 allocate() took 185.178ms to make 1000 offers after filtering 435000 offers round 435 allocate() took 190.323ms to make 1000 offers after filtering 436000 offers round 436 allocate() took 200.982ms to make 1000 offers after filtering 437000 offers round 437 allocate() took 198.275ms to make 1000 offers after filtering 438000 offers round 438 allocate() took 198.384ms to make 1000 offers after filtering 439000 offers round 439 allocate() took 205.042ms to make 1000 offers after filtering 440000 offers round 440 allocate() took 207.848ms to make 1000 offers after filtering 441000 offers round 441 allocate() took 230.639ms to make 1000 offers after filtering 442000 offers round 442 allocate() took 221.931ms to make 1000 offers after filtering 443000 offers round 443 allocate() took 232.058ms to make 1000 offers after filtering 444000 offers round 444 allocate() took 228.704ms to make 1000 offers after filtering 445000 offers round 445 allocate() took 233.468ms to make 1000 offers after filtering 446000 offers round 446 allocate() took 221.769ms to make 1000 offers after filtering 447000 offers round 447 allocate() took 242.821ms to make 1000 offers after filtering 448000 offers round 448 allocate() took 243.381ms to make 1000 offers after filtering 449000 offers round 449 allocate() took 243.075ms to make 1000 offers after filtering 450000 offers round 450 allocate() took 245.789ms to make 1000 offers after filtering 451000 offers round 451 allocate() took 258.389ms to make 1000 offers after filtering 452000 offers round 452 allocate() took 284.374ms to make 1000 offers after filtering 453000 offers round 453 allocate() took 281.546ms to make 1000 offers after filtering 454000 offers round 454 allocate() took 274.86ms to make 1000 offers after filtering 455000 offers round 455 allocate() took 288.194ms to make 1000 offers after filtering 456000 offers round 456 allocate() took 285.424ms to make 1000 offers after filtering 457000 offers round 457 allocate() took 266.685ms to make 1000 offers after filtering 458000 offers round 458 allocate() took 287.669ms to make 1000 offers after filtering 459000 offers round 459 allocate() took 299.513ms to make 1000 offers after filtering 460000 offers round 460 allocate() took 303.283ms to make 1000 offers after filtering 461000 offers round 461 allocate() took 285.474ms to make 1000 offers after filtering 462000 offers round 462 allocate() took 342.471ms to make 1000 offers after filtering 463000 offers round 463 allocate() took 357.079ms to make 1000 offers after filtering 464000 offers round 464 allocate() took 352.112ms to make 1000 offers after filtering 465000 offers round 465 allocate() took 350.205ms to make 1000 offers after filtering 466000 offers round 466 allocate() took 346.204ms to make 1000 offers after filtering 467000 offers round 467 allocate() took 362.89ms to make 1000 offers after filtering 468000 offers round 468 allocate() took 366.047ms to make 1000 offers after filtering 469000 offers round 469 allocate() took 364.66ms to make 1000 offers after filtering 470000 offers round 470 allocate() took 411.534ms to make 1000 offers after filtering 471000 offers round 471 allocate() took 382.851ms to make 1000 offers after filtering 472000 offers round 472 allocate() took 396.678ms to make 1000 offers after filtering 473000 offers round 473 allocate() took 558.723ms to make 1000 offers after filtering 474000 offers round 474 allocate() took 521.2ms to make 1000 offers after filtering 475000 offers round 475 allocate() took 444.368ms to make 1000 offers after filtering 476000 offers round 476 allocate() took 449.906ms to make 1000 offers after filtering 477000 offers round 477 allocate() took 437.08ms to make 1000 offers after filtering 478000 offers round 478 allocate() took 451.266ms to make 1000 offers after filtering 479000 offers round 479 allocate() took 478.493ms to make 1000 offers after filtering 480000 offers round 480 allocate() took 463.89ms to make 1000 offers after filtering 481000 offers round 481 allocate() took 479.52ms to make 1000 offers after filtering 482000 offers round 482 allocate() took 476.591ms to make 1000 offers after filtering 483000 offers round 483 allocate() took 531.664ms to make 1000 offers after filtering 484000 offers round 484 allocate() took 532.211ms to make 1000 offers after filtering 485000 offers round 485 allocate() took 540.852ms to make 1000 offers after filtering 486000 offers round 486 allocate() took 528.631ms to make 1000 offers after filtering 487000 offers round 487 allocate() took 564.454ms to make 1000 offers after filtering 488000 offers round 488 allocate() took 587.032ms to make 1000 offers after filtering 489000 offers round 489 allocate() took 598.338ms to make 1000 offers after filtering 490000 offers round 490 allocate() took 660.289ms to make 1000 offers after filtering 491000 offers round 491 allocate() took 709.551ms to make 1000 offers after filtering 492000 offers round 492 allocate() took 703.577ms to make 1000 offers after filtering 493000 offers round 493 allocate() took 754.889ms to make 1000 offers after filtering 494000 offers round 494 allocate() took 821.859ms to make 1000 offers after filtering 495000 offers round 495 allocate() took 897.899ms to make 1000 offers after filtering 496000 offers round 496 allocate() took 1038.69ms to make 1000 offers after filtering 497000 offers round 497 allocate() took 1493.36ms to make 1000 offers after filtering 498000 offers round 498 allocate() took 1566.04ms to make 1000 offers after filtering 499000 offers round 499 allocate() took 4418.08ms to make 0 offers after filtering 500000 offers [ OK ] SlaveAndFrameworkCount/HierarchicalAllocator_BENCHMARK_Test.DeclineOffers/4 (85538 ms) ``` With this patch the parts excercised in that benchmark seem to take _on average_ 3% more time but with about a 10% spread (i.e., some scenarios become faster which this patch, some slower). I attached a maybe easier to digest plot to this patch. > On Jan. 29, 2019, 9:37 p.m., Benjamin Mahler wrote: > > src/master/allocator/mesos/hierarchical.cpp > > Lines 2400-2409 (patched) > > <https://reviews.apache.org/r/69821/diff/2/?file=2123196#file2123196line2415> > > > > Hm.. what's this? Are you suggesting that the allocatable check should > > be moved within isFiltered? (seems like a good idea to me) This was some work-in-progress code I didn't remove. It is gone now and not needed here. Re: merging `isFiltered` and `allocatable`, while they both act as filters, they work differently. While filters during the offer cycle change over time, the constraints from `allocatable` are static. For that reason it seems to make more sense to keep them separate for now. > On Jan. 29, 2019, 9:37 p.m., Benjamin Mahler wrote: > > src/tests/hierarchical_allocator_tests.cpp > > Lines 2287-2289 (patched) > > <https://reviews.apache.org/r/69821/diff/2/?file=2123197#file2123197line2287> > > > > Can you pull the tests into a separate review to simplify reviewing? I'd prefer to the change with the test. I do believe this makes it easier to review this patch (now or in the future) as one can see both the implementation changes and their intended behavior. > On Jan. 29, 2019, 9:37 p.m., Benjamin Mahler wrote: > > src/tests/hierarchical_allocator_tests.cpp > > Lines 2289 (patched) > > <https://reviews.apache.org/r/69821/diff/2/?file=2123197#file2123197line2289> > > > > FrameworkMinAllocatable ???????? > On Jan. 29, 2019, 9:37 p.m., Benjamin Mahler wrote: > > src/tests/hierarchical_allocator_tests.cpp > > Lines 2336 (patched) > > <https://reviews.apache.org/r/69821/diff/2/?file=2123197#file2123197line2336> > > > > FrameworkEmptyMinAllocatable ???????? > On Jan. 29, 2019, 9:37 p.m., Benjamin Mahler wrote: > > src/tests/hierarchical_allocator_tests.cpp > > Lines 2378 (patched) > > <https://reviews.apache.org/r/69821/diff/2/?file=2123197#file2123197line2378> > > > > Hm.. this doesn't quite look right to me, it seems if a framework is > > setting the `min_allocatable_resources` field, it should override, but > > that's not happening here? The test checks that a framework setting overrides; the agent resources are not `allocatable` in the default sense. Dropping. - Benjamin ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/69821/#review212421 ----------------------------------------------------------- On Jan. 31, 2019, 4:16 p.m., Benjamin Bannier wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/69821/ > ----------------------------------------------------------- > > (Updated Jan. 31, 2019, 4:16 p.m.) > > > Review request for mesos, Benjamin Mahler and Meng Zhu. > > > Bugs: MESOS-9523 > https://issues.apache.org/jira/browse/MESOS-9523 > > > Repository: mesos > > > Description > ------- > > This patch modifies the hierarchical allocator to take > framework-specified minimal allocatable resources into account. > > While previously the allocator was inspecting the minimal allocatable > resources specified in its global options, it can now also inspects > framework-specific resource requirements. With that frameworks can e.g., > configure resource requirements above the default minimal allocatable > resource, or opt into receiving resources considered too small to be > allocatable by the allocator in its default behavior. > > For that we change the hierarchical allocator's `allocatable` function > to be framework and role-specific. As that does in some places not allow > us to abort iterating over candidate resource consumers like before an > additional check on whether any resources are left in an allocation > cycle is added as a break condition. > > > Diffs > ----- > > src/master/allocator/mesos/hierarchical.hpp > 1420c2638786d85f7b04379e5d79e59990c3e6cf > src/master/allocator/mesos/hierarchical.cpp > bb9a9c95979f36c0564af5b3babb1c43077a363b > src/tests/hierarchical_allocator_tests.cpp > cc88afbad1b4e6bf707cb13b50c964aa01f9a3ee > > > Diff: https://reviews.apache.org/r/69821/diff/4/ > > > Testing > ------- > > `make check` > > > File Attachments > ---------------- > > Ratio new/old timings > > https://reviews.apache.org/media/uploaded/files/2019/01/31/d76189de-8882-4aff-956b-090dab729358__new_over_old.png > > > Thanks, > > Benjamin Bannier > >
