)]}'
{"swift/container/sharder.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"77c5d5da63a2c5cd1114a3728bb4a283804160d3","unresolved":true,"context_lines":[{"line_number":1514,"context_line":"            # will atomically update its namespace *and* delete the donor."},{"line_number":1515,"context_line":"            # Don\u0027t do this when sharding a shard because the donor"},{"line_number":1516,"context_line":"            # namespace should not be deleted until all shards are cleaved."},{"line_number":1517,"context_line":"            if own_shard_range.update_state(ShardRange.SHRUNK):"},{"line_number":1518,"context_line":"                own_shard_range.set_deleted()"},{"line_number":1519,"context_line":"                broker.merge_shard_ranges(own_shard_range)"},{"line_number":1520,"context_line":"            shard_broker.merge_shard_ranges(own_shard_range)"}],"source_content_type":"text/x-python","patch_set":2,"id":"6cb479a2_36e81277","line":1517,"updated":"2021-02-04 20:30:26.000000000","message":"Wait, so we move to shrunk/deleted as soon as we\u0027ve cleaved *one* shard range? What about when we\u0027re shrinking overlaps and so have multiple acceptors? Will anything bad/weird happen if our batch size is 1, for example?\n\nThat delete in particular has me a little nervous.","commit_id":"55544e9769b8b85314a0a206cc05ba8fdea5a267"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"bc730e27974bd33e2d0ecef96d3d3d899cf8f69f","unresolved":true,"context_lines":[{"line_number":1514,"context_line":"            # will atomically update its namespace *and* delete the donor."},{"line_number":1515,"context_line":"            # Don\u0027t do this when sharding a shard because the donor"},{"line_number":1516,"context_line":"            # namespace should not be deleted until all shards are cleaved."},{"line_number":1517,"context_line":"            if own_shard_range.update_state(ShardRange.SHRUNK):"},{"line_number":1518,"context_line":"                own_shard_range.set_deleted()"},{"line_number":1519,"context_line":"                broker.merge_shard_ranges(own_shard_range)"},{"line_number":1520,"context_line":"            shard_broker.merge_shard_ranges(own_shard_range)"}],"source_content_type":"text/x-python","patch_set":2,"id":"4b00cd22_7b67b043","line":1517,"in_reply_to":"6cb479a2_36e81277","updated":"2021-02-05 15:58:54.000000000","message":"right, that seems suspect, should probably not happen until complete_sharding\n\nof course, on master it\u0027s almost certainly OK because the bug means we only do this for normal shrinking \n\nwill fix","commit_id":"55544e9769b8b85314a0a206cc05ba8fdea5a267"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"77c5d5da63a2c5cd1114a3728bb4a283804160d3","unresolved":true,"context_lines":[{"line_number":1669,"context_line":"                modified_shard_ranges \u003d broker.get_shard_ranges("},{"line_number":1670,"context_line":"                    states\u003dShardRange.CLEAVED)"},{"line_number":1671,"context_line":"                for sr in modified_shard_ranges:"},{"line_number":1672,"context_line":"                    sr.update_state(ShardRange.ACTIVE)"},{"line_number":1673,"context_line":"            if (not broker.is_root_container() and not"},{"line_number":1674,"context_line":"                    own_shard_range.deleted):"},{"line_number":1675,"context_line":"                own_shard_range \u003d own_shard_range.copy("}],"source_content_type":"text/x-python","patch_set":2,"id":"f2d5b817_6a9fdd8a","line":1672,"updated":"2021-02-04 20:30:26.000000000","message":"This all seems to make sense, though.","commit_id":"55544e9769b8b85314a0a206cc05ba8fdea5a267"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"1e4138f91b7875eef217c309939ddf8906fb208b","unresolved":true,"context_lines":[{"line_number":1523,"context_line":"                # state. Don\u0027t do this when sharding a shard or shrinking to"},{"line_number":1524,"context_line":"                # multiple acceptors because in those cases the donor namespace"},{"line_number":1525,"context_line":"                # should not be deleted until *all* shards are cleaved."},{"line_number":1526,"context_line":"                if own_shard_range.state !\u003d ShardRange.SHRUNK:"},{"line_number":1527,"context_line":"                    own_shard_range.update_state(ShardRange.SHRUNK,"},{"line_number":1528,"context_line":"                                                 Timestamp.now())"},{"line_number":1529,"context_line":"                    own_shard_range.set_deleted()"}],"source_content_type":"text/x-python","patch_set":6,"id":"1cc25328_e1ac4e1b","line":1526,"updated":"2021-02-19 03:50:13.000000000","message":"NIT: This can only be either SHRINKING or SHRUNK. So if !\u003d SHRUNK means, if \u003d\u003d SHRINKING. And in my opinon easier to read:\n\n if own_shard_range.state \u003d\u003d ShardRange.SHRINKING:\n   own_shard_range.update_state(ShardRange.SHRUNK, Timestamp.now())\n\nBut meh, either way works I guess.","commit_id":"ded212f24f135049c4c9486987eff13a92da01a9"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"62f147795f94665d9fa98f1b0b7e67c439fcf9d5","unresolved":true,"context_lines":[{"line_number":1523,"context_line":"                # state. Don\u0027t do this when sharding a shard or shrinking to"},{"line_number":1524,"context_line":"                # multiple acceptors because in those cases the donor namespace"},{"line_number":1525,"context_line":"                # should not be deleted until *all* shards are cleaved."},{"line_number":1526,"context_line":"                if own_shard_range.state !\u003d ShardRange.SHRUNK:"},{"line_number":1527,"context_line":"                    own_shard_range.update_state(ShardRange.SHRUNK,"},{"line_number":1528,"context_line":"                                                 Timestamp.now())"},{"line_number":1529,"context_line":"                    own_shard_range.set_deleted()"}],"source_content_type":"text/x-python","patch_set":6,"id":"d3815535_516cadd6","line":1526,"in_reply_to":"1cc25328_e1ac4e1b","updated":"2021-02-19 11:43:01.000000000","message":"Done. fair point","commit_id":"ded212f24f135049c4c9486987eff13a92da01a9"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d9fdf19e1c85e5c1f7cc7769b1619965d5613b9e","unresolved":true,"context_lines":[{"line_number":1751,"context_line":"    def _complete_sharding(self, broker):"},{"line_number":1752,"context_line":"        cleaving_context \u003d CleavingContext.load(broker)"},{"line_number":1753,"context_line":"        if cleaving_context.done():"},{"line_number":1754,"context_line":"            # Move all CLEAVED shards to ACTIVE state and if a shard then"},{"line_number":1755,"context_line":"            # delete own shard range; these changes will be simultaneously"},{"line_number":1756,"context_line":"            # reported in the next update to the root container."},{"line_number":1757,"context_line":"            own_shard_range \u003d broker.get_own_shard_range()"}],"source_content_type":"text/x-python","patch_set":15,"id":"b4adf965_6296cf3f","line":1754,"updated":"2021-04-29 20:30:03.000000000","message":"This comment probably ought to be moved and/or updated.","commit_id":"29418998b74110c6c7a69b915844e6776e7e3f39"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d9fdf19e1c85e5c1f7cc7769b1619965d5613b9e","unresolved":true,"context_lines":[{"line_number":1763,"context_line":"            else:"},{"line_number":1764,"context_line":"                own_shard_range.update_state(ShardRange.SHARDED)"},{"line_number":1765,"context_line":"                modified_shard_ranges \u003d broker.get_shard_ranges("},{"line_number":1766,"context_line":"                    states\u003dShardRange.CLEAVED)"},{"line_number":1767,"context_line":"                for sr in modified_shard_ranges:"},{"line_number":1768,"context_line":"                    sr.update_state(ShardRange.ACTIVE)"},{"line_number":1769,"context_line":"            if (not broker.is_root_container() and not"}],"source_content_type":"text/x-python","patch_set":15,"id":"b38577f4_517625d2","line":1766,"updated":"2021-04-29 20:30:03.000000000","message":"Well now I\u0027ve got this worry about an old root DB popping back online, discovering it needs to shard, but in the time that it was offline, one (or more!) of the shards has started splitting up... I feel like this query ought to have an epoch or something...","commit_id":"29418998b74110c6c7a69b915844e6776e7e3f39"}]}
