)]}'
{"swift/obj/replicator.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"90c4e20712c12400dd5255b2af3651f7693bd657","unresolved":false,"context_lines":[{"line_number":296,"context_line":"                nodes \u003d itertools.chain("},{"line_number":297,"context_line":"                    job[\u0027nodes\u0027],"},{"line_number":298,"context_line":"                    job[\u0027policy\u0027].object_ring.get_more_nodes("},{"line_number":299,"context_line":"                        int(job[\u0027partition\u0027])))"},{"line_number":300,"context_line":"                while attempts_left \u003e 0:"},{"line_number":301,"context_line":"                    node \u003d next(nodes)"},{"line_number":302,"context_line":"                    attempts_left -\u003d 1"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff346bd7_ecb2f248","line":299,"updated":"2017-07-27 19:26:58.000000000","message":"I think we should limit this iter - certainly a handoff past the proxies configured \"request_node_count\" is much to deep to be useful","commit_id":"9f1997e20e5ec734ad88347ff10f83cc08455a51"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"90c4e20712c12400dd5255b2af3651f7693bd657","unresolved":false,"context_lines":[{"line_number":301,"context_line":"                    node \u003d next(nodes)"},{"line_number":302,"context_line":"                    attempts_left -\u003d 1"},{"line_number":303,"context_line":"                    if node[\u0027id\u0027] \u003d\u003d job[\u0027device_id\u0027]:"},{"line_number":304,"context_line":"                        continue  # should stay here"},{"line_number":305,"context_line":"                    self.stats[\u0027rsync\u0027] +\u003d 1"},{"line_number":306,"context_line":"                    kwargs \u003d {}"},{"line_number":307,"context_line":"                    if node[\u0027region\u0027] in synced_remote_regions and \\"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff346bd7_0ce4163b","line":304,"updated":"2017-07-27 19:26:58.000000000","message":"if we limit the depth of our search - we could differentiate a handoff from misplaced earlier and handle the code paths (perhaps significantly) different","commit_id":"9f1997e20e5ec734ad88347ff10f83cc08455a51"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"90c4e20712c12400dd5255b2af3651f7693bd657","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                                node[\u0027replication_port\u0027],"},{"line_number":320,"context_line":"                                node[\u0027device\u0027], job[\u0027partition\u0027], \u0027REPLICATE\u0027,"},{"line_number":321,"context_line":"                                \u0027/\u0027 + \u0027-\u0027.join(suffixes), headers\u003dheaders)"},{"line_number":322,"context_line":"                            conn.getresponse().read()"},{"line_number":323,"context_line":"                        if node[\u0027region\u0027] !\u003d job[\u0027region\u0027]:"},{"line_number":324,"context_line":"                            synced_remote_regions[node[\u0027region\u0027]] \u003d viewkeys("},{"line_number":325,"context_line":"                                candidates)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff346bd7_29d90cf2","line":322,"updated":"2017-07-27 19:26:58.000000000","message":"this could cause a REPLICATE request (rehash) to a handoff node - that\u0027s probably not that helpful - i don\u0027t think there\u0027s any other nodes that would a) be trying check hashes and b) have the same hash.","commit_id":"9f1997e20e5ec734ad88347ff10f83cc08455a51"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"90c4e20712c12400dd5255b2af3651f7693bd657","unresolved":false,"context_lines":[{"line_number":324,"context_line":"                            synced_remote_regions[node[\u0027region\u0027]] \u003d viewkeys("},{"line_number":325,"context_line":"                                candidates)"},{"line_number":326,"context_line":"                    else:"},{"line_number":327,"context_line":"                        attempts_left +\u003d 1"},{"line_number":328,"context_line":"                        failure_devs_info.add((node[\u0027replication_ip\u0027],"},{"line_number":329,"context_line":"                                               node[\u0027device\u0027]))"},{"line_number":330,"context_line":"                    responses.append(success)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff346bd7_ec2f9285","line":327,"updated":"2017-07-27 19:26:58.000000000","message":"hrmm... so this is only in update_deleted - so we won\u0027t have primaries pushing to handoffs because of network issues with an overloaded primary... \n\nbut if lots of nodes in the cluster are busy we could end up smearing things (and possibly over-replicating to a non-trivial degree) across many handoffs.","commit_id":"9f1997e20e5ec734ad88347ff10f83cc08455a51"}]}
