)]}'
{"id":"openstack%2Fswift~578213","triplet_id":"openstack%2Fswift~master~Iad468610b66b1bce82ab23f158a6f20e97025216","project":"openstack/swift","branch":"master","topic":"handoff-only-replicator-workers","hashtags":[],"change_id":"Iad468610b66b1bce82ab23f158a6f20e97025216","subject":"object-replicator: separate workers for primary/handoffs","status":"NEW","created":"2018-06-26 21:40:59.000000000","updated":"2018-09-13 21:27:36.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":3,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"d5260bf73d072f83aade4d56d1912d8d9423047b","_number":578213,"virtual_id_number":578213,"owner":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"date":"2018-09-13 21:27:36.000000000","_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":1,"date":"2018-06-28 20:34:22.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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":{"disliked":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"value":-1,"date":"2018-07-03 17:51:35.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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":"","value":-1,"default_value":0,"optional":true},"Workflow":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2018-06-27 05:28:57.000000000","updated_by":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"reviewer":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"state":"REVIEWER"},{"updated":"2018-06-28 20:34:22.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"},{"updated":"2018-07-03 17:51:35.000000000","updated_by":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"reviewer":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"state":"REVIEWER"},{"updated":"2018-09-13 21:27:36.000000000","updated_by":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"reviewer":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"state":"REVIEWER"}],"messages":[{"id":"173413e5abbd06aa5c8af80b900df7661b824463","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2018-06-26 21:40:59.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"4392f188477eccc0bd55b2692012ee5173265ca2","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2018-06-26 22:19:33.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"a5e52cc758020c5aa5de6a3adbd78e999d30fd3f","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2018-06-27 01:00:57.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- build-openstack-sphinx-docs http://logs.openstack.org/13/578213/2/check/build-openstack-sphinx-docs/9bda116/html/ : SUCCESS in 4m 29s\n- openstack-tox-pep8 http://logs.openstack.org/13/578213/2/check/openstack-tox-pep8/60052fc/ : SUCCESS in 5m 29s\n- legacy-swift-dsvm-functional http://logs.openstack.org/13/578213/2/check/legacy-swift-dsvm-functional/04c4fb5/ : SUCCESS in 23m 47s\n- legacy-swift-dsvm-functional-identity-v3-only http://logs.openstack.org/13/578213/2/check/legacy-swift-dsvm-functional-identity-v3-only/3e78b6d/ : SUCCESS in 24m 39s (non-voting)\n- legacy-tempest-dsvm-neutron-full http://logs.openstack.org/13/578213/2/check/legacy-tempest-dsvm-neutron-full/0d2de2d/ : SUCCESS in 1h 33m 18s\n- neutron-grenade http://logs.openstack.org/13/578213/2/check/neutron-grenade/ee91534/ : SUCCESS in 52m 30s\n- swift-tox-py27 http://logs.openstack.org/13/578213/2/check/swift-tox-py27/8969b41/ : SUCCESS in 10m 03s\n- swift-tox-py35 http://logs.openstack.org/13/578213/2/check/swift-tox-py35/778c43a/ : SUCCESS in 4m 59s\n- swift-tox-func http://logs.openstack.org/13/578213/2/check/swift-tox-func/e4c57b8/ : SUCCESS in 9m 10s\n- swift-tox-func-encryption http://logs.openstack.org/13/578213/2/check/swift-tox-func-encryption/b1d59e6/ : SUCCESS in 9m 48s\n- swift-tox-func-domain-remap-staticweb http://logs.openstack.org/13/578213/2/check/swift-tox-func-domain-remap-staticweb/5ec4ecc/ : SUCCESS in 8m 13s\n- swift-tox-func-ec http://logs.openstack.org/13/578213/2/check/swift-tox-func-ec/aa88a09/ : SUCCESS in 10m 05s\n- swift-tox-func-s3api http://logs.openstack.org/13/578213/2/check/swift-tox-func-s3api/1502973/ : SUCCESS in 10m 28s\n- swift-probetests-centos-7 http://logs.openstack.org/13/578213/2/check/swift-probetests-centos-7/4cdce77/ : SUCCESS in 26m 37s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"1a3305ff030f5b2c694d4d9cc5ea6d29265d0b90","author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"date":"2018-06-27 05:28:57.000000000","message":"Patch Set 2:\n\n(1 comment)\n\nThis is a great idea! As you\u0027ve already mentioned it\u0027s still a work in progress. But I look forward to getting it merged!","accounts_in_message":[],"_revision_number":2},{"id":"7c01595bddb39c5e5eb273da9b8d8a31611dbcd5","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2018-06-28 00:49:54.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"ef3b7d75a25037c48f4bf2eb93a92528f78fd0cc","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2018-06-28 00:56:18.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"a103f737a954a52c1158b551cae6f53e1ffa38e3","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2018-06-28 02:26:45.000000000","message":"Patch Set 4: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- build-openstack-sphinx-docs http://logs.openstack.org/13/578213/4/check/build-openstack-sphinx-docs/b7aa864/ : FAILURE in 4m 07s\n- openstack-tox-pep8 http://logs.openstack.org/13/578213/4/check/openstack-tox-pep8/e621085/ : SUCCESS in 4m 29s\n- legacy-swift-dsvm-functional http://logs.openstack.org/13/578213/4/check/legacy-swift-dsvm-functional/4d971e9/ : SUCCESS in 25m 21s\n- legacy-swift-dsvm-functional-identity-v3-only http://logs.openstack.org/13/578213/4/check/legacy-swift-dsvm-functional-identity-v3-only/67f6fed/ : SUCCESS in 29m 57s (non-voting)\n- legacy-tempest-dsvm-neutron-full http://logs.openstack.org/13/578213/4/check/legacy-tempest-dsvm-neutron-full/6c08de6/ : SUCCESS in 1h 27m 55s\n- neutron-grenade http://logs.openstack.org/13/578213/4/check/neutron-grenade/458d9d3/ : SUCCESS in 49m 08s\n- swift-tox-py27 http://logs.openstack.org/13/578213/4/check/swift-tox-py27/115ff43/ : SUCCESS in 10m 26s\n- swift-tox-py35 http://logs.openstack.org/13/578213/4/check/swift-tox-py35/5e9dd7e/ : SUCCESS in 4m 43s\n- swift-tox-func http://logs.openstack.org/13/578213/4/check/swift-tox-func/62a0747/ : SUCCESS in 8m 21s\n- swift-tox-func-encryption http://logs.openstack.org/13/578213/4/check/swift-tox-func-encryption/32bac9a/ : SUCCESS in 10m 01s\n- swift-tox-func-domain-remap-staticweb http://logs.openstack.org/13/578213/4/check/swift-tox-func-domain-remap-staticweb/03c7ed1/ : SUCCESS in 9m 00s\n- swift-tox-func-ec http://logs.openstack.org/13/578213/4/check/swift-tox-func-ec/b0445af/ : SUCCESS in 8m 25s\n- swift-tox-func-s3api http://logs.openstack.org/13/578213/4/check/swift-tox-func-s3api/919702e/ : SUCCESS in 9m 46s\n- swift-probetests-centos-7 http://logs.openstack.org/13/578213/4/check/swift-probetests-centos-7/0b2bf76/ : SUCCESS in 29m 22s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"fdc9e315553875c0e0f613322b6e3f7fe52ea7da","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2018-06-28 17:35:01.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"291dba18b00f99bba7d6ce4bca64fc936c67d259","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2018-06-28 20:34:22.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\n\n- build-openstack-sphinx-docs http://logs.openstack.org/13/578213/5/check/build-openstack-sphinx-docs/db59863/html/ : SUCCESS in 5m 20s\n- openstack-tox-pep8 http://logs.openstack.org/13/578213/5/check/openstack-tox-pep8/e7ed110/ : SUCCESS in 5m 44s\n- legacy-swift-dsvm-functional http://logs.openstack.org/13/578213/5/check/legacy-swift-dsvm-functional/eb2d6e9/ : SUCCESS in 35m 15s\n- legacy-swift-dsvm-functional-identity-v3-only http://logs.openstack.org/13/578213/5/check/legacy-swift-dsvm-functional-identity-v3-only/581ad2b/ : SUCCESS in 29m 59s (non-voting)\n- legacy-tempest-dsvm-neutron-full http://logs.openstack.org/13/578213/5/check/legacy-tempest-dsvm-neutron-full/4d9235a/ : SUCCESS in 1h 32m 00s\n- neutron-grenade http://logs.openstack.org/13/578213/5/check/neutron-grenade/e379327/ : SUCCESS in 1h 01m 35s\n- swift-tox-py27 http://logs.openstack.org/13/578213/5/check/swift-tox-py27/c202c41/ : SUCCESS in 10m 56s\n- swift-tox-py35 http://logs.openstack.org/13/578213/5/check/swift-tox-py35/a940804/ : SUCCESS in 5m 41s\n- swift-tox-func http://logs.openstack.org/13/578213/5/check/swift-tox-func/8fae424/ : SUCCESS in 9m 56s\n- swift-tox-func-encryption http://logs.openstack.org/13/578213/5/check/swift-tox-func-encryption/ee14273/ : SUCCESS in 9m 38s\n- swift-tox-func-domain-remap-staticweb http://logs.openstack.org/13/578213/5/check/swift-tox-func-domain-remap-staticweb/85d80ef/ : SUCCESS in 10m 00s\n- swift-tox-func-ec http://logs.openstack.org/13/578213/5/check/swift-tox-func-ec/c5df4ca/ : SUCCESS in 10m 13s\n- swift-tox-func-s3api http://logs.openstack.org/13/578213/5/check/swift-tox-func-s3api/a373da2/ : SUCCESS in 11m 22s\n- swift-probetests-centos-7 http://logs.openstack.org/13/578213/5/check/swift-probetests-centos-7/aeb4b1c/ : SUCCESS in 27m 17s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"9441050f1432de1adee780bbacee61dcdb5467b0","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2018-07-03 17:51:35.000000000","message":"Patch Set 5: Code-Review-1\n\n(1 comment)\n\nAFAICT the handoff and primary workers are overwriting each other\u0027s recon cache data, so you only get to see one or other. I\u0027ll try to figure out how that might be avoided.","accounts_in_message":[],"_revision_number":5},{"id":"879d6fa156ff1b8a65649c992b1ded7c52dae673","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2018-07-04 17:17:46.000000000","message":"Patch Set 5:\n\nI have a fix for the recon stats in a follow up, but I\u0027d like to review that more before squashing into this patch.","accounts_in_message":[],"_revision_number":5},{"id":"e2df307cb87a709fecd53310080350f0b1786103","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2018-09-13 21:27:36.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"f9599fd9996685b569412ba677178d2527b97981","revisions":{"efe00448cf4f69262c67d3af33b7615fad82e252":{"kind":"REWORK","_number":1,"created":"2018-06-26 21:40:59.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/13/578213/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/13/578213/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/13/578213/1"}}},"commit":{"parents":[{"commit":"3de21d945beb240ecd6bdf16aeec51c1d68571d0","subject":"Merge \"Remove empty part dirs during ssync replication\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3de21d945beb240ecd6bdf16aeec51c1d68571d0"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2018-06-26 21:33:32.000000000","tz":-420},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2018-06-26 21:33:32.000000000","tz":-420},"subject":"object-replicator: separate workers for primary/handoffs","message":"object-replicator: separate workers for primary/handoffs\n\nAfter a ring rebalance, it\u0027s a good idea to move (now-handoff)\npartitions to their new homes as quickly as possible. Having one\nreplicator process responsible for both primary and handoff partitions\ncan slow that process down since partitions are processed in\norder. The handoffs_first option helps, but a given replication pass\nmust still process all the primaries and all the handoffs before the\nnext pass can start.\n\nThis commit adds a new replicator_handoff_workers option to the object\nreplicator\u0027s configuration file.\n\nIf configured like so:\n\n    replicator_workers \u003d N\n    replicator_handoff_workers \u003d M\n\nthen there will be N worker processes handling only primary partitions\nand M worker processes handling handoff partitions. This gives\noperators a way to control the relative priorities.\n\nIf replicator_handoff_workers is not set, then there will be N\nworkers, each responsible for primary and handoff partitions, just as\nbefore.\n\nChange-Id: Iad468610b66b1bce82ab23f158a6f20e97025216\nNOTE: this is still a work in progress; the sample configs and docs and stuff are not updated yet.\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/efe00448cf4f69262c67d3af33b7615fad82e252"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/efe00448cf4f69262c67d3af33b7615fad82e252"}]},"branch":"refs/heads/master"},"5eec443b69a6ee0e36ab1fba7f74ba5a2829b07b":{"kind":"REWORK","_number":2,"created":"2018-06-26 22:19:33.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/13/578213/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/13/578213/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/13/578213/2"}}},"commit":{"parents":[{"commit":"3de21d945beb240ecd6bdf16aeec51c1d68571d0","subject":"Merge \"Remove empty part dirs during ssync replication\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3de21d945beb240ecd6bdf16aeec51c1d68571d0"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2018-06-26 21:33:32.000000000","tz":-420},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2018-06-26 22:18:26.000000000","tz":-420},"subject":"object-replicator: separate workers for primary/handoffs","message":"object-replicator: separate workers for primary/handoffs\n\nAfter a ring rebalance, it\u0027s a good idea to move (now-handoff)\npartitions to their new homes as quickly as possible. Having one\nreplicator process responsible for both primary and handoff partitions\ncan slow that process down since partitions are processed in\norder. The handoffs_first option helps, but a given replication pass\nmust still process all the primaries and all the handoffs before the\nnext pass can start.\n\nThis commit adds a new replicator_handoff_workers option to the object\nreplicator\u0027s configuration file.\n\nIf configured like so:\n\n    replicator_workers \u003d N\n    replicator_handoff_workers \u003d M\n\nthen there will be N worker processes handling only primary partitions\nand M worker processes handling handoff partitions. This gives\noperators a way to control the relative priorities.\n\nIf replicator_handoff_workers is not set, then there will be N\nworkers, each responsible for primary and handoff partitions, just as\nbefore.\n\nNote that replicator_handoff_workers \u003d 0 is invalid. That setting\nwould cause only primary partitions to be replicated, and that\u0027s not a\ngood idea for anyone.\n\nChange-Id: Iad468610b66b1bce82ab23f158a6f20e97025216\nNOTE: this is still a work in progress; the sample configs and docs and stuff are not updated yet.\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5eec443b69a6ee0e36ab1fba7f74ba5a2829b07b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5eec443b69a6ee0e36ab1fba7f74ba5a2829b07b"}]},"branch":"refs/heads/master"},"c6a69d7aa40cd5815d33a8e3f1234e9d0244b7c5":{"kind":"REWORK","_number":3,"created":"2018-06-28 00:49:54.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/13/578213/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/13/578213/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/13/578213/3"}}},"commit":{"parents":[{"commit":"3de21d945beb240ecd6bdf16aeec51c1d68571d0","subject":"Merge \"Remove empty part dirs during ssync replication\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3de21d945beb240ecd6bdf16aeec51c1d68571d0"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2018-06-26 21:33:32.000000000","tz":-420},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2018-06-28 00:29:32.000000000","tz":-420},"subject":"object-replicator: separate workers for primary/handoffs","message":"object-replicator: separate workers for primary/handoffs\n\nAfter a ring rebalance, it\u0027s a good idea to move (now-handoff)\npartitions to their new homes as quickly as possible. Having one\nreplicator process responsible for both primary and handoff partitions\ncan slow that process down since partitions are processed in\norder. The handoffs_first option helps, but a given replication pass\nmust still process all the primaries and all the handoffs before the\nnext pass can start.\n\nThis commit adds a new replicator_handoff_workers option to the object\nreplicator\u0027s configuration file.\n\nIf configured like so:\n\n    replicator_primary_only_workers \u003d N\n    replicator_handoff_only_workers \u003d M\n\nthen there will be N worker processes handling only primary partitions\nand M worker processes handling handoff partitions. This gives\noperators a way to control the relative priorities.\n\nTo use separate workers, the operator must set *both*\nreplicator_primary_only_workers and\nreplicator_handoff_only_workers. Setting just one is invalid, and the\nreplicator will refuse to start.\n\nWhen both new config options are set, replicator_workers is\nignored. This way an operator cannot accidentally have primary-only,\nhandoff-only, and all-partitions workers at the same time.\n\nChange-Id: Iad468610b66b1bce82ab23f158a6f20e97025216\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c6a69d7aa40cd5815d33a8e3f1234e9d0244b7c5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c6a69d7aa40cd5815d33a8e3f1234e9d0244b7c5"}]},"branch":"refs/heads/master"},"c304dadcb5366d414525068bc222d66b69b67318":{"kind":"REWORK","_number":4,"created":"2018-06-28 00:56:18.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/13/578213/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/13/578213/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/13/578213/4"}}},"commit":{"parents":[{"commit":"3de21d945beb240ecd6bdf16aeec51c1d68571d0","subject":"Merge \"Remove empty part dirs during ssync replication\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3de21d945beb240ecd6bdf16aeec51c1d68571d0"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2018-06-26 21:33:32.000000000","tz":-420},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2018-06-28 00:54:57.000000000","tz":-420},"subject":"object-replicator: separate workers for primary/handoffs","message":"object-replicator: separate workers for primary/handoffs\n\nAfter a ring rebalance, it\u0027s a good idea to move (now-handoff)\npartitions to their new homes as quickly as possible. Having one\nreplicator process responsible for both primary and handoff partitions\ncan slow that process down since partitions are processed in\norder. The handoffs_first option helps, but a given replication pass\nmust still process all the primaries and all the handoffs before the\nnext pass can start.\n\nThis commit adds a new replicator_handoff_workers option to the object\nreplicator\u0027s configuration file.\n\nIf configured like so:\n\n    replicator_primary_only_workers \u003d N\n    replicator_handoff_only_workers \u003d M\n\nthen there will be N worker processes handling only primary partitions\nand M worker processes handling handoff partitions. This gives\noperators a way to control the relative priorities.\n\nTo use separate workers, the operator must set *both*\nreplicator_primary_only_workers and\nreplicator_handoff_only_workers. Setting just one is invalid, and the\nreplicator will refuse to start.\n\nWhen both new config options are set, replicator_workers is\nignored. This way an operator cannot accidentally have primary-only,\nhandoff-only, and all-partitions workers at the same time.\n\nChange-Id: Iad468610b66b1bce82ab23f158a6f20e97025216\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c304dadcb5366d414525068bc222d66b69b67318"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/c304dadcb5366d414525068bc222d66b69b67318"}]},"branch":"refs/heads/master"},"f9599fd9996685b569412ba677178d2527b97981":{"kind":"REWORK","_number":5,"created":"2018-06-28 17:35:01.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/13/578213/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/13/578213/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/13/578213/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/13/578213/5"}}},"commit":{"parents":[{"commit":"3de21d945beb240ecd6bdf16aeec51c1d68571d0","subject":"Merge \"Remove empty part dirs during ssync replication\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3de21d945beb240ecd6bdf16aeec51c1d68571d0"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2018-06-26 21:33:32.000000000","tz":-420},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2018-06-28 17:34:51.000000000","tz":-420},"subject":"object-replicator: separate workers for primary/handoffs","message":"object-replicator: separate workers for primary/handoffs\n\nAfter a ring rebalance, it\u0027s a good idea to move (now-handoff)\npartitions to their new homes as quickly as possible. Having one\nreplicator process responsible for both primary and handoff partitions\ncan slow that process down since partitions are processed in\norder. The handoffs_first option helps, but a given replication pass\nmust still process all the primaries and all the handoffs before the\nnext pass can start.\n\nThis commit adds a new replicator_handoff_workers option to the object\nreplicator\u0027s configuration file.\n\nIf configured like so:\n\n    replicator_primary_only_workers \u003d N\n    replicator_handoff_only_workers \u003d M\n\nthen there will be N worker processes handling only primary partitions\nand M worker processes handling handoff partitions. This gives\noperators a way to control the relative priorities.\n\nTo use separate workers, the operator must set *both*\nreplicator_primary_only_workers and\nreplicator_handoff_only_workers. Setting just one is invalid, and the\nreplicator will refuse to start.\n\nWhen both new config options are set, replicator_workers is\nignored. This way an operator cannot accidentally have primary-only,\nhandoff-only, and all-partitions workers at the same time.\n\nChange-Id: Iad468610b66b1bce82ab23f158a6f20e97025216\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f9599fd9996685b569412ba677178d2527b97981"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f9599fd9996685b569412ba677178d2527b97981"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
