)]}'
{"swift/obj/updater.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"064279f3cccd6f0fda71ebef4f2006bf764a8553","unresolved":true,"context_lines":[{"line_number":409,"context_line":"                if next_action - self.begin \u003e self.interval:"},{"line_number":410,"context_line":"                    break"},{"line_number":411,"context_line":"                else:"},{"line_number":412,"context_line":"                    time.sleep(next_action - now)"},{"line_number":413,"context_line":"            yield update"},{"line_number":414,"context_line":"            elapsed \u003d time.time() - self.begin"},{"line_number":415,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"79607c6f_d4cb4569","line":412,"updated":"2021-12-13 23:40:26.000000000","message":"I\u0027m worried that we\u0027re still going to spend a bunch of time churning the queue.\n\nIn the extreme, say you\u0027ve got no global rate limit and are instead relying purely on the per-container rate limit -- you get to the end of the disk sweep and find that your deferred queue is full updates for a single container. We get to process the first update fine, but then we skip *everyone else in the queue* just so we can re-write their next_action times. We\u0027ll sleep (which is good), but when we wake up we\u0027ll blow through them all again in the same way, only actually processing *one*.","commit_id":"8191d85d9db39b4e4a3963dc1349ed99692ceed5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"b3d12ac8db0959953752140fc73c868a6f1cdb50","unresolved":true,"context_lines":[{"line_number":409,"context_line":"                if next_action - self.begin \u003e self.interval:"},{"line_number":410,"context_line":"                    break"},{"line_number":411,"context_line":"                else:"},{"line_number":412,"context_line":"                    time.sleep(next_action - now)"},{"line_number":413,"context_line":"            yield update"},{"line_number":414,"context_line":"            elapsed \u003d time.time() - self.begin"},{"line_number":415,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fdc958c1_2368ee9e","line":412,"in_reply_to":"79607c6f_d4cb4569","updated":"2021-12-14 22:48:28.000000000","message":"Yeah, I agree. At least it only iterates once then sleeps a bit, not indefinitely.  But yeah, see the point.\n\nThe follow up to this at least can pop_oldest off the priority queue.","commit_id":"8191d85d9db39b4e4a3963dc1349ed99692ceed5"}]}
