)]}'
{"swift/common/ring/builder.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"0529c5091ea975f722925ccd2fc2442833c5df2d","unresolved":false,"context_lines":[{"line_number":773,"context_line":"        \"\"\""},{"line_number":774,"context_line":"        wanted_parts_for_tier \u003d {}"},{"line_number":775,"context_line":"        for dev in self._iter_devs():"},{"line_number":776,"context_line":"            pw \u003d (max(0, dev[\u0027parts_wanted\u0027]) +"},{"line_number":777,"context_line":"                  max(int(math.ceil("},{"line_number":778,"context_line":"                      (dev[\u0027parts_wanted\u0027] + dev[\u0027parts\u0027]) * self.overload)),"},{"line_number":779,"context_line":"                      0))"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_9b66f127","side":"PARENT","line":776,"updated":"2015-07-07 22:23:00.000000000","message":"IIRC, removing the disregard of a devices negative parts_wanted here was important.","commit_id":"ccf0758ef1f362312a6197f86455f680ebd990d3"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"0529c5091ea975f722925ccd2fc2442833c5df2d","unresolved":false,"context_lines":[{"line_number":382,"context_line":"            random.seed(seed)"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        self._effective_overload \u003d min(self.overload,"},{"line_number":385,"context_line":"                                       self.get_required_overload())"},{"line_number":386,"context_line":"        self.logger.debug(\"Using effective overload of %f\","},{"line_number":387,"context_line":"                          self._effective_overload)"},{"line_number":388,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_1bc66149","line":385,"updated":"2015-07-07 22:23:00.000000000","message":"so this says there\u0027s never any reason for overload to be higher than the required overload - which makes sense I suppose.\n\nI think that highlights overload as a tool for purposely un-distributing your replicas during a topology migration - making it perhaps the worst possibly named tool in the swift operators ring toolbox.","commit_id":"2328983b7535d24d08942e62095b4346f2626566"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"d1547b6366f0f35a2de5f1063f4abdcb9b87165b","unresolved":false,"context_lines":[{"line_number":687,"context_line":"            bigness_threshold \u003d ("},{"line_number":688,"context_line":"                max_child_replicas / tier_replicas * tier_weight[tier])"},{"line_number":689,"context_line":""},{"line_number":690,"context_line":"            for child_tier in tier2children[tier]:"},{"line_number":691,"context_line":"                child_weight \u003d tier_weight[child_tier]"},{"line_number":692,"context_line":"                if child_weight \u003d\u003d 0:"},{"line_number":693,"context_line":"                    # If it\u0027s got 0 weight, it\u0027s not taking any"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_b671800e","line":690,"updated":"2015-07-08 01:32:12.000000000","message":"you should use child_tiers here seeing as you went to the trouble of pulling them out:\n\n  for child_tier in child_tiers:","commit_id":"2328983b7535d24d08942e62095b4346f2626566"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"0529c5091ea975f722925ccd2fc2442833c5df2d","unresolved":false,"context_lines":[{"line_number":1122,"context_line":"    def _n_overload_parts(self, dev):"},{"line_number":1123,"context_line":"        \"\"\""},{"line_number":1124,"context_line":"        The number of extra partitions a device can take due to overload."},{"line_number":1125,"context_line":"        \"\"\""},{"line_number":1126,"context_line":"        return max(int(math.ceil("},{"line_number":1127,"context_line":"            (dev[\u0027parts_wanted\u0027] + dev[\u0027parts\u0027])"},{"line_number":1128,"context_line":"            * self._effective_overload)), 0)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_5ba2a94c","line":1125,"updated":"2015-07-07 22:23:00.000000000","message":"This function is rather helpful.  Kudos.","commit_id":"2328983b7535d24d08942e62095b4346f2626566"}]}
