)]}'
{"id":"openstack%2Fswift~874781","triplet_id":"openstack%2Fswift~master~I88160a4124ec52a844360d6cf255af220dbde51e","project":"openstack/swift","branch":"master","topic":"p-misplaced-faster","attention_set":{},"removed_from_attention_set":{"7847":{"account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"last_update":"2023-02-23 11:37:00.000000000","reason":"\u003cGERRIT_ACCOUNT_7847\u003e replied on the change","reason_account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}},"15343":{"account":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"last_update":"2023-02-22 16:53:57.000000000","reason":"\u003cGERRIT_ACCOUNT_15343\u003e replied on the change","reason_account":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}}},"hashtags":[],"change_id":"I88160a4124ec52a844360d6cf255af220dbde51e","subject":"sharder: yield fewer rows that have no destination","status":"ABANDONED","created":"2023-02-22 14:43:24.000000000","updated":"2023-02-23 11:38:02.000000000","total_comment_count":5,"unresolved_comment_count":1,"has_review_started":true,"meta_rev_id":"45c2b099751e05be87fd00897211a72309bda102","_number":874781,"virtual_id_number":874781,"owner":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2023-02-22 20:24:54.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2023-02-22 14:47:03.000000000","updated_by":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"REVIEWER"},{"updated":"2023-02-22 16:27:03.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2023-02-22 20:24:54.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"87b13bb7e022c7239f338fc8430a90a6e5aa7afe","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2023-02-22 14:43:24.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ba4470ef7d9b123f56e8f4b12f9e8670c4139390","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2023-02-22 14:45:30.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"72724f75dfac074746c3b0e78f5d0be4aca2a32a","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2023-02-22 14:47:03.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"cdbef19713281c513fa8ed5d0731898a9d8bc4b6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2023-02-22 16:02:39.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"c27b564f01b8e80b6427f1f1f108bd4538e340d9","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2023-02-22 16:27:03.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/436ad6133e03458d9d3c79b1b0fafc97\n\n- swift-tox-py38-arm64 https://zuul.opendev.org/t/openstack/build/2f45787ac707426883f058893d87edc0 : SUCCESS in 21m 58s\n- swift-tox-py39-arm64 https://zuul.opendev.org/t/openstack/build/43e2971f0fc24ad187ac1b5964d37657 : SUCCESS in 21m 19s\n- swift-tox-func-encryption-py38-arm64 https://zuul.opendev.org/t/openstack/build/23e62a22a1944e9dba71909fc9e97731 : SUCCESS in 21m 54s\n- swift-tox-func-py38-arm64 https://zuul.opendev.org/t/openstack/build/a6dbc637d2ae488e9ee9efca3a766a1d : SUCCESS in 21m 10s","accounts_in_message":[],"_revision_number":2},{"id":"89a9164aad6ae9f4334049a5aee8b5191dc74f40","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2023-02-22 16:53:57.000000000","message":"Patch Set 2:\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"7f4f3f555d97e253ee95f55c3c2081677e77d1d3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2023-02-22 20:24:54.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e9c4b3577497454e83b898c7ae46a794\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e62a22fe2d51453abc1e4194ee789b47 : SUCCESS in 8m 25s\n- grenade https://zuul.opendev.org/t/openstack/build/65c00bad738a4b18ae9f1783e7da1155 : SUCCESS in 1h 02m 27s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/ed7cab26a390424eaea734fa41af4278 : SUCCESS in 43m 28s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/4139a8ccb2e34c27824f30a7560b3bac : SUCCESS in 52m 31s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/9062c1392b5c4b579858b27e568dd707 : SUCCESS in 16m 20s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/88119cebc6fe49699b10b22fff1536cf : SUCCESS in 16m 51s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4a3dbb63c85b42309dbd230949038b76 : SUCCESS in 17m 09s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/4787d27b467b412cadbfd12918372d34 : SUCCESS in 8m 50s (non-voting)\n- swift-build-image-py3 https://zuul.opendev.org/t/openstack/build/516c7169410d4632b9ca8c8a05ab694b : SUCCESS in 6m 11s (non-voting)\n- swift-tox-py27 https://zuul.opendev.org/t/openstack/build/88c2293a6f2648ad84208a8b1f06ad28 : SUCCESS in 20m 56s\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/8b531a69c456470ea50d32afdf404bea : SUCCESS in 15m 10s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/fdbea9fdb2424731947cbe820d4551e9 : SUCCESS in 17m 53s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/62d9cc1a42174cc6bd6dc4ad54cd89a6 : SUCCESS in 32m 35s\n- swift-tox-func-py27 https://zuul.opendev.org/t/openstack/build/125e51d30b5340ac8ec220179e211d94 : SUCCESS in 17m 18s\n- swift-tox-func-encryption-py27 https://zuul.opendev.org/t/openstack/build/c67febebcb57456bab1b08d39daae49d : SUCCESS in 19m 27s\n- swift-tox-func-ec-py27 https://zuul.opendev.org/t/openstack/build/3d96d0aee5894129bfb670dcaf761667 : SUCCESS in 17m 56s\n- swift-tox-func-py38 https://zuul.opendev.org/t/openstack/build/6587e177d2e54483b2ac8cf7448982a8 : SUCCESS in 19m 20s\n- swift-tox-func-encryption-py38 https://zuul.opendev.org/t/openstack/build/79af917acf774b4daa037d591b01eaca : SUCCESS in 16m 41s\n- swift-tox-func-ec-py38 https://zuul.opendev.org/t/openstack/build/2efcd5c844494b2f944128c295cf83db : SUCCESS in 29m 14s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/a9a67ac7e3364449ab623dd34812879a : SUCCESS in 13m 21s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/b0fbea1e7d4c45d38806d56ff04bb1ae : SUCCESS in 18m 08s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/0cd048c88ea74bdebda2c5c9f6ddd947 : SUCCESS in 9m 59s\n- swift-probetests-centos-7 https://zuul.opendev.org/t/openstack/build/c213e13874d848b49699347f233ff361 : SUCCESS in 50m 30s\n- swift-probetests-centos-8-stream https://zuul.opendev.org/t/openstack/build/d6cfa070b7684d00a9958ce50c790873 : SUCCESS in 1h 10m 17s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/d91aa08af74543adb7f0cc1e363df5b5 : SUCCESS in 49m 32s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/a43e32e3790c4eb083c1b7db67db037c : SUCCESS in 57m 17s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/15335066e2b64ddc9f52d1489c6c975e : SUCCESS in 18m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/78ff5c912c5d40918446a7bcbe0b5143 : SUCCESS in 4m 23s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a67429fe77a945f39764cb865fb12f44 : SUCCESS in 22m 55s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/1f28458421eb414b86e6133daa7e54f4 : SUCCESS in 51m 49s","accounts_in_message":[],"_revision_number":2},{"id":"a7fcc00a153d522e60125d5708c0be5c81d55892","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2023-02-23 11:37:00.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"45c2b099751e05be87fd00897211a72309bda102","tag":"autogenerated:gerrit:abandon","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2023-02-23 11:38:02.000000000","message":"Abandoned\n\nnot necessary","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"1d225290b59f016f4518aad282cf4f7fb27742e6","revisions":{"6ef5b2381ee9fa624ff742392e2a1c0c07f78aa6":{"kind":"REWORK","_number":1,"created":"2023-02-22 14:43:24.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/81/874781/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/81/874781/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/81/874781/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/81/874781/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/81/874781/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/81/874781/1"}}},"commit":{"parents":[{"commit":"1654da33b4de0093a5a29b29f1b480aa70ef6e82","subject":"sharder: make misplaced objects lookup faster","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1654da33b4de0093a5a29b29f1b480aa70ef6e82"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2023-02-22 14:27:26.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2023-02-22 14:41:46.000000000","tz":0},"subject":"sharder: yield fewer rows that have no destination","message":"sharder: yield fewer rows that have no destination\n\nPrior to the Related-Change, the yield_objects_to_shard_range() method\nwould not necessarily yield *all* object rows for which there was no\nmatching destination shard range.\n\nIf the missing destination was at the start of the source namespace,\nall object rows would be yielded. But if the missing destination was\nat the end of the source namespace then the generator would exit after\nthe first batch of objects in the missing destination namespace had\nbeen yielded. This was understood by the call site in _move_objects\nwhich significantly uses the phrase \u0027at least\u0027 in the log message\n\u0027Failed to find destination for at least %s misplaced objects\u0027 to\nindicate that there may be more unplaced objects than reported.\n\nThe Related-Change caused all object rows without a matching\ndestination to be yielded, potentially querying the DB for many rows\nthat cannot be moved. This is arguably wasteful and at best results in\na more accurate metric of how many unplaced objects there are.\n\nThis patch modifies the behaviour so that only the first batch of\nunplaced objects in each missing destination range is yielded. This is\nlikely to result in the unplaced rows metric being more of an\nunder-estimate than before.\n\nChange-Id: I88160a4124ec52a844360d6cf255af220dbde51e\nRelated-Change: I337f4e54d1bcd4c5484fe56cfc886b16077982f5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6ef5b2381ee9fa624ff742392e2a1c0c07f78aa6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6ef5b2381ee9fa624ff742392e2a1c0c07f78aa6"}]},"branch":"refs/heads/master"},"1d225290b59f016f4518aad282cf4f7fb27742e6":{"kind":"REWORK","_number":2,"created":"2023-02-22 16:02:39.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/81/874781/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/81/874781/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/81/874781/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/81/874781/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/81/874781/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/81/874781/2"}}},"commit":{"parents":[{"commit":"7fb195123d2d94bb3dc838ed4ebc744882178c6d","subject":"sharder: make misplaced objects lookup faster","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/7fb195123d2d94bb3dc838ed4ebc744882178c6d"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2023-02-22 14:27:26.000000000","tz":0},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2023-02-22 16:02:23.000000000","tz":0},"subject":"sharder: yield fewer rows that have no destination","message":"sharder: yield fewer rows that have no destination\n\nPrior to the Related-Change, the yield_objects_to_shard_range() method\nwould not necessarily yield *all* object rows for which there was no\nmatching destination shard range.\n\nIf the missing destination was at the start of the source namespace,\nall object rows would be yielded. But if the missing destination was\nat the end of the source namespace then the generator would exit after\nthe first batch of objects in the missing destination namespace had\nbeen yielded. This was understood by the call site in _move_objects\nwhich significantly uses the phrase \u0027at least\u0027 in the log message\n\u0027Failed to find destination for at least %s misplaced objects\u0027 to\nindicate that there may be more unplaced objects than reported.\n\nThe Related-Change caused all object rows without a matching\ndestination to be yielded, potentially querying the DB for many rows\nthat cannot be moved. This is arguably wasteful and at best results in\na more accurate metric of how many unplaced objects there are.\n\nThis patch modifies the behaviour so that only the first batch of\nunplaced objects in each missing destination range is yielded. This is\nlikely to result in the unplaced rows metric being more of an\nunder-estimate than before.\n\nChange-Id: I88160a4124ec52a844360d6cf255af220dbde51e\nRelated-Change: I337f4e54d1bcd4c5484fe56cfc886b16077982f5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1d225290b59f016f4518aad282cf4f7fb27742e6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1d225290b59f016f4518aad282cf4f7fb27742e6"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
