)]}'
{"id":"openstack%2Fplacement~674048","triplet_id":"openstack%2Fplacement~master~Ic4e0cdd87f8f2d76b921059ac4bf16a838913abf","project":"openstack/placement","branch":"master","topic":"cd/de-tuple","hashtags":[],"change_id":"Ic4e0cdd87f8f2d76b921059ac4bf16a838913abf","subject":"Use expanding bindparam in provider_ids_from_rp_ids in_","status":"MERGED","created":"2019-08-01 14:27:41.000000000","updated":"2019-08-02 17:38:44.000000000","submitted":"2019-08-02 17:38:44.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"674048-1564767524863-3342d8ab","meta_rev_id":"1aa28e47749bdf336b4583cb9edb4105858b158e","_number":674048,"virtual_id_number":674048,"owner":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":2,"date":"2019-08-02 17:38:44.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"all":[{"value":2,"date":"2019-08-02 15:17:04.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"}],"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":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"all":[{"value":1,"date":"2019-08-02 15:17:04.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"value":0,"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-08-02 13:25:57.000000000","updated_by":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"reviewer":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"state":"REVIEWER"},{"updated":"2019-08-02 15:17:04.000000000","updated_by":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"reviewer":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"state":"REVIEWER"},{"updated":"2019-08-02 17:38:44.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":"80ee29ea30e4de8fe0a614e66c27750d7f73f85c","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-08-01 14:27:41.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"edb522683058469c8fbba15eabcb1d260db1bc6e","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-08-01 15:02:29.000000000","message":"Patch Set 1: Code-Review-1\n\n(1 comment)\n\nNeed to bump required sqlalchemy version of the expanding kwarg.","accounts_in_message":[],"_revision_number":1},{"id":"c022c9decb050c420fed82023994dea647987bd9","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-08-01 15:26:32.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"9abecda5aae4aebd5684a9b11b7dd0074b9b930e","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-08-01 15:30:44.000000000","message":"Patch Set 2: Code-Review+1\n\nlgtm, just waiting on CI results. I can\u0027t really speak much to the actual change itself, the docs on this are a bit confusing to me, but it was recommended by zzzeek himself so I\u0027ll trust in that.\n\nI know that baked queries was also mentioned in IRC and it sounds like maybe this will replace that (?), and I\u0027ve seen some changes to neutron - or neutron plugins - that fixed some major performance issues with using baked queries (I only saw those changes b/c they were proposed as stable backports), but anyway it sounds like we should be doing this (and nova would probably gain from this stuff as well but no one is doing that type of auditing unfortunately).","accounts_in_message":[],"_revision_number":2},{"id":"ef40476f2d848ccf52e8fca5159718b8b1020ec9","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-08-01 15:36:19.000000000","message":"Patch Set 2:\n\n\u003e I know that baked queries was also mentioned in IRC and it sounds\n \u003e like maybe this will replace that (?), and I\u0027ve seen some changes\n \u003e to neutron - or neutron plugins - that fixed some major performance\n \u003e issues with using baked queries (I only saw those changes b/c they\n \u003e were proposed as stable backports), but anyway it sounds like we\n \u003e should be doing this (and nova would probably gain from this stuff\n \u003e as well but no one is doing that type of auditing unfortunately).\n\nWe talked about baked queries in IRC, and apparently they really only come into play when using ORM features, which placement uses only rarely (and not in the queries changed here).","accounts_in_message":[],"_revision_number":2},{"id":"0c0336ec62cb2403c0158dc36dde79b8f621cea5","author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"date":"2019-08-01 21:48:09.000000000","message":"Uploaded patch set 3: Patch Set 2 was rebased.","accounts_in_message":[],"_revision_number":3},{"id":"20e42008fb45542cd309c4336d819cec7ea71b03","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-02 03:23:45.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- grenade-py3 https://logs.opendev.org/48/674048/3/check/grenade-py3/107d5fb/ : SUCCESS in 1h 01m 58s\n- tempest-integrated-placement https://logs.opendev.org/48/674048/3/check/tempest-integrated-placement/c808b81/ : SUCCESS in 1h 41m 50s\n- openstack-tox-docs https://logs.opendev.org/48/674048/3/check/openstack-tox-docs/e9b8a87/html/ : SUCCESS in 4m 42s\n- openstack-tox-cover https://logs.opendev.org/48/674048/3/check/openstack-tox-cover/51e173c/cover/ : SUCCESS in 5m 29s\n- openstack-tox-lower-constraints https://logs.opendev.org/48/674048/3/check/openstack-tox-lower-constraints/4ab9f04/ : SUCCESS in 6m 20s\n- openstack-tox-pep8 https://logs.opendev.org/48/674048/3/check/openstack-tox-pep8/d6db791/ : SUCCESS in 4m 04s\n- openstack-tox-py27 https://logs.opendev.org/48/674048/3/check/openstack-tox-py27/8235414/ : SUCCESS in 5m 22s\n- openstack-tox-py36 https://logs.opendev.org/48/674048/3/check/openstack-tox-py36/c2bf4a5/ : SUCCESS in 4m 48s\n- openstack-tox-py37 https://logs.opendev.org/48/674048/3/check/openstack-tox-py37/81f86ea/ : SUCCESS in 5m 30s\n- openstack-tox-functional https://logs.opendev.org/48/674048/3/check/openstack-tox-functional/224dc9b/ : SUCCESS in 4m 42s\n- openstack-tox-functional-py36 https://logs.opendev.org/48/674048/3/check/openstack-tox-functional-py36/05c5c03/ : SUCCESS in 5m 49s\n- openstack-tox-functional-py37 https://logs.opendev.org/48/674048/3/check/openstack-tox-functional-py37/d018aac/ : SUCCESS in 7m 12s\n- placement-nova-tox-functional-py37 https://logs.opendev.org/48/674048/3/check/placement-nova-tox-functional-py37/965c5de/ : SUCCESS in 12m 59s\n- placement-nested-perfload https://logs.opendev.org/48/674048/3/check/placement-nested-perfload/0d518bc/ : SUCCESS in 16m 39s (non-voting)\n- placement-perfload https://logs.opendev.org/48/674048/3/check/placement-perfload/85cc433/ : SUCCESS in 8m 38s (non-voting)\n- tempest-ipv6-only https://logs.opendev.org/48/674048/3/check/tempest-ipv6-only/f25efb7/ : SUCCESS in 1h 04m 34s","accounts_in_message":[],"_revision_number":3},{"id":"8873b35e0fc499ba523c981b03091a5868b20512","author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"date":"2019-08-02 13:25:57.000000000","message":"Patch Set 3: Code-Review+2","accounts_in_message":[],"_revision_number":3},{"id":"5217048d1d3f49eb3ed4b480f0ad805966c2b23e","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-08-02 14:30:36.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"01ca4393621d9676c93b07c077e9ad4e4b956ab7","author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"date":"2019-08-02 15:17:04.000000000","message":"Patch Set 4: Code-Review+2 Workflow+1\n\nThis is identical to PS3 where Matt was +2, so fast approving.","accounts_in_message":[],"_revision_number":4},{"id":"7c4f1d8dbed890adeaa2d7e04752e57b517741a7","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-02 16:05:55.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- grenade-py3 https://logs.opendev.org/48/674048/4/check/grenade-py3/4bd973f/ : SUCCESS in 1h 09m 18s\n- tempest-integrated-placement https://logs.opendev.org/48/674048/4/check/tempest-integrated-placement/90c9b90/ : SUCCESS in 1h 24m 01s\n- openstack-tox-docs https://logs.opendev.org/48/674048/4/check/openstack-tox-docs/182097f/html/ : SUCCESS in 7m 46s\n- openstack-tox-cover https://logs.opendev.org/48/674048/4/check/openstack-tox-cover/b059158/cover/ : SUCCESS in 8m 40s\n- openstack-tox-lower-constraints https://logs.opendev.org/48/674048/4/check/openstack-tox-lower-constraints/9e45027/ : SUCCESS in 6m 17s\n- openstack-tox-pep8 https://logs.opendev.org/48/674048/4/check/openstack-tox-pep8/c18383e/ : SUCCESS in 4m 24s\n- openstack-tox-py27 https://logs.opendev.org/48/674048/4/check/openstack-tox-py27/bce91a1/ : SUCCESS in 5m 59s\n- openstack-tox-py36 https://logs.opendev.org/48/674048/4/check/openstack-tox-py36/034e110/ : SUCCESS in 5m 31s\n- openstack-tox-py37 https://logs.opendev.org/48/674048/4/check/openstack-tox-py37/28ee1c4/ : SUCCESS in 5m 21s\n- openstack-tox-functional https://logs.opendev.org/48/674048/4/check/openstack-tox-functional/26019bc/ : SUCCESS in 5m 37s\n- openstack-tox-functional-py36 https://logs.opendev.org/48/674048/4/check/openstack-tox-functional-py36/9f6c0bf/ : SUCCESS in 4m 48s\n- openstack-tox-functional-py37 https://logs.opendev.org/48/674048/4/check/openstack-tox-functional-py37/edab323/ : SUCCESS in 5m 02s\n- placement-nova-tox-functional-py37 https://logs.opendev.org/48/674048/4/check/placement-nova-tox-functional-py37/2eae1c7/ : SUCCESS in 15m 20s\n- placement-nested-perfload https://logs.opendev.org/48/674048/4/check/placement-nested-perfload/ed8dd10/ : SUCCESS in 15m 11s (non-voting)\n- placement-perfload https://logs.opendev.org/48/674048/4/check/placement-perfload/aa7374e/ : SUCCESS in 7m 17s (non-voting)\n- tempest-ipv6-only https://logs.opendev.org/48/674048/4/check/tempest-ipv6-only/9a71c86/ : SUCCESS in 56m 27s","accounts_in_message":[],"_revision_number":4},{"id":"0d8c767952a92821b3254c824c01c96db355afd0","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-02 16:06:15.000000000","message":"Patch Set 4: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":4},{"id":"8721b72177e1062b10a8ae9dd6d88abec6987b54","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-02 17:38:44.000000000","message":"Patch Set 4: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- grenade-py3 https://logs.opendev.org/48/674048/4/gate/grenade-py3/809ec4d/ : SUCCESS in 1h 08m 18s\n- tempest-integrated-placement https://logs.opendev.org/48/674048/4/gate/tempest-integrated-placement/87db044/ : SUCCESS in 1h 13m 45s\n- openstack-tox-docs https://logs.opendev.org/48/674048/4/gate/openstack-tox-docs/ff4a6ad/html/ : SUCCESS in 4m 03s\n- openstack-tox-lower-constraints https://logs.opendev.org/48/674048/4/gate/openstack-tox-lower-constraints/884ff66/ : SUCCESS in 5m 17s\n- openstack-tox-pep8 https://logs.opendev.org/48/674048/4/gate/openstack-tox-pep8/fa34b66/ : SUCCESS in 4m 17s\n- openstack-tox-py27 https://logs.opendev.org/48/674048/4/gate/openstack-tox-py27/fbc3a9c/ : SUCCESS in 6m 03s\n- openstack-tox-py36 https://logs.opendev.org/48/674048/4/gate/openstack-tox-py36/1940844/ : SUCCESS in 5m 53s\n- openstack-tox-py37 https://logs.opendev.org/48/674048/4/gate/openstack-tox-py37/33a77b2/ : SUCCESS in 5m 41s\n- openstack-tox-functional https://logs.opendev.org/48/674048/4/gate/openstack-tox-functional/02bfb41/ : SUCCESS in 4m 45s\n- openstack-tox-functional-py36 https://logs.opendev.org/48/674048/4/gate/openstack-tox-functional-py36/95e6e68/ : SUCCESS in 5m 32s\n- openstack-tox-functional-py37 https://logs.opendev.org/48/674048/4/gate/openstack-tox-functional-py37/b7eba8e/ : SUCCESS in 6m 27s\n- placement-nova-tox-functional-py37 https://logs.opendev.org/48/674048/4/gate/placement-nova-tox-functional-py37/fcb3b43/ : SUCCESS in 12m 35s\n- tempest-ipv6-only https://logs.opendev.org/48/674048/4/gate/tempest-ipv6-only/1ceda03/ : SUCCESS in 1h 08m 29s","accounts_in_message":[],"_revision_number":4},{"id":"c3b4161b8fd4ab75da26f28705f69b52852d19a4","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-02 17:38:44.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"d4d9457aa10c3309cae00b40598b3cec8b1c793a","revisions":{"7e74bfd9ff7e978ae82b9ed2b36e99ae7636ffb3":{"kind":"REWORK","_number":1,"created":"2019-08-01 14:27:41.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/48/674048/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/48/674048/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/48/674048/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/48/674048/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/48/674048/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/48/674048/1"}}},"commit":{"parents":[{"commit":"985bffa1f318171cc635b0d6e9ea0dda762ff45b","subject":"Remove double join in provider_ids_from_rp_ids","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/985bffa1f318171cc635b0d6e9ea0dda762ff45b"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-08-01 14:22:53.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-08-01 14:22:53.000000000","tz":60},"subject":"Use expanding bindparam in provider_ids_from_rp_ids in_","message":"Use expanding bindparam in provider_ids_from_rp_ids in_\n\nThis was explored as part of discussion with zzzeek on various\nways to make a statement with a large in_ be more performant.\n\nBatching the queries by chunking rp_ids did not help, but an\nexpanding bindparam did: it makes the surrounding method about\n50% faster [1].\n\n[1] With the caveat that profiling and benchmarking are very\ndifferent things, and in this case it is profiling results\nwhich are being analysed.\n\nChange-Id: Ic4e0cdd87f8f2d76b921059ac4bf16a838913abf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/7e74bfd9ff7e978ae82b9ed2b36e99ae7636ffb3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/7e74bfd9ff7e978ae82b9ed2b36e99ae7636ffb3"}]},"branch":"refs/heads/master"},"d53da46c88d188f4b319c61818ef0dcd00f31539":{"kind":"REWORK","_number":2,"created":"2019-08-01 15:26:32.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/48/674048/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/48/674048/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/48/674048/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/48/674048/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/48/674048/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/48/674048/2"}}},"commit":{"parents":[{"commit":"5dece7144acb3783eb98c06be968727fa96461f7","subject":"Remove double join in provider_ids_from_rp_ids","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/5dece7144acb3783eb98c06be968727fa96461f7"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-08-01 14:22:53.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-08-01 15:24:52.000000000","tz":60},"subject":"Use expanding bindparam in provider_ids_from_rp_ids in_","message":"Use expanding bindparam in provider_ids_from_rp_ids in_\n\nThis was explored as part of discussion with zzzeek on various\nways to make a statement with a large in_ be more performant.\n\nBatching the queries by chunking rp_ids did not help, but an\nexpanding bindparam did: it makes the surrounding method about\n50% faster [1].\n\nbindparam expanding was added in sqlalchemy 1.2.0 so we bump\nthe requirements here to the latest 1.2.x bugfix release,\n1.2.19.\n\n[1] With the caveat that profiling and benchmarking are very\ndifferent things, and in this case it is profiling results\nwhich are being analysed.\n\nChange-Id: Ic4e0cdd87f8f2d76b921059ac4bf16a838913abf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/d53da46c88d188f4b319c61818ef0dcd00f31539"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/d53da46c88d188f4b319c61818ef0dcd00f31539"}]},"branch":"refs/heads/master"},"6ee6f610f07ebf82ee5844d3e0327dc3fd823221":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2019-08-01 21:48:09.000000000","uploader":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"ref":"refs/changes/48/674048/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/48/674048/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/48/674048/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/48/674048/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/48/674048/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/48/674048/3"}}},"commit":{"parents":[{"commit":"07ebff7ab10af479ecad082a0e7841531117baad","subject":"Remove double join in provider_ids_from_rp_ids","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/07ebff7ab10af479ecad082a0e7841531117baad"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-08-01 14:22:53.000000000","tz":60},"committer":{"name":"Eric Fried","email":"openstack@fried.cc","date":"2019-08-01 21:48:02.000000000","tz":-300},"subject":"Use expanding bindparam in provider_ids_from_rp_ids in_","message":"Use expanding bindparam in provider_ids_from_rp_ids in_\n\nThis was explored as part of discussion with zzzeek on various\nways to make a statement with a large in_ be more performant.\n\nBatching the queries by chunking rp_ids did not help, but an\nexpanding bindparam did: it makes the surrounding method about\n50% faster [1].\n\nbindparam expanding was added in sqlalchemy 1.2.0 so we bump\nthe requirements here to the latest 1.2.x bugfix release,\n1.2.19.\n\n[1] With the caveat that profiling and benchmarking are very\ndifferent things, and in this case it is profiling results\nwhich are being analysed.\n\nChange-Id: Ic4e0cdd87f8f2d76b921059ac4bf16a838913abf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/6ee6f610f07ebf82ee5844d3e0327dc3fd823221"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/6ee6f610f07ebf82ee5844d3e0327dc3fd823221"}]},"branch":"refs/heads/master"},"d4d9457aa10c3309cae00b40598b3cec8b1c793a":{"kind":"REWORK","_number":4,"created":"2019-08-02 14:30:36.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/48/674048/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/48/674048/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/48/674048/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/48/674048/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/48/674048/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/48/674048/4"}}},"commit":{"parents":[{"commit":"8626b6517b8e975fbcbd59842b9316608886b6c7","subject":"Remove ProviderIds namedtuple","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/8626b6517b8e975fbcbd59842b9316608886b6c7"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-08-01 14:22:53.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-08-02 14:25:30.000000000","tz":60},"subject":"Use expanding bindparam in provider_ids_from_rp_ids in_","message":"Use expanding bindparam in provider_ids_from_rp_ids in_\n\nThis was explored as part of discussion with zzzeek on various\nways to make a statement with a large in_ be more performant.\n\nBatching the queries by chunking rp_ids did not help, but an\nexpanding bindparam did: it makes the surrounding method about\n50% faster [1].\n\nbindparam expanding was added in sqlalchemy 1.2.0 so we bump\nthe requirements here to the latest 1.2.x bugfix release,\n1.2.19.\n\n[1] With the caveat that profiling and benchmarking are very\ndifferent things, and in this case it is profiling results\nwhich are being analysed.\n\nChange-Id: Ic4e0cdd87f8f2d76b921059ac4bf16a838913abf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/d4d9457aa10c3309cae00b40598b3cec8b1c793a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/d4d9457aa10c3309cae00b40598b3cec8b1c793a"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
