)]}'
{"id":"openstack%2Fswift~32076","triplet_id":"openstack%2Fswift~master~Iea4cd367ed37fe5ee69b63234541d358d29963a4","project":"openstack/swift","branch":"master","topic":"bp/multi-region","hashtags":[],"change_id":"Iea4cd367ed37fe5ee69b63234541d358d29963a4","subject":"Local read affinity for GET/HEAD requests.","status":"MERGED","created":"2013-06-07 01:45:56.000000000","updated":"2013-06-11 19:36:39.000000000","submitted":"2013-06-11 19:36:39.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":9,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"d695e473173c0eeaa00989d09654be66836b7182","_number":32076,"virtual_id_number":32076,"owner":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"recommended":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"value":0,"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},{"value":0,"_account_id":7848,"name":"Caleb Tennis","email":"caleb.tennis@gmail.com","username":"ctennis"},{"value":0,"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"value":1,"date":"2013-06-11 00:15:44.000000000","_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},{"value":0,"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},{"value":2,"date":"2013-06-11 19:36:39.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"}],"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":{"approved":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"all":[{"value":0,"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"value":2,"date":"2013-06-11 06:23:45.000000000","_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},{"value":1,"date":"2013-06-11 15:42:59.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":7848,"name":"Caleb Tennis","email":"caleb.tennis@gmail.com","username":"ctennis"},{"value":2,"date":"2013-06-11 17:56:01.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"value":0,"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},{"value":1,"date":"2013-06-11 14:37:52.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"}],"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":{"approved":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"all":[{"value":0,"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"value":0,"date":"2013-06-11 06:23:45.000000000","_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},{"value":0,"date":"2013-06-11 15:40:09.000000000","_account_id":7848,"name":"Caleb Tennis","email":"caleb.tennis@gmail.com","username":"ctennis"},{"value":1,"date":"2013-06-11 17:56:01.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"value":0,"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},{"value":0,"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},{"_account_id":7848,"name":"Caleb Tennis","email":"caleb.tennis@gmail.com","username":"ctennis"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2013-06-11 00:15:44.000000000","updated_by":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"reviewer":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2013-06-11 06:23:45.000000000","updated_by":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"reviewer":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"state":"REVIEWER"},{"updated":"2013-06-11 14:37:52.000000000","updated_by":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"reviewer":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"state":"REVIEWER"},{"updated":"2013-06-11 15:40:09.000000000","updated_by":{"_account_id":7848,"name":"Caleb Tennis","email":"caleb.tennis@gmail.com","username":"ctennis"},"reviewer":{"_account_id":7848,"name":"Caleb Tennis","email":"caleb.tennis@gmail.com","username":"ctennis"},"state":"REVIEWER"},{"updated":"2013-06-11 17:56:01.000000000","updated_by":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"reviewer":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"state":"REVIEWER"},{"updated":"2013-06-11 19:36:39.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"0b498b6ab1e876284ffa86b1cc1d784473d3b3d8","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2013-06-07 01:48:20.000000000","message":"Patch Set 1:\n\nNote that there\u0027s also another patch working on the same thing, located at https://review.openstack.org/30445.\n\nI wrote this up because I had some ideas about how to do things differently than the other one, and rather than tediously describing the differences in English, it was much easier to write some code and chuck it in Gerrit for all to see.","accounts_in_message":[],"_revision_number":1},{"id":"8e1118d28fc70903325dd2d74bc3ee50afdaa998","author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"date":"2013-06-07 02:03:14.000000000","message":"Patch Set 1: I would prefer that you didn\u0027t merge this\n\n(1 inline comment)\n\nCan somebody explain more about how all these changes are supposed to come together?","accounts_in_message":[],"_revision_number":1},{"id":"a6e3edc8c155ea95d6c88db8a4a30f9026b8e31b","author":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"date":"2013-06-07 02:34:27.000000000","message":"Patch Set 1: Works for me\n\nSmokeStack Results (patch set 1):\n\tLibvirt (Fedora 18) Success: http://smokestack.openstack.org/?go\u003d/jobs/89760\n","accounts_in_message":[],"_revision_number":1},{"id":"e1371dcc47e0352fb484524986041183324d434c","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2013-06-07 03:38:44.000000000","message":"Patch Set 1: (1 inline comment)\n\nThe ultimate goal here is to be able to support a single Swift cluster with machines in several far-apart places, e.g. Hong Kong, Dallas, and Paris.\n\nThis piece is the read-locally piece. By that, I mean that a proxy should try to service GET requests from the backend server that\u0027s closest to it, because that way the response is faster and it causes less traffic on your expensive WAN links.\n\nHowever, I coded this one up in such a way that you can use it for zones as well as regions. For example, if you\u0027ve got cluster nodes in 3 distinct DC rooms (each one a zone in the ring), you can set the proxies in zone 1 (room 1) to prefer backend servers in zone 1 and so on. That way, when servicing a GET request, the proxy will go to the backends in its own DC room before the ones in the other rooms.\n\nThe nice thing about this one is that not only is it a piece of the wider \"global clusters\" story, it\u0027s a nice standalone piece too. Swift clusters can use this today to make the proxy-to-backend traffic patterns match the actual network patterns a little more closely, at least for reads. Even if everybody decided next week to give up on global clusters, this changeset would still (IMHO) be useful.","accounts_in_message":[],"_revision_number":1},{"id":"22e64153c49d99e13535f08516ccbd45e91ced27","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2013-06-07 03:39:57.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"349395519281bb294573c3836b9f91e2e3f7d1fc","author":{"_account_id":5494,"name":"Trivial Rebase","email":"trivial-rebase@review.openstack.org","username":"trivial-rebase"},"date":"2013-06-07 03:40:30.000000000","message":"Patch Set 2:\n\nNew patchset patch-id matches previous patchset, but commit message has changed.","accounts_in_message":[],"_revision_number":2},{"id":"e4195e5571934e337fba19d41b77c030a264e685","author":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"date":"2013-06-07 04:00:58.000000000","message":"Patch Set 2: Works for me\n\nSmokeStack Results (patch set 2):\n\tLibvirt (Fedora 18) Success: http://smokestack.openstack.org/?go\u003d/jobs/89783\n","accounts_in_message":[],"_revision_number":2},{"id":"8e01eceeff55823f3b08a32d3ddca80b66025c95","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-06-07 04:37:35.000000000","message":"Patch Set 2: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/32076/2/check/gate-swift-pep8/2636 : SUCCESS in 52s\n- http://docs-draft.openstack.org/32076/2/check/gate-swift-docs/2466/doc/build/html/ : SUCCESS in 1m 16s\n- http://logs.openstack.org/32076/2/check/gate-swift-python26/2714 : SUCCESS in 2m 37s\n- http://logs.openstack.org/32076/2/check/gate-swift-python27/2712 : SUCCESS in 1m 21s\n- http://logs.openstack.org/32076/2/check/gate-tempest-devstack-vm-full/21366 : SUCCESS in 44m 25s\n- http://logs.openstack.org/32076/2/check/gate-tempest-devstack-vm-quantum/28480 : SUCCESS in 19m 30s\n- http://logs.openstack.org/32076/2/check/gate-tempest-devstack-vm-postgres-full/21073 : SUCCESS in 55m 28s\n- http://logs.openstack.org/32076/2/check/gate-grenade-devstack-vm/8655 : SUCCESS in 15m 04s (non-voting)\n","accounts_in_message":[],"_revision_number":2},{"id":"a988cb4f6557ac62acf84e68606f6ded4492b84b","author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"date":"2013-06-08 00:08:50.000000000","message":"Patch Set 2: (1 inline comment)\n\n","accounts_in_message":[],"_revision_number":2},{"id":"b08b61d19e5251f506dbb6865a94db0b56f17629","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2013-06-08 18:15:35.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"dd2d954cee50041a3e42a8853e06306d2260f886","author":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"date":"2013-06-08 18:34:38.000000000","message":"Patch Set 3: Works for me\n\nSmokeStack Results (patch set 3):\n\tLibvirt (Fedora 18) Success: http://smokestack.openstack.org/?go\u003d/jobs/90117\n","accounts_in_message":[],"_revision_number":3},{"id":"1e98f7ee53045824d8a5a8dd4eec7fb6da5f4da4","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-06-08 19:02:47.000000000","message":"Patch Set 3: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/32076/3/check/gate-swift-pep8/2671 : SUCCESS in 47s\n- http://docs-draft.openstack.org/32076/3/check/gate-swift-docs/2501/doc/build/html/ : SUCCESS in 59s\n- http://logs.openstack.org/32076/3/check/gate-swift-python26/2749 : SUCCESS in 1m 43s\n- http://logs.openstack.org/32076/3/check/gate-swift-python27/2747 : SUCCESS in 1m 00s\n- http://logs.openstack.org/32076/3/check/gate-tempest-devstack-vm-full/21689 : SUCCESS in 43m 26s\n- http://logs.openstack.org/32076/3/check/gate-tempest-devstack-vm-quantum/28851 : SUCCESS in 17m 56s\n- http://logs.openstack.org/32076/3/check/gate-tempest-devstack-vm-postgres-full/21396 : SUCCESS in 46m 59s\n- http://logs.openstack.org/32076/3/check/gate-grenade-devstack-vm/8949 : SUCCESS in 14m 01s (non-voting)\n","accounts_in_message":[],"_revision_number":3},{"id":"005f50766632356e49bfe4e4bbf3d6da4195538b","author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"date":"2013-06-10 15:37:30.000000000","message":"Patch Set 3: Looks good to me, but someone else must approve\n\n(3 inline comments)\n\n","accounts_in_message":[],"_revision_number":3},{"id":"3ea43274af87323d039da8889b66a650033ce088","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2013-06-10 18:03:29.000000000","message":"Patch Set 3: (2 inline comments)\n\n","accounts_in_message":[],"_revision_number":3},{"id":"64b55a49711eef38b5d872d72eef56c0addb5102","author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"date":"2013-06-10 22:48:16.000000000","message":"Patch Set 3: Looks good to me (core reviewer)\n\n(1 inline comment)\n\nWorks for me.  I also chimed in on the .conf-sample copy.","accounts_in_message":[],"_revision_number":3},{"id":"0a560d955482a78c991d5930398d69e7314f186e","author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"date":"2013-06-10 23:52:36.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"c1682ecea58a6720fbff1d1696c727460f473012","author":{"_account_id":2166,"name":"SmokeStack CI","username":"smokestack","tags":["SERVICE_USER"]},"date":"2013-06-11 00:15:44.000000000","message":"Patch Set 4: Works for me\n\nSmokeStack Results (patch set 4):\n\tLibvirt (Fedora 18) Success: http://smokestack.openstack.org/?go\u003d/jobs/90468\n","accounts_in_message":[],"_revision_number":4},{"id":"c5d5670ce3162c29b8b31fe0b636653ed02ddea7","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-06-11 00:47:54.000000000","message":"Patch Set 4: Works for me\n\nBuild succeeded.\n\n- http://logs.openstack.org/32076/4/check/gate-swift-pep8/2688 : SUCCESS in 46s\n- http://docs-draft.openstack.org/32076/4/check/gate-swift-docs/2518/doc/build/html/ : SUCCESS in 1m 03s\n- http://logs.openstack.org/32076/4/check/gate-swift-python26/2766 : SUCCESS in 2m 41s\n- http://logs.openstack.org/32076/4/check/gate-swift-python27/2764 : SUCCESS in 1m 03s\n- http://logs.openstack.org/32076/4/check/gate-tempest-devstack-vm-full/22068 : SUCCESS in 44m 54s\n- http://logs.openstack.org/32076/4/check/gate-tempest-devstack-vm-quantum/29292 : SUCCESS in 18m 28s\n- http://logs.openstack.org/32076/4/check/gate-tempest-devstack-vm-postgres-full/21775 : SUCCESS in 55m 03s\n- http://logs.openstack.org/32076/4/check/gate-grenade-devstack-vm/9241 : SUCCESS in 14m 04s (non-voting)\n","accounts_in_message":[],"_revision_number":4},{"id":"635233f345b3e4c95244a8af459751afbfd7401c","author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"date":"2013-06-11 06:23:45.000000000","message":"Patch Set 4: Looks good to me (core reviewer)\n\nlgtm","accounts_in_message":[],"_revision_number":4},{"id":"6f9ac4b8404124c39ca6b6944b023740f76b1a8c","author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"date":"2013-06-11 14:37:52.000000000","message":"Patch Set 4: Looks good to me, but someone else must approve\n\n","accounts_in_message":[],"_revision_number":4},{"id":"8a322713e613e8e335bf3624be60175e744ef041","author":{"_account_id":7848,"name":"Caleb Tennis","email":"caleb.tennis@gmail.com","username":"ctennis"},"date":"2013-06-11 15:42:59.000000000","message":"Patch Set 4: Looks good to me, but someone else must approve\n\nI tested the patch in a multi-region setup, and did some benchmarking before  merging, after merging and enabling regional preference, then disabling all storage servers in the region and rerunning so the proxy would have to pull reads from the other region (at a higher latency).  Worked as expected.","accounts_in_message":[],"_revision_number":4},{"id":"0e4fea2ec20a9dcb5337868efd759dbade936c17","author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"date":"2013-06-11 17:56:01.000000000","message":"Patch Set 4: Looks good to me (core reviewer); Approved\n\n","accounts_in_message":[],"_revision_number":4},{"id":"e4776187d442fb66ea6771e0f5a207bb1a76f643","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-06-11 17:56:22.000000000","message":"Patch Set 4: No score\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":4},{"id":"cfff594812855ef47911a8ae3b9c302a255bff6a","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-06-11 19:36:39.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":4},{"id":"83ef3e47c9a798a4c01ea55a0d0934b56e83e4d1","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-06-11 19:36:39.000000000","message":"Patch Set 4: Verified\n\nBuild succeeded.\n\n- http://docs-draft.openstack.org/32076/4/gate/gate-swift-docs/2536/doc/build/html/ : SUCCESS in 1m 06s\n- http://logs.openstack.org/32076/4/gate/gate-swift-pep8/2706 : SUCCESS in 45s\n- http://logs.openstack.org/32076/4/gate/gate-swift-python26/2784 : SUCCESS in 1m 49s\n- http://logs.openstack.org/32076/4/gate/gate-swift-python27/2782 : SUCCESS in 1m 03s\n- http://logs.openstack.org/32076/4/gate/gate-tempest-devstack-vm-full/22331 : SUCCESS in 46m 50s\n- http://logs.openstack.org/32076/4/gate/gate-tempest-devstack-vm-quantum/29583 : SUCCESS in 20m 13s\n- http://logs.openstack.org/32076/4/gate/gate-tempest-devstack-vm-postgres-full/22038 : SUCCESS in 47m 27s\n- http://logs.openstack.org/32076/4/gate/gate-grenade-devstack-vm/9487 : SUCCESS in 20m 19s (non-voting)\n","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"f559c50acb40f79e86dc1fe653da0c5da7e3a959","revisions":{"6a21ff049a31f55f36be55a557450abd9767607a":{"kind":"REWORK","_number":1,"created":"2013-06-07 01:45:56.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/76/32076/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/76/32076/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/76/32076/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/76/32076/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/76/32076/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/76/32076/1"}}},"commit":{"parents":[{"commit":"63a5a93734d76a649610df11d24085c0dbe6dc8e","subject":"Merge \"Change to use dash instead of slash\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/63a5a93734d76a649610df11d24085c0dbe6dc8e"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2013-06-07 01:01:35.000000000","tz":-420},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2013-06-07 01:41:40.000000000","tz":-420},"subject":"Local read affinity for GET/HEAD requests.","message":"Local read affinity for GET/HEAD requests.\n\nNow you can configure the proxy server to read from \"local\" primary\nnodes first, where \"local\" is governed by the newly-introduced\n\"read_affinity\" setting in the proxy config.\n\nThe new setting looks like rN[zM]\u003dP, where N is the region number, M\nis the optional zone number, and P is the priority. Multiple values\ncan be specified by separating them with commas. The priority for\nnodes that don\u0027t match anything is a very large number, so they\u0027ll\nsort last.\n\nThis only affects the ordering of the primary nodes; it doesn\u0027t affect\nhandoffs at all. Further, while the primary nodes are reordered for\nall requests, it only matters for GET/HEAD requests since handling the\nother verbs ends up making concurrent requests to *all* the primary\nnodes, so ordering is irrelevant.\n\nblueprint proxy-affinity\n\nChange-Id: Iea4cd367ed37fe5ee69b63234541d358d29963a4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6a21ff049a31f55f36be55a557450abd9767607a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6a21ff049a31f55f36be55a557450abd9767607a"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"63a5a93734d76a649610df11d24085c0dbe6dc8e","is_merged_in_target_branch":true}],"branch":"refs/heads/master"},"ebac4011a318463988c3b20c39c4d0dbe74a49ec":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2013-06-07 03:39:57.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/76/32076/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/76/32076/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/76/32076/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/76/32076/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/76/32076/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/76/32076/2"}}},"commit":{"parents":[{"commit":"63a5a93734d76a649610df11d24085c0dbe6dc8e","subject":"Merge \"Change to use dash instead of slash\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/63a5a93734d76a649610df11d24085c0dbe6dc8e"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2013-06-07 01:01:35.000000000","tz":-420},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2013-06-07 03:39:01.000000000","tz":-420},"subject":"Local read affinity for GET/HEAD requests.","message":"Local read affinity for GET/HEAD requests.\n\nNow you can configure the proxy server to read from \"local\" primary\nnodes first, where \"local\" is governed by the newly-introduced\n\"read_affinity\" setting in the proxy config.\n\nThe new setting looks like rN[zM]\u003dP, where N is the region number, M\nis the optional zone number, and P is the priority. Multiple values\ncan be specified by separating them with commas. The priority for\nnodes that don\u0027t match anything is a very large number, so they\u0027ll\nsort last.\n\nThis only affects the ordering of the primary nodes; it doesn\u0027t affect\nhandoffs at all. Further, while the primary nodes are reordered for\nall requests, it only matters for GET/HEAD requests since handling the\nother verbs ends up making concurrent requests to *all* the primary\nnodes, so ordering is irrelevant.\n\nblueprint multi-region\n\nChange-Id: Iea4cd367ed37fe5ee69b63234541d358d29963a4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ebac4011a318463988c3b20c39c4d0dbe74a49ec"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ebac4011a318463988c3b20c39c4d0dbe74a49ec"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"63a5a93734d76a649610df11d24085c0dbe6dc8e","is_merged_in_target_branch":true}],"branch":"refs/heads/master"},"e1338894193c59cd9ac0fec79678c5e56cde44bf":{"kind":"REWORK","_number":3,"created":"2013-06-08 18:15:35.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/76/32076/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/76/32076/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/76/32076/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/76/32076/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/76/32076/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/76/32076/3"}}},"commit":{"parents":[{"commit":"63a5a93734d76a649610df11d24085c0dbe6dc8e","subject":"Merge \"Change to use dash instead of slash\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/63a5a93734d76a649610df11d24085c0dbe6dc8e"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2013-06-07 01:01:35.000000000","tz":-420},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2013-06-08 18:12:57.000000000","tz":-420},"subject":"Local read affinity for GET/HEAD requests.","message":"Local read affinity for GET/HEAD requests.\n\nNow you can configure the proxy server to read from \"local\" primary\nnodes first, where \"local\" is governed by the newly-introduced\n\"read_affinity\" setting in the proxy config. This is desirable when\nthe network links between regions/zones are of varying capacities; in\nsuch a case, it\u0027s a good idea to prefer fetching data from closer\nbackends.\n\nThe new setting looks like rN[zM]\u003dP, where N is the region number, M\nis the optional zone number, and P is the priority. Multiple values\ncan be specified by separating them with commas. The priority for\nnodes that don\u0027t match anything is a very large number, so they\u0027ll\nsort last.\n\nThis only affects the ordering of the primary nodes; it doesn\u0027t affect\nhandoffs at all. Further, while the primary nodes are reordered for\nall requests, it only matters for GET/HEAD requests since handling the\nother verbs ends up making concurrent requests to *all* the primary\nnodes, so ordering is irrelevant.\n\nNote that the default proxy config does not have this setting turned\non, so the default configuration\u0027s behavior is unaffected.\n\nblueprint multi-region\n\nChange-Id: Iea4cd367ed37fe5ee69b63234541d358d29963a4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e1338894193c59cd9ac0fec79678c5e56cde44bf"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e1338894193c59cd9ac0fec79678c5e56cde44bf"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"63a5a93734d76a649610df11d24085c0dbe6dc8e","is_merged_in_target_branch":true}],"branch":"refs/heads/master"},"f559c50acb40f79e86dc1fe653da0c5da7e3a959":{"kind":"REWORK","_number":4,"created":"2013-06-10 23:52:36.000000000","uploader":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"ref":"refs/changes/76/32076/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/76/32076/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/76/32076/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/76/32076/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/76/32076/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/76/32076/4"}}},"commit":{"parents":[{"commit":"4077252f233888887b797208895bbd5f2beca0c9","subject":"Merge \"Make sample configs more readable.\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4077252f233888887b797208895bbd5f2beca0c9"}]}],"author":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2013-06-07 01:01:35.000000000","tz":-420},"committer":{"name":"Samuel Merritt","email":"sam@swiftstack.com","date":"2013-06-10 23:51:47.000000000","tz":-420},"subject":"Local read affinity for GET/HEAD requests.","message":"Local read affinity for GET/HEAD requests.\n\nNow you can configure the proxy server to read from \"local\" primary\nnodes first, where \"local\" is governed by the newly-introduced\n\"read_affinity\" setting in the proxy config. This is desirable when\nthe network links between regions/zones are of varying capacities; in\nsuch a case, it\u0027s a good idea to prefer fetching data from closer\nbackends.\n\nThe new setting looks like rN[zM]\u003dP, where N is the region number, M\nis the optional zone number, and P is the priority. Multiple values\ncan be specified by separating them with commas. The priority for\nnodes that don\u0027t match anything is a very large number, so they\u0027ll\nsort last.\n\nThis only affects the ordering of the primary nodes; it doesn\u0027t affect\nhandoffs at all. Further, while the primary nodes are reordered for\nall requests, it only matters for GET/HEAD requests since handling the\nother verbs ends up making concurrent requests to *all* the primary\nnodes, so ordering is irrelevant.\n\nNote that the default proxy config does not have this setting turned\non, so the default configuration\u0027s behavior is unaffected.\n\nblueprint multi-region\n\nChange-Id: Iea4cd367ed37fe5ee69b63234541d358d29963a4\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f559c50acb40f79e86dc1fe653da0c5da7e3a959"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/f559c50acb40f79e86dc1fe653da0c5da7e3a959"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"4077252f233888887b797208895bbd5f2beca0c9","is_merged_in_target_branch":true}],"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
