)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"aa30d306e1b2b9246ba365c31753cbf1c2d46dcb","unresolved":true,"context_lines":[{"line_number":13,"context_line":"moving misplaced objects; the container-replicator creates DBs to feed"},{"line_number":14,"context_line":"misplaced objects to the reconciler. These DBs can distorts insights"},{"line_number":15,"context_line":"into rebalance progress. Emitting stats will help quantify any such"},{"line_number":16,"context_line":"distortion."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"New sharder stats are:"},{"line_number":19,"context_line":"    cleaved_db_created"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"d795adef_39aa3def","line":16,"updated":"2022-07-29 22:33:50.000000000","message":"Should we also add stats for cleaved/misplaced DBs that were successfully replicated and deleted?\n\nNow that I think about it, it\u0027s a little funny that we let the reconciler DBs hang around until the replicator gets around to them.","commit_id":"289f59416f964cf705e10c24dbd566c6767c8726"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0c3148c4e2859c8fc97dc240c66d0bc8fbf57a0d","unresolved":true,"context_lines":[{"line_number":13,"context_line":"moving misplaced objects; the container-replicator creates DBs to feed"},{"line_number":14,"context_line":"misplaced objects to the reconciler. These DBs can distorts insights"},{"line_number":15,"context_line":"into rebalance progress. Emitting stats will help quantify any such"},{"line_number":16,"context_line":"distortion."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"New sharder stats are:"},{"line_number":19,"context_line":"    cleaved_db_created"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"97b0a6ca_ef388e77","line":16,"in_reply_to":"d795adef_39aa3def","updated":"2022-07-30 16:35:03.000000000","message":"there is a stat emitted when db\u0027s are removed (in db_replicator.delete_db). IIRC there wasn\u0027t an obvious route to pass that info back up the call chain to relate it to the particular creator of the db.","commit_id":"289f59416f964cf705e10c24dbd566c6767c8726"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6fe07808f27a8f4001ee8fa5a68d2a1314057d6c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a28b92a1_5f5ba85d","updated":"2022-07-25 20:49:43.000000000","message":"Do we want something similar when the container-replicator feeds the reconciler queue?","commit_id":"8c32875989a69eeae124e260182873869ca1a599"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"7fe62ae8855acd1baa4fa9e6e70dff2b25e614e3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"12f6f3d9_40cffba1","in_reply_to":"a28b92a1_5f5ba85d","updated":"2022-07-27 10:03:41.000000000","message":"that would be useful","commit_id":"8c32875989a69eeae124e260182873869ca1a599"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"8815c2c798310fc926730846af201935efb4e958","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3859d82e_76808645","updated":"2022-08-01 07:36:06.000000000","message":"Yup, this is awesome. After a rebalance trying to look at a number handoffs were being creating from the sharder vs rebalance is hard to grok. But with this we can see handoff counts and even when the sharding or reconciler re-visits existing handoff shards. Love it!","commit_id":"517738ac9a6efe97d227d979c47d5222fed47aae"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0c3148c4e2859c8fc97dc240c66d0bc8fbf57a0d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2559be73_db961609","updated":"2022-07-30 16:35:03.000000000","message":"rebased to fix merge conflict","commit_id":"517738ac9a6efe97d227d979c47d5222fed47aae"}],"swift/container/sharder.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"aa30d306e1b2b9246ba365c31753cbf1c2d46dcb","unresolved":true,"context_lines":[{"line_number":1842,"context_line":"                self._get_shard_broker(shard_range, broker.root_path,"},{"line_number":1843,"context_line":"                                       policy_index)"},{"line_number":1844,"context_line":"            stat \u003d \u0027db_exists\u0027 if put_timestamp is None else \u0027db_created\u0027"},{"line_number":1845,"context_line":"            self._increment_stat(\u0027cleaved\u0027, stat, statsd\u003dTrue)"},{"line_number":1846,"context_line":"        except DeviceUnavailable as duex:"},{"line_number":1847,"context_line":"            self.logger.warning(str(duex))"},{"line_number":1848,"context_line":"            self._increment_stat(\u0027cleaved\u0027, \u0027failure\u0027, statsd\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"191e4a43_5cced2e7","line":1845,"updated":"2022-07-29 22:33:50.000000000","message":"Should we just do this as part of _get_shard_broker()? These are the only two callers...","commit_id":"289f59416f964cf705e10c24dbd566c6767c8726"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0c3148c4e2859c8fc97dc240c66d0bc8fbf57a0d","unresolved":true,"context_lines":[{"line_number":1842,"context_line":"                self._get_shard_broker(shard_range, broker.root_path,"},{"line_number":1843,"context_line":"                                       policy_index)"},{"line_number":1844,"context_line":"            stat \u003d \u0027db_exists\u0027 if put_timestamp is None else \u0027db_created\u0027"},{"line_number":1845,"context_line":"            self._increment_stat(\u0027cleaved\u0027, stat, statsd\u003dTrue)"},{"line_number":1846,"context_line":"        except DeviceUnavailable as duex:"},{"line_number":1847,"context_line":"            self.logger.warning(str(duex))"},{"line_number":1848,"context_line":"            self._increment_stat(\u0027cleaved\u0027, \u0027failure\u0027, statsd\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"567feccb_42287f3b","line":1845,"in_reply_to":"191e4a43_5cced2e7","updated":"2022-07-30 16:35:03.000000000","message":"I wanted to differentiate the stats key for cleaved vs misplaced","commit_id":"289f59416f964cf705e10c24dbd566c6767c8726"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"8815c2c798310fc926730846af201935efb4e958","unresolved":true,"context_lines":[{"line_number":1124,"context_line":"            \u0027X-Container-Sysmeta-Sharding\u0027:"},{"line_number":1125,"context_line":"                (\u0027True\u0027, Timestamp.now().internal)})"},{"line_number":1126,"context_line":""},{"line_number":1127,"context_line":"        put_timestamp \u003d put_timestamp if initialized else None"},{"line_number":1128,"context_line":"        return part, shard_broker, node[\u0027id\u0027], put_timestamp"},{"line_number":1129,"context_line":""},{"line_number":1130,"context_line":"    def _audit_root_container(self, broker):"}],"source_content_type":"text/x-python","patch_set":5,"id":"d6867b87_0123670a","line":1127,"updated":"2022-08-01 07:36:06.000000000","message":"I never really liked the fact that we returned the put_timestamp we \"would\" have used even if we didn\u0027t need to initialise.. so returning it as None if we didn\u0027t is already much better.","commit_id":"517738ac9a6efe97d227d979c47d5222fed47aae"}]}
