)]}'
{"swift/account/reaper.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"affd4bf8d1dff62e36cdd864bad393b2d1b3e452","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        \"\"\""},{"line_number":115,"context_line":"        self.logger.debug(\u0027Daemon started.\u0027)"},{"line_number":116,"context_line":"        sleep(random.random() * self.interval)"},{"line_number":117,"context_line":"        self.shard_containers \u003d True"},{"line_number":118,"context_line":"        while True:"},{"line_number":119,"context_line":"            begin \u003d time()"},{"line_number":120,"context_line":"            self.run_once()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_53685f21","line":117,"updated":"2015-08-01 00:49:24.000000000","message":"not quite sure I understand why it\u0027s useful for run once mode to only process accounts for which it\u0027s the primary.  It still doesn\u0027t do *all* of them - it\u0027d be a change in which subset it does to match the same subset it does in run once mode.","commit_id":"9b47390a52639f4bd15b2ba346746c5202f306ce"},{"author":{"_account_id":995,"name":"David Goetz","email":"david.goetz@rackspace.com","username":"david-goetz"},"change_message_id":"422378aeb1df83d4e9ffca4e1ca318588801cf48","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        \"\"\""},{"line_number":115,"context_line":"        self.logger.debug(\u0027Daemon started.\u0027)"},{"line_number":116,"context_line":"        sleep(random.random() * self.interval)"},{"line_number":117,"context_line":"        self.shard_containers \u003d True"},{"line_number":118,"context_line":"        while True:"},{"line_number":119,"context_line":"            begin \u003d time()"},{"line_number":120,"context_line":"            self.run_once()"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_d03b25d0","line":117,"in_reply_to":"3a50d1a3_53685f21","updated":"2015-08-04 16:47:54.000000000","message":"i was hoping run_once would just stay the way it used to work.","commit_id":"9b47390a52639f4bd15b2ba346746c5202f306ce"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"affd4bf8d1dff62e36cdd864bad393b2d1b3e452","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                    break"},{"line_number":178,"context_line":"            else:"},{"line_number":179,"context_line":"                continue"},{"line_number":180,"context_line":"            if not (self.shard_containers or container_shard \u003d\u003d 0):"},{"line_number":181,"context_line":"                # if you are not sharding containers, only process if this is"},{"line_number":182,"context_line":"                # the primary account node"},{"line_number":183,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_935ca77e","line":180,"updated":"2015-08-01 00:49:24.000000000","message":"oh that\u0027s trixy, starts at -1 but nodes is never empty.\n\nmaybe start at zero and incr after the break?  or just use enumerate?","commit_id":"9b47390a52639f4bd15b2ba346746c5202f306ce"},{"author":{"_account_id":995,"name":"David Goetz","email":"david.goetz@rackspace.com","username":"david-goetz"},"change_message_id":"422378aeb1df83d4e9ffca4e1ca318588801cf48","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                    break"},{"line_number":178,"context_line":"            else:"},{"line_number":179,"context_line":"                continue"},{"line_number":180,"context_line":"            if not (self.shard_containers or container_shard \u003d\u003d 0):"},{"line_number":181,"context_line":"                # if you are not sharding containers, only process if this is"},{"line_number":182,"context_line":"                # the primary account node"},{"line_number":183,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_b019b97b","line":180,"in_reply_to":"3a50d1a3_935ca77e","updated":"2015-08-04 16:47:54.000000000","message":"ya thats ugly.","commit_id":"9b47390a52639f4bd15b2ba346746c5202f306ce"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"affd4bf8d1dff62e36cdd864bad393b2d1b3e452","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        self.reset_stats()"},{"line_number":260,"context_line":"        container_limit \u003d 1000"},{"line_number":261,"context_line":"        if self.shard_containers:"},{"line_number":262,"context_line":"            container_limit *\u003d len(nodes)"},{"line_number":263,"context_line":"        try:"},{"line_number":264,"context_line":"            marker \u003d \u0027\u0027"},{"line_number":265,"context_line":"            while True:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_53fdbf39","line":262,"updated":"2015-08-01 00:49:24.000000000","message":"I don\u0027t quite understand the justification for this change either :\\\n\nI guess that when doing sharding you\u0027d do less work per listing but... well I think that\u0027d be ok?","commit_id":"9b47390a52639f4bd15b2ba346746c5202f306ce"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"8694f1b30b06c795c6515b929d59351b757c5f6c","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        self.reset_stats()"},{"line_number":260,"context_line":"        container_limit \u003d 1000"},{"line_number":261,"context_line":"        if self.shard_containers:"},{"line_number":262,"context_line":"            container_limit *\u003d len(nodes)"},{"line_number":263,"context_line":"        try:"},{"line_number":264,"context_line":"            marker \u003d \u0027\u0027"},{"line_number":265,"context_line":"            while True:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_76bb5fc5","line":262,"in_reply_to":"1a4dcd0f_6793b0fb","updated":"2015-08-03 22:25:24.000000000","message":"sorry yeah, I meant \"if you don\u0027t make container limit bigger you\u0027d work on less containers per call to GET account\" - but I think with 300+ containers that you\u0027ll need to work on account listing you\u0027ll mostly be busy enough that the number of account listings really won\u0027t matter all that much at all.\n\nI just took it out in the follow on patch?\n\nFWIW I think you can *ask* for 11K containers in the response, you just only get back 10K.","commit_id":"9b47390a52639f4bd15b2ba346746c5202f306ce"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"dc703e891901832aaa5e827f0f8305912b2847ca","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        self.reset_stats()"},{"line_number":260,"context_line":"        container_limit \u003d 1000"},{"line_number":261,"context_line":"        if self.shard_containers:"},{"line_number":262,"context_line":"            container_limit *\u003d len(nodes)"},{"line_number":263,"context_line":"        try:"},{"line_number":264,"context_line":"            marker \u003d \u0027\u0027"},{"line_number":265,"context_line":"            while True:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_6793b0fb","line":262,"in_reply_to":"3a50d1a3_53fdbf39","updated":"2015-08-03 22:09:40.000000000","message":"This makes you do the same amount of work per listing. If you\u0027re N-way sharding, then grab N-thousand items so your subset is 1000 (ish).\n\nI could see doing less work per request if you\u0027re sharding, but keeping it the same also makes sense IMO.\n\nThe only time this\u0027ll break is when you have 11 or more shards; then the listing will either be ignored or possibly result in a 400; I don\u0027t know which and I don\u0027t really care. If you\u0027ve got 11 shards, that means 11 account replicas, and that means you\u0027ve gone crazy.","commit_id":"9b47390a52639f4bd15b2ba346746c5202f306ce"}],"test/unit/account/test_reaper.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"affd4bf8d1dff62e36cdd864bad393b2d1b3e452","unresolved":false,"context_lines":[{"line_number":602,"context_line":"                     fake_reap_account),"},{"line_number":603,"context_line":"               ]"},{"line_number":604,"context_line":"        r.shard_containers \u003d True"},{"line_number":605,"context_line":"        with nested(*ctx):"},{"line_number":606,"context_line":"            r.reap_device(\u0027sda1\u0027)"},{"line_number":607,"context_line":"        # 10.10.10.2 is second node from ring"},{"line_number":608,"context_line":"        self.assertEqual(container_shard_used[0], 1)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_b311a3b1","line":605,"updated":"2015-08-01 00:49:24.000000000","message":"python 2.7 can just used the multiple context manager syntax","commit_id":"9b47390a52639f4bd15b2ba346746c5202f306ce"}]}
