)]}'
{"swift/container/backend.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a08349bfcb3c3bb5bf551c9f553aaa64cfec669c","unresolved":false,"context_lines":[{"line_number":616,"context_line":"                  \u0027record_type\u0027: RECORD_TYPE_OBJECT}"},{"line_number":617,"context_line":"        self.put_record(record)"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"    def remove_objects(self, lower, upper):"},{"line_number":620,"context_line":"        \"\"\""},{"line_number":621,"context_line":"        Removes items in the given namespace range from the object table."},{"line_number":622,"context_line":"        :param lower: defines the lower bound of object names that will be"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_d9442377","line":619,"updated":"2017-10-04 17:01:22.000000000","message":"Should this take a storage policy as well?","commit_id":"c0ccc5bffb8c063ce54e94bf45bdb25feb24a11d"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"dff2706c54182745f38a0fd53192356b141ae68d","unresolved":false,"context_lines":[{"line_number":616,"context_line":"                  \u0027record_type\u0027: RECORD_TYPE_OBJECT}"},{"line_number":617,"context_line":"        self.put_record(record)"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"    def remove_objects(self, lower, upper):"},{"line_number":620,"context_line":"        \"\"\""},{"line_number":621,"context_line":"        Removes items in the given namespace range from the object table."},{"line_number":622,"context_line":"        :param lower: defines the lower bound of object names that will be"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_401a6b17","line":619,"in_reply_to":"7f515b1d_d9442377","updated":"2017-10-04 21:14:02.000000000","message":"hmmm, yeah good call, since AFAICT we select using policy index.\n\nwe have a TODO somewhere about wrong-policy objects? must not lose sight of that :/","commit_id":"c0ccc5bffb8c063ce54e94bf45bdb25feb24a11d"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"033f17735fd41fe6b28d8f381079115b429cac5c","unresolved":false,"context_lines":[{"line_number":620,"context_line":"        \"\"\""},{"line_number":621,"context_line":"        Removes items in the given namespace range from the object table."},{"line_number":622,"context_line":"        :param lower: defines the lower bound of object names that will be"},{"line_number":623,"context_line":"            removed; names greater than this value will be removed; names less"},{"line_number":624,"context_line":"            than or equal to this value will not be removed."},{"line_number":625,"context_line":"        :param upper: defines the upper bound of object names that will be"},{"line_number":626,"context_line":"            removed; names less than or equal to this value will be removed;"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_945d4deb","line":623,"updated":"2017-10-05 05:35:50.000000000","message":"Huh. Sphinx complains:\n\n\u003e docstring of swift.container.backend.ContainerBroker.remove_objects:3:Unexpected indentation.\n\nSeems to come down to the missing line break between summary and :param:s though?","commit_id":"c0ccc5bffb8c063ce54e94bf45bdb25feb24a11d"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"79e73e24b4b074720e06a17e16d778b40d5bfbe5","unresolved":false,"context_lines":[{"line_number":620,"context_line":"        \"\"\""},{"line_number":621,"context_line":"        Removes items in the given namespace range from the object table."},{"line_number":622,"context_line":"        :param lower: defines the lower bound of object names that will be"},{"line_number":623,"context_line":"            removed; names greater than this value will be removed; names less"},{"line_number":624,"context_line":"            than or equal to this value will not be removed."},{"line_number":625,"context_line":"        :param upper: defines the upper bound of object names that will be"},{"line_number":626,"context_line":"            removed; names less than or equal to this value will be removed;"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_890e4030","line":623,"in_reply_to":"7f515b1d_945d4deb","updated":"2017-10-05 09:05:06.000000000","message":"interesting, I recall being confused on ther patches as to whether the indent on secondline of param was permitted or not - but maybe it was the lack of line break that was throwing it out","commit_id":"c0ccc5bffb8c063ce54e94bf45bdb25feb24a11d"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a08349bfcb3c3bb5bf551c9f553aaa64cfec669c","unresolved":false,"context_lines":[{"line_number":626,"context_line":"            removed; names less than or equal to this value will be removed;"},{"line_number":627,"context_line":"            names greater than this value will not be removed."},{"line_number":628,"context_line":"        \"\"\""},{"line_number":629,"context_line":"        query \u003d \u0027DELETE FROM object WHERE name \u003e ?\u0027"},{"line_number":630,"context_line":"        query_args \u003d [lower]"},{"line_number":631,"context_line":"        if upper:"},{"line_number":632,"context_line":"            query +\u003d \u0027 AND name \u003c\u003d ?\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_79688f20","line":629,"range":{"start_line":629,"start_character":36,"end_line":629,"end_character":50},"updated":"2017-10-04 17:01:22.000000000","message":"Do we care about using the index? We maybe want\n\n WHERE deleted IN (0, 1) AND name \u003e ?","commit_id":"c0ccc5bffb8c063ce54e94bf45bdb25feb24a11d"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"dff2706c54182745f38a0fd53192356b141ae68d","unresolved":false,"context_lines":[{"line_number":626,"context_line":"            removed; names less than or equal to this value will be removed;"},{"line_number":627,"context_line":"            names greater than this value will not be removed."},{"line_number":628,"context_line":"        \"\"\""},{"line_number":629,"context_line":"        query \u003d \u0027DELETE FROM object WHERE name \u003e ?\u0027"},{"line_number":630,"context_line":"        query_args \u003d [lower]"},{"line_number":631,"context_line":"        if upper:"},{"line_number":632,"context_line":"            query +\u003d \u0027 AND name \u003c\u003d ?\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_80c4e393","line":629,"range":{"start_line":629,"start_character":36,"end_line":629,"end_character":50},"in_reply_to":"7f515b1d_79688f20","updated":"2017-10-04 21:14:02.000000000","message":"Looks good. I will always defer to someone else when it comes to sql :)","commit_id":"c0ccc5bffb8c063ce54e94bf45bdb25feb24a11d"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"bc58c45c3b7771ffc4348ece15ec2eba9d989829","unresolved":false,"context_lines":[{"line_number":626,"context_line":"            removed; names less than or equal to this value will be removed;"},{"line_number":627,"context_line":"            names greater than this value will not be removed."},{"line_number":628,"context_line":"        \"\"\""},{"line_number":629,"context_line":"        query \u003d \u0027DELETE FROM object WHERE name \u003e ?\u0027"},{"line_number":630,"context_line":"        query_args \u003d [lower]"},{"line_number":631,"context_line":"        if upper:"},{"line_number":632,"context_line":"            query +\u003d \u0027 AND name \u003c\u003d ?\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_e1d956f4","line":629,"range":{"start_line":629,"start_character":36,"end_line":629,"end_character":50},"in_reply_to":"7f515b1d_80c4e393","updated":"2017-10-05 02:35:07.000000000","message":"You can run the sql command in sqlite3 using analyse (or something I forget the exact command) and it\u0027ll tell you if it hits the index or not. This still might because of the single WHERE clause and that single clause contains one of the composite index fields, but it doesn\u0027t hurt to add it.","commit_id":"c0ccc5bffb8c063ce54e94bf45bdb25feb24a11d"}],"swift/container/sharder.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"bc58c45c3b7771ffc4348ece15ec2eba9d989829","unresolved":false,"context_lines":[{"line_number":396,"context_line":"                    self._replicate_object, part, new_broker.db_file, node_id)"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"            # wait for one of these to error, or all to complete successfully"},{"line_number":399,"context_line":"            any(self.cpool)"},{"line_number":400,"context_line":"            # TODO: we need to be confident that replication succeeded before"},{"line_number":401,"context_line":"            # removing misplaced items from source - if not then just leave the"},{"line_number":402,"context_line":"            # misplaced items in source, but do not mark them as deleted, and"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_2c2c0598","line":399,"updated":"2017-10-05 02:35:07.000000000","message":"Yeah, maybe waiting for a thread to comeback isn\u0027t the best answer, seeing as _replicate_object doesn\u0027t actually return a boolean.\n\nMaybe we need to return the success in _replicate_object, then if we get success we\u0027re happy to remove because we haven\u0027t lost the current durable state for those objects. OR if we want to be safer, we could wait for a quorum of successes before we go and delete.","commit_id":"c0ccc5bffb8c063ce54e94bf45bdb25feb24a11d"}]}
