)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cdc5fd3191de3c98c0a8e2db3c540aa127391313","unresolved":false,"context_lines":[{"line_number":17,"context_line":"weight \u003d w1_multiplier * norm(w1) + w2_multiplier * norm(w2) + ..."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"As it is controlled by config options, the weights are global across the"},{"line_number":20,"context_line":"whole deployment, this is not convinient enough for operators and users."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This Spec propose to be able to override the weight configuration"},{"line_number":23,"context_line":"options by ``flavor extra specs`` and ``schduler hints`` to provide a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_457e5419","line":20,"range":{"start_line":20,"start_character":30,"end_line":20,"end_character":40},"updated":"2018-09-07 20:52:38.000000000","message":"s/convenient/efficient/ ?\n\nI mean, the goal here is to maximize usage of as few compute hosts as possible, correct? In other words, in a cloud that is using a pack-first scheduling strategy (which nova does by default), this is a way to provide more fine-grained control over resource weights by applying it on a per-flavor basis rather than globally, e.g. all things equal for CPU, weigh on NUMA.","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cdc5fd3191de3c98c0a8e2db3c540aa127391313","unresolved":false,"context_lines":[{"line_number":19,"context_line":"As it is controlled by config options, the weights are global across the"},{"line_number":20,"context_line":"whole deployment, this is not convinient enough for operators and users."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This Spec propose to be able to override the weight configuration"},{"line_number":23,"context_line":"options by ``flavor extra specs`` and ``schduler hints`` to provide a"},{"line_number":24,"context_line":"more granular and flexiable control during scheduling."},{"line_number":25,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_c5b824c9","line":22,"range":{"start_line":22,"start_character":5,"end_line":22,"end_character":17},"updated":"2018-09-07 20:52:38.000000000","message":"spec proposes","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cdc5fd3191de3c98c0a8e2db3c540aa127391313","unresolved":false,"context_lines":[{"line_number":20,"context_line":"whole deployment, this is not convinient enough for operators and users."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This Spec propose to be able to override the weight configuration"},{"line_number":23,"context_line":"options by ``flavor extra specs`` and ``schduler hints`` to provide a"},{"line_number":24,"context_line":"more granular and flexiable control during scheduling."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I8270f3a51260c2e8fbbbb4f9c179729a28d138ef"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_65c7d046","line":23,"range":{"start_line":23,"start_character":38,"end_line":23,"end_character":56},"updated":"2018-09-07 20:52:38.000000000","message":"What do scheduler hints have to do with this? Flavor extra specs are defined by the admin/operator - which is also true of the weight multiplier config options. Scheduler hints are provided by the non-admin user when creating a server to influence scheduling decisions, but the end user should not have any input into weight decisions, so I don\u0027t think this is appropriate to tie into hints.","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"604ff0990bb3683a6673ea5418d8673b778f1530","unresolved":false,"context_lines":[{"line_number":20,"context_line":"whole deployment, this is not convinient enough for operators and users."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This Spec propose to be able to override the weight configuration"},{"line_number":23,"context_line":"options by ``flavor extra specs`` and ``schduler hints`` to provide a"},{"line_number":24,"context_line":"more granular and flexiable control during scheduling."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Change-Id: I8270f3a51260c2e8fbbbb4f9c179729a28d138ef"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_f83b70c4","line":23,"range":{"start_line":23,"start_character":38,"end_line":23,"end_character":56},"in_reply_to":"3f79a3b5_65c7d046","updated":"2018-09-10 02:46:43.000000000","message":"Yes, I did not think it through, looks like scheduler hints is not appropriate here.","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c70dc6dbcf6d38ca5b56a141fc9601eabf2bb57","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"In the current implementation, the weights are controlled by config"},{"line_number":14,"context_line":"options like [filter_scheduler] cpu_weight_multiplier"},{"line_number":15,"context_line":"the total weight of a compute node is calculated by combination of"},{"line_number":16,"context_line":"serveral weighers:"},{"line_number":17,"context_line":"weight \u003d w1_multiplier * norm(w1) + w2_multiplier * norm(w2) + ..."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3f79a3b5_811320b1","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":3},"updated":"2018-11-26 20:10:47.000000000","message":". The?","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c70dc6dbcf6d38ca5b56a141fc9601eabf2bb57","unresolved":false,"context_lines":[{"line_number":13,"context_line":"In the current implementation, the weights are controlled by config"},{"line_number":14,"context_line":"options like [filter_scheduler] cpu_weight_multiplier"},{"line_number":15,"context_line":"the total weight of a compute node is calculated by combination of"},{"line_number":16,"context_line":"serveral weighers:"},{"line_number":17,"context_line":"weight \u003d w1_multiplier * norm(w1) + w2_multiplier * norm(w2) + ..."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"As it is controlled by config options, the weights are global across the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3f79a3b5_a122dc00","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":8},"updated":"2018-11-26 20:10:47.000000000","message":"several","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c70dc6dbcf6d38ca5b56a141fc9601eabf2bb57","unresolved":false,"context_lines":[{"line_number":19,"context_line":"As it is controlled by config options, the weights are global across the"},{"line_number":20,"context_line":"whole deployment, this is not efficient enough for operators."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This Specs propose to be able to override the weight configuration"},{"line_number":23,"context_line":"options by ``aggregate metadata`` to provide a more fine-grained"},{"line_number":24,"context_line":"control over resource weights."},{"line_number":25,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3f79a3b5_e179b4f9","line":22,"range":{"start_line":22,"start_character":5,"end_line":22,"end_character":10},"updated":"2018-11-26 20:10:47.000000000","message":"spec proposes","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"535a8c0a388eb120973ba1ab6b65aeb8b8c28106","unresolved":false,"context_lines":[{"line_number":11,"context_line":"giving weights to all the hosts in the list."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"In the current implementation, the weights are controlled by config"},{"line_number":14,"context_line":"options like [filter_scheduler] cpu_weight_multiplieri."},{"line_number":15,"context_line":"The total weight of a compute node is calculated by combination of"},{"line_number":16,"context_line":"several weighers:"},{"line_number":17,"context_line":"weight \u003d w1_multiplier * norm(w1) + w2_multiplier * norm(w2) + ..."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3f79a3b5_c42e43f7","line":14,"range":{"start_line":14,"start_character":53,"end_line":14,"end_character":54},"updated":"2018-12-05 18:30:54.000000000","message":"typo","commit_id":"1bc3b81cfa376017893f454c74112f1499eb58b7"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"2f42c09586eba996f8b9b7480c4b76826067ed34","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Per aggregate scheduling weight (spec)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Filter Scheduler uses the so-called weights during its work. A weigher"},{"line_number":10,"context_line":"is a way to select the best suitable host from a group of valid hosts by"},{"line_number":11,"context_line":"giving weights to all the hosts in the list."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3f79a3b5_3cd06752","line":9,"range":{"start_line":9,"start_character":26,"end_line":9,"end_character":35},"updated":"2018-12-05 23:01:44.000000000","message":"\"So-called\"? :)","commit_id":"db6189753e58d3a9503f3b4c7e790aefa255f3c2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9221193376565cd218f00b6ddd2569c68d5b573c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Per aggregate scheduling weight (spec)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Filter Scheduler uses the so-called weights during its work. A weigher"},{"line_number":10,"context_line":"is a way to select the best suitable host from a group of valid hosts by"},{"line_number":11,"context_line":"giving weights to all the hosts in the list."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3f79a3b5_62114d51","line":9,"range":{"start_line":9,"start_character":26,"end_line":9,"end_character":35},"in_reply_to":"3f79a3b5_3cd06752","updated":"2018-12-06 14:16:14.000000000","message":"Heh yeah I noticed this too - it\u0027s actually copied out of our docs:\n\nhttps://docs.openstack.org/nova/latest/user/filter-scheduler.html#weights","commit_id":"db6189753e58d3a9503f3b4c7e790aefa255f3c2"}],"specs/stein/approved/granular-scheduling-weight.rst":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"5010def5be2b15f60819f387a382fa87d3f99a51","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/granular-scheduling-weight"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec propose to add ability to allow users to use ``flavor extra specs``"},{"line_number":14,"context_line":"and ``scheduler hints`` to override the global config options for weights"},{"line_number":15,"context_line":"to achieve more granular scheduling weights."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_6ea2b09c","line":13,"range":{"start_line":13,"start_character":10,"end_line":13,"end_character":17},"updated":"2018-09-04 12:24:18.000000000","message":"proposes","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cdc5fd3191de3c98c0a8e2db3c540aa127391313","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/granular-scheduling-weight"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec propose to add ability to allow users to use ``flavor extra specs``"},{"line_number":14,"context_line":"and ``scheduler hints`` to override the global config options for weights"},{"line_number":15,"context_line":"to achieve more granular scheduling weights."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_45d174fa","line":14,"updated":"2018-09-07 20:52:38.000000000","message":"As noted in the commit message, users don\u0027t do anything with controlling flavors or scheduler configuration, and the latter is necessary for hints to mean anything, therefore I don\u0027t think users having control over weights via hints is appropriate.","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cdc5fd3191de3c98c0a8e2db3c540aa127391313","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"As user I may want to have a more flexible scheduling weight configuration"},{"line_number":32,"context_line":"so that I can control my resource allocations in these scenarios:"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* For flavors with large amount of RAM but only moderate amount of CPUs,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_a5ff2864","line":31,"range":{"start_line":31,"start_character":3,"end_line":31,"end_character":7},"updated":"2018-09-07 20:52:38.000000000","message":"Users shouldn\u0027t have to care *where* their instance lands, just that it lands and provides the resources the user asked for. This spec is completely about the operator wanting to maximize efficiency of their data center, correct?","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"d4f133360806a050b449a0a0fa324844769ac59f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"As user I may want to have a more flexible scheduling weight configuration"},{"line_number":32,"context_line":"so that I can control my resource allocations in these scenarios:"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"* For flavors with large amount of RAM but only moderate amount of CPUs,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_bdf96ac5","line":31,"range":{"start_line":31,"start_character":3,"end_line":31,"end_character":7},"in_reply_to":"3f79a3b5_a5ff2864","updated":"2018-09-10 01:40:05.000000000","message":"Yeah, I want to say operators, somehow mixed up with users","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cdc5fd3191de3c98c0a8e2db3c540aa127391313","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  to be smaller to express that for this flavor, CPUs are more important"},{"line_number":41,"context_line":"  when weight;"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* I can see that some of the compute nodes have unevenly occupied resources"},{"line_number":44,"context_line":"  e.g. on host_A 80% of the CPUs are already taken but only 60% of the RAM"},{"line_number":45,"context_line":"  are already taken, I may want to control the ``*_weight_multiplier`` for"},{"line_number":46,"context_line":"  my next request using ``scheduler hints`` to adjust the weight order and"},{"line_number":47,"context_line":"  try to make the resource consumption evenly on host A."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_453f3424","line":47,"range":{"start_line":43,"start_character":0,"end_line":47,"end_character":56},"updated":"2018-09-07 20:52:38.000000000","message":"This doesn\u0027t make sense to me. An end user can\u0027t see the resource consumption on a host to make an informed request about the hint to use with respect to weights. What you are describing here is a DRS system like Watcher.","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"d4f133360806a050b449a0a0fa324844769ac59f","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  to be smaller to express that for this flavor, CPUs are more important"},{"line_number":41,"context_line":"  when weight;"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* I can see that some of the compute nodes have unevenly occupied resources"},{"line_number":44,"context_line":"  e.g. on host_A 80% of the CPUs are already taken but only 60% of the RAM"},{"line_number":45,"context_line":"  are already taken, I may want to control the ``*_weight_multiplier`` for"},{"line_number":46,"context_line":"  my next request using ``scheduler hints`` to adjust the weight order and"},{"line_number":47,"context_line":"  try to make the resource consumption evenly on host A."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_bd12cafb","line":47,"range":{"start_line":43,"start_character":0,"end_line":47,"end_character":56},"in_reply_to":"3f79a3b5_3f5b1286","updated":"2018-09-10 01:40:05.000000000","message":"Yes, this is an operator usecase, and I know changing flavors for each boot is not correct way, so I proposed using scheduler hints, I will think about this case further.","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"337e51af57c98e769c44d35963a95ad1c6c166b7","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  to be smaller to express that for this flavor, CPUs are more important"},{"line_number":41,"context_line":"  when weight;"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* I can see that some of the compute nodes have unevenly occupied resources"},{"line_number":44,"context_line":"  e.g. on host_A 80% of the CPUs are already taken but only 60% of the RAM"},{"line_number":45,"context_line":"  are already taken, I may want to control the ``*_weight_multiplier`` for"},{"line_number":46,"context_line":"  my next request using ``scheduler hints`` to adjust the weight order and"},{"line_number":47,"context_line":"  try to make the resource consumption evenly on host A."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_3f5b1286","line":47,"range":{"start_line":43,"start_character":0,"end_line":47,"end_character":56},"in_reply_to":"3f79a3b5_453f3424","updated":"2018-09-09 19:00:15.000000000","message":"On top of the fact that users can\u0027t see resource usage, they\u0027re also not incentivized to help the cloud operator pack things tightly. If anything, they would want to find the least-busy compute node for their next instance. Perhaps there is some terminology clarification here between \"user\" and \"admin\"/\"operator\" ?\n\nFurther, I think that this kinda sounds like the plan would be to tweak the next boot by setting a value in a flavor based on the dynamic resource usage of the system, boot an instance to target it, and then clear that setting going forward. That\u0027s a real abuse of flavors I think, and suffers from an obvious race.","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"5010def5be2b15f60819f387a382fa87d3f99a51","unresolved":false,"context_lines":[{"line_number":51,"context_line":"Proposed change"},{"line_number":52,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"This spec propose to add abilities in existing weigher to read the"},{"line_number":55,"context_line":"``*_weight_multiplier`` from ``flavor extra specs`` and"},{"line_number":56,"context_line":"``scheduler hints`` to override the ``*_weight_multiplier`` from"},{"line_number":57,"context_line":"config files to achieve a more flexible weight during scheduling."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_6edab0e9","line":54,"range":{"start_line":54,"start_character":38,"end_line":54,"end_character":54},"updated":"2018-09-04 12:24:18.000000000","message":"Notes for other reviewers, now, There are 9 weighers having multiplier config:\n\nMetricsWeigher\nDiskWeigher\nRAMWeigher\nPCIWeigher\nIoOpsWeigher\nServerGroupSoftAffinityWeigher\nServerGroupSoftAntiAffinityWeigher\nCPUWeigher\nBuildFailureWeigher","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"5010def5be2b15f60819f387a382fa87d3f99a51","unresolved":false,"context_lines":[{"line_number":56,"context_line":"``scheduler hints`` to override the ``*_weight_multiplier`` from"},{"line_number":57,"context_line":"config files to achieve a more flexible weight during scheduling."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"If the user provide both in ``flavor extra specs`` and ``scheduler hints``,"},{"line_number":60,"context_line":"the ``scheduler hints`` will override the ``flavor extra spec`` value"},{"line_number":61,"context_line":"and config options as ``scheduler hints`` is per request."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_6e7dd01a","line":59,"range":{"start_line":59,"start_character":12,"end_line":59,"end_character":19},"updated":"2018-09-04 12:24:18.000000000","message":"provides","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"337e51af57c98e769c44d35963a95ad1c6c166b7","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"If the user provide both in ``flavor extra specs`` and ``scheduler hints``,"},{"line_number":60,"context_line":"the ``scheduler hints`` will override the ``flavor extra spec`` value"},{"line_number":61,"context_line":"and config options as ``scheduler hints`` is per request."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_3fd0f2c7","line":61,"updated":"2018-09-09 19:00:15.000000000","message":"Setting extra specs in a flavor would (generally) be done by an admin trying to squeeze the last bit of space out of a group of computes. However, hints would be provided by the user to achieve something else, often times the opposite effect. Surely we don\u0027t want unprivileged users able to override the weighers that the admin has set up right? Otherwise I can abuse that to find the least-loaded computes to avoid noisy neighbors, or find the busiest ones and try to cause disruption.\n\nAm I missing how you are planning to control access to these overrides?","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"d4f133360806a050b449a0a0fa324844769ac59f","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"If the user provide both in ``flavor extra specs`` and ``scheduler hints``,"},{"line_number":60,"context_line":"the ``scheduler hints`` will override the ``flavor extra spec`` value"},{"line_number":61,"context_line":"and config options as ``scheduler hints`` is per request."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_bde72a0f","line":61,"in_reply_to":"3f79a3b5_3fd0f2c7","updated":"2018-09-10 01:40:05.000000000","message":"Yes, I was thinking that the scheduler hints for this case could be only used by admin, but seems we are unable to do it, I will think about this further and maybe give up the scheduler hints one.","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"5010def5be2b15f60819f387a382fa87d3f99a51","unresolved":false,"context_lines":[{"line_number":59,"context_line":"If the user provide both in ``flavor extra specs`` and ``scheduler hints``,"},{"line_number":60,"context_line":"the ``scheduler hints`` will override the ``flavor extra spec`` value"},{"line_number":61,"context_line":"and config options as ``scheduler hints`` is per request."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_4e001403","line":62,"updated":"2018-09-04 12:24:18.000000000","message":"Because we don\u0027t have schema on \"scheduler_hint\" or \"extra spec\", So if we pass the ``scheduler hints`` with a valid K/V，like, cpu_weight_multiplier: \"abc\".\n\nShould we just skip this error value and just use original config directly? or just raise a exception in scheduler?","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cdc5fd3191de3c98c0a8e2db3c540aa127391313","unresolved":false,"context_lines":[{"line_number":61,"context_line":"and config options as ``scheduler hints`` is per request."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Data model impact"},{"line_number":67,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_e51760a2","line":64,"updated":"2018-09-07 20:52:38.000000000","message":"If there are no alternatives, then put None in this section.\n\nI\u0027m sure there are probably alternatives though, like the old solver scheduler proposal from Intel.\n\nhttps://github.com/openstack/nova-solver-scheduler\n\nAlternatively, I would think some people work around this a bit by tying specific flavors to hosts via aggregates.","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"71bca1b7ebda5d50ce967d957f73fcd238ddf30f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"and config options as ``scheduler hints`` is per request."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Data model impact"},{"line_number":67,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_74019db5","line":64,"in_reply_to":"3f79a3b5_5f792ef9","updated":"2018-09-10 17:12:39.000000000","message":"\u003e Nova specifically excludes scheduling at capacity from its scope, and I think this probably fits that description.\n\nhttps://docs.openstack.org/nova/latest/contributor/project-scope.html#iaas-not-batch-processing","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"337e51af57c98e769c44d35963a95ad1c6c166b7","unresolved":false,"context_lines":[{"line_number":61,"context_line":"and config options as ``scheduler hints`` is per request."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Alternatives"},{"line_number":64,"context_line":"------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Data model impact"},{"line_number":67,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_5f792ef9","line":64,"in_reply_to":"3f79a3b5_e51760a2","updated":"2018-09-09 19:00:15.000000000","message":"Or just writing their own weigher. It seems to me like this is probably a rather unique situation where you\u0027re dynamically trying to pack the crap out of each compute node down to the last little bit of whatever resource. Nova specifically excludes scheduling at capacity from its scope, and I think this probably fits that description.","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cdc5fd3191de3c98c0a8e2db3c540aa127391313","unresolved":false,"context_lines":[{"line_number":123,"context_line":"Work Items"},{"line_number":124,"context_line":"----------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"#. Add the ability to existing weigher to read the"},{"line_number":127,"context_line":"   ``*_weight_multiplier`` from ``flavor extra specs`` and"},{"line_number":128,"context_line":"   ``scheduler hints`` to override the ``*_weight_multiplier`` from"},{"line_number":129,"context_line":"   config files to achieve a more flexible weight during scheduling"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_c5c7c411","line":126,"updated":"2018-09-07 20:52:38.000000000","message":"It looks like there are no structural changes required for the actual weighers themselves because we already pass the RequestSpec to each weigher\u0027s _weigh_object method as the \"weight_properties\" parameter, and the request spec has the flavor with the extra specs. Just checking.","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"dca90c26e6e1ac9151883f2eeb88d877b2899efe","unresolved":false,"context_lines":[{"line_number":123,"context_line":"Work Items"},{"line_number":124,"context_line":"----------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"#. Add the ability to existing weigher to read the"},{"line_number":127,"context_line":"   ``*_weight_multiplier`` from ``flavor extra specs`` and"},{"line_number":128,"context_line":"   ``scheduler hints`` to override the ``*_weight_multiplier`` from"},{"line_number":129,"context_line":"   config files to achieve a more flexible weight during scheduling"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_b888986a","line":126,"in_reply_to":"3f79a3b5_c5c7c411","updated":"2018-09-11 01:27:26.000000000","message":"Yeah, that\u0027s why I put \u0027read and override\u0027 here.","commit_id":"938e8526d48c052777c26d40d67b39cdb186fab1"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7cc46135d48f4a0d34f54610d9bb70402496914d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"control over resource weights."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"In the current implementation, the weights are controlled by config options"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_2a2924f1","line":18,"updated":"2018-09-14 15:06:44.000000000","message":"I would like to see a more specific problem description of a packing / resource optimization case where the alternatives/workarounds are insufficient or overly complicated, otherwise this is really fuzzy.","commit_id":"a01f3b53aa1c0247ee4803f29c238e4f3d662811"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7adda87b1357f39540a6ee867f5aa6cf4c0b7d20","unresolved":false,"context_lines":[{"line_number":24,"context_line":"weight \u003d w1_multiplier * norm(w1) + w2_multiplier * norm(w2) + ..."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"As it is controlled by config options, the weights are global across the whole"},{"line_number":27,"context_line":"deployment, this is not convenient enough for operators and users."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Use Cases"},{"line_number":30,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_ded3f200","line":27,"updated":"2018-09-10 16:08:02.000000000","message":"Sure, FWIW, for allocation ratios, those are managed per compute...","commit_id":"a01f3b53aa1c0247ee4803f29c238e4f3d662811"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7adda87b1357f39540a6ee867f5aa6cf4c0b7d20","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  with large amount of CPUs but only small number of RAM, I may want"},{"line_number":41,"context_line":"  ``cpu_weight_multiplier`` to be larger and ``ram_weight_multiplier``"},{"line_number":42,"context_line":"  to be smaller to express that for this flavor, CPUs are more important"},{"line_number":43,"context_line":"  when weight;"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_fe234e05","line":43,"updated":"2018-09-10 16:08:02.000000000","message":"The weighers are per compute on the scheduling side, so I\u0027m a bit afraid of the complexity it would create, in particular with the fact that ratios are also per compute.","commit_id":"a01f3b53aa1c0247ee4803f29c238e4f3d662811"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7cc46135d48f4a0d34f54610d9bb70402496914d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  with large amount of CPUs but only small number of RAM, I may want"},{"line_number":41,"context_line":"  ``cpu_weight_multiplier`` to be larger and ``ram_weight_multiplier``"},{"line_number":42,"context_line":"  to be smaller to express that for this flavor, CPUs are more important"},{"line_number":43,"context_line":"  when weight;"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_4adee010","line":43,"in_reply_to":"3f79a3b5_fe234e05","updated":"2018-09-14 15:06:44.000000000","message":"I\u0027m not sure what that has to do with this. The flavor-defined weight acts the same as the global config, it\u0027s just an override per request per flavor that has the extra spec.","commit_id":"a01f3b53aa1c0247ee4803f29c238e4f3d662811"},{"author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"change_message_id":"60121ca18e6f14bdaacad669f172fc635051b83a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Operators could set different weight configurations to different group"},{"line_number":59,"context_line":"of hosts as host aggregates, and then limit flavors to host aggregates"},{"line_number":60,"context_line":"according to weights."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_fe6fce90","line":58,"updated":"2018-09-10 15:53:34.000000000","message":"This is the solution we implemented on our side (combined with flavor pinning on aggregates) and it works fine. It\u0027s a lot more predictable than per flavor weigher for our use case.\n\nBut I\u0027m not sure how well it plays with placement API as we have yet to migrate to placement.","commit_id":"a01f3b53aa1c0247ee4803f29c238e4f3d662811"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"119d752add956c6dc8944d90ccc1e5eee2b8f402","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Operators could set different weight configurations to different group"},{"line_number":59,"context_line":"of hosts as host aggregates, and then limit flavors to host aggregates"},{"line_number":60,"context_line":"according to weights."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_9b6528b2","line":58,"in_reply_to":"3f79a3b5_1bccb8b9","updated":"2018-09-27 16:05:59.000000000","message":"This might be a nice compromise, it came up in IRC today:\n\nhttp://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2018-09-27.log.html#t2018-09-27T15:26:53","commit_id":"a01f3b53aa1c0247ee4803f29c238e4f3d662811"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"561fc12107db938014620380babed1d804aeae87","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Operators could set different weight configurations to different group"},{"line_number":59,"context_line":"of hosts as host aggregates, and then limit flavors to host aggregates"},{"line_number":60,"context_line":"according to weights."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_1bccb8b9","line":58,"in_reply_to":"3f79a3b5_fe6fce90","updated":"2018-09-27 16:03:32.000000000","message":"https://gist.github.com/mgagne/142e20e32049abd0cdf5d2da7e048608","commit_id":"a01f3b53aa1c0247ee4803f29c238e4f3d662811"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7adda87b1357f39540a6ee867f5aa6cf4c0b7d20","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Operators could set different weight configurations to different group"},{"line_number":59,"context_line":"of hosts as host aggregates, and then limit flavors to host aggregates"},{"line_number":60,"context_line":"according to weights."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Data model impact"},{"line_number":63,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_9e7a5aee","line":60,"updated":"2018-09-10 16:08:02.000000000","message":"Yes, this alternative looks way better for me.","commit_id":"a01f3b53aa1c0247ee4803f29c238e4f3d662811"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c70dc6dbcf6d38ca5b56a141fc9601eabf2bb57","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Use Cases"},{"line_number":30,"context_line":"---------"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"As operators I may want to have a more fine-grained control over resource"},{"line_number":33,"context_line":"scheduling weight configuration so that I can control my resource allocations"},{"line_number":34,"context_line":"in this scenario:"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_a1717ce1","line":32,"range":{"start_line":32,"start_character":3,"end_line":32,"end_character":12},"updated":"2018-11-26 20:10:47.000000000","message":"an operator","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c70dc6dbcf6d38ca5b56a141fc9601eabf2bb57","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* For hosts with large amount of RAM but only moderate amount of CPUs,"},{"line_number":37,"context_line":"  I may want to set higher ``ram_weight_multiplier`` than"},{"line_number":38,"context_line":"  ``cpu_weight_multiplier`` to express that for this kind of host,"},{"line_number":39,"context_line":"  RAM is more important than CPU when weight. On the contrary for hosts"},{"line_number":40,"context_line":"  with large amount of CPUs but only small number of RAM, I may want"},{"line_number":41,"context_line":"  ``cpu_weight_multiplier`` to be larger and ``ram_weight_multiplier``"},{"line_number":42,"context_line":"  to be smaller to express that for this host, CPUs are more important"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_53fddb04","line":39,"range":{"start_line":38,"start_character":28,"end_line":39,"end_character":32},"updated":"2018-11-26 20:10:47.000000000","message":"This reads sort of oddly to me. I think the missing piece is probably tying this back to flavors/images that are restricted to a given host aggregate, and those flavors/images are used for workloads that care more about RAM or CPU, e.g. maybe I have a machine learning image that requires a high amount of CPU, so the image is restricted to hosts which weigh CPU higher than RAM, something like that. But maybe that sounds more like the original version of this spec, which was to say that weights could be controlled on a per-flavor basis, and we said that was too granular.\n\nConsidering the cpu_weight_multiplier option and the ML case, let\u0027s say by default I want my deployment to stack resources to conserve energy, but for my HPC aggregate, I set cpu_weight_multiplier\u003d10.0 to spread instances across the hosts in that aggregate because I want to avoid noisy neighbors as much as possible (although in that case you could also just set cpu_allocation_ratio\u003d1.0 for that host aggregate...but still might end up stacking hosts on as few hosts as possible).\n\nAnyway, I think it would be useful if there were a more specific scenario in this use case section than saying, \"for these hosts we want to weigh based on RAM over CPU\" or something like that. I think being able to spread workloads across a given host aggregate using weighers rather than stack (the default) is useful on its own.","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c70dc6dbcf6d38ca5b56a141fc9601eabf2bb57","unresolved":false,"context_lines":[{"line_number":36,"context_line":"* For hosts with large amount of RAM but only moderate amount of CPUs,"},{"line_number":37,"context_line":"  I may want to set higher ``ram_weight_multiplier`` than"},{"line_number":38,"context_line":"  ``cpu_weight_multiplier`` to express that for this kind of host,"},{"line_number":39,"context_line":"  RAM is more important than CPU when weight. On the contrary for hosts"},{"line_number":40,"context_line":"  with large amount of CPUs but only small number of RAM, I may want"},{"line_number":41,"context_line":"  ``cpu_weight_multiplier`` to be larger and ``ram_weight_multiplier``"},{"line_number":42,"context_line":"  to be smaller to express that for this host, CPUs are more important"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_817240e0","line":39,"range":{"start_line":39,"start_character":33,"end_line":39,"end_character":44},"updated":"2018-11-26 20:10:47.000000000","message":"during weighing?","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c70dc6dbcf6d38ca5b56a141fc9601eabf2bb57","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  with large amount of CPUs but only small number of RAM, I may want"},{"line_number":41,"context_line":"  ``cpu_weight_multiplier`` to be larger and ``ram_weight_multiplier``"},{"line_number":42,"context_line":"  to be smaller to express that for this host, CPUs are more important"},{"line_number":43,"context_line":"  when weight;"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_e13c54eb","line":43,"range":{"start_line":43,"start_character":7,"end_line":43,"end_character":14},"updated":"2018-11-26 20:10:47.000000000","message":"when weighing.","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c70dc6dbcf6d38ca5b56a141fc9601eabf2bb57","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Proposed change"},{"line_number":47,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"This spec propose to add abilities in existing weigher to read the"},{"line_number":50,"context_line":"``*_weight_multiplier`` from ``aggregate metadata`` to override the"},{"line_number":51,"context_line":"``*_weight_multiplier`` from config files to achieve a more flexible"},{"line_number":52,"context_line":"weight during scheduling."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_f39bc7c3","line":49,"range":{"start_line":49,"start_character":10,"end_line":49,"end_character":17},"updated":"2018-11-26 20:10:47.000000000","message":"proposes","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c70dc6dbcf6d38ca5b56a141fc9601eabf2bb57","unresolved":false,"context_lines":[{"line_number":50,"context_line":"``*_weight_multiplier`` from ``aggregate metadata`` to override the"},{"line_number":51,"context_line":"``*_weight_multiplier`` from config files to achieve a more flexible"},{"line_number":52,"context_line":"weight during scheduling."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_53e71b46","line":53,"updated":"2018-11-26 20:10:47.000000000","message":"There should at least be some kind of high level design in here I would think, i.e. how do you plan on getting the aggregate metadata into the weigher per host without sacrificing performance during scheduling? Although I guess it would be similar to how nova.scheduler.utils.aggregate_values_from_key() is used in things like the AggregateCoreFilter to get the cpu_allocation_ratio value from the metadata? However, the weight_multiplier() method does not take the host_state parameter, so I\u0027m not sure how you propose to get the weight off the aggregate per host that is being weighed?\n\nAlso, what happens if the host is in multiple aggregates and there are conflicting weight values in the metadata? I assume the same behavior as AggregateCoreFilter is used where the minimum value is selected (via validate_num_values() function).","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9221193376565cd218f00b6ddd2569c68d5b573c","unresolved":false,"context_lines":[{"line_number":50,"context_line":"``*_weight_multiplier`` from ``aggregate metadata`` to override the"},{"line_number":51,"context_line":"``*_weight_multiplier`` from config files to achieve a more flexible"},{"line_number":52,"context_line":"weight during scheduling."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_222115a2","line":53,"in_reply_to":"3f79a3b5_0306f81a","updated":"2018-12-06 14:16:14.000000000","message":"It would be consistent with what the aggregate filters do, that\u0027s why I mentioned it.","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"2377b4476a8c61708c07f2e4f50281eb4034416d","unresolved":false,"context_lines":[{"line_number":50,"context_line":"``*_weight_multiplier`` from ``aggregate metadata`` to override the"},{"line_number":51,"context_line":"``*_weight_multiplier`` from config files to achieve a more flexible"},{"line_number":52,"context_line":"weight during scheduling."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_0306f81a","line":53,"in_reply_to":"3f79a3b5_53e71b46","updated":"2018-12-06 01:34:16.000000000","message":"Hmm yes, use the minimum value could be a good choice","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c70dc6dbcf6d38ca5b56a141fc9601eabf2bb57","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Add abilities to read the above mentioned multipliers from"},{"line_number":59,"context_line":"``flavor extra_specs`` to make it them per-flavor."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_73b6d728","line":58,"updated":"2018-11-26 20:10:47.000000000","message":"It would be nice to document why we aren\u0027t going with this alternative. I can think of at least two reasons:\n\n1. It could be very difficult to manage per-flavor weights in a cloud with a lot of flavors, e.g. public cloud.\n\n2. Per-flavor weights does not help the case of an image that requires some kind of extra weight to the host it is used on, so per-flavor weights is less flexible, but with the proposed solution we can apply the weights to aggregates which can then be used to restrict both flavors (AggregateInstanceExtraSpecsFilter) and images (AggregateImagePropertiesIsolation).","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c70dc6dbcf6d38ca5b56a141fc9601eabf2bb57","unresolved":false,"context_lines":[{"line_number":56,"context_line":"------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"Add abilities to read the above mentioned multipliers from"},{"line_number":59,"context_line":"``flavor extra_specs`` to make it them per-flavor."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Data model impact"},{"line_number":62,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_f3e98717","line":59,"range":{"start_line":59,"start_character":31,"end_line":59,"end_character":38},"updated":"2018-11-26 20:10:47.000000000","message":"them","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c70dc6dbcf6d38ca5b56a141fc9601eabf2bb57","unresolved":false,"context_lines":[{"line_number":121,"context_line":"   the ``*_weight_multiplier`` from config files to achieve a more"},{"line_number":122,"context_line":"   flexible weight during scheduling"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"#. Update docs about the new change"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_d369eb8c","line":124,"updated":"2018-11-26 20:10:47.000000000","message":"Probably https://docs.openstack.org/nova/rocky/user/filter-scheduler.html#weights specifically since that\u0027s the only place where I think the various in-tree weights are defined. So for each that can read from aggregates, we\u0027d want to document the metadata key that is used.","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d347e20e013d5c2f945554f97911cf1abfae65a","unresolved":false,"context_lines":[{"line_number":121,"context_line":"   the ``*_weight_multiplier`` from config files to achieve a more"},{"line_number":122,"context_line":"   flexible weight during scheduling"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"#. Update docs about the new change"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_7f6fb8fa","line":124,"in_reply_to":"3f79a3b5_d369eb8c","updated":"2018-12-05 18:40:23.000000000","message":"Done","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c70dc6dbcf6d38ca5b56a141fc9601eabf2bb57","unresolved":false,"context_lines":[{"line_number":132,"context_line":"Testing"},{"line_number":133,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Unit and functional tests for verifying the working when a"},{"line_number":136,"context_line":"``*_weight_multiplier`` is provided in ``aggregate metadata``."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_73f9f7c3","line":135,"range":{"start_line":135,"start_character":5,"end_line":135,"end_character":19},"updated":"2018-11-26 20:10:47.000000000","message":"We likely don\u0027t even need functional tests for this, I\u0027m not sure what they would do besides what we can do in unit tests.","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d347e20e013d5c2f945554f97911cf1abfae65a","unresolved":false,"context_lines":[{"line_number":132,"context_line":"Testing"},{"line_number":133,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Unit and functional tests for verifying the working when a"},{"line_number":136,"context_line":"``*_weight_multiplier`` is provided in ``aggregate metadata``."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_3f75c0ca","line":135,"range":{"start_line":135,"start_character":5,"end_line":135,"end_character":19},"in_reply_to":"3f79a3b5_73f9f7c3","updated":"2018-12-05 18:40:23.000000000","message":"Done","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4c70dc6dbcf6d38ca5b56a141fc9601eabf2bb57","unresolved":false,"context_lines":[{"line_number":139,"context_line":"Documentation Impact"},{"line_number":140,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Update the description of the ``aggregate metadata`` about this new change."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"References"},{"line_number":145,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_930db3dc","line":142,"range":{"start_line":142,"start_character":23,"end_line":142,"end_character":52},"updated":"2018-11-26 20:10:47.000000000","message":"What is this referring to? Is there a specific doc you had in mind? I can think of at least:\n\nhttps://docs.openstack.org/nova/rocky/user/filter-scheduler.html#weights\n\nand maybe this?\n\nhttps://docs.openstack.org/nova/rocky/admin/configuration/schedulers.html#host-aggregates-and-availability-zones\n\nor this:\n\nhttps://docs.openstack.org/nova/rocky/admin/configuration/schedulers.html#configure-scheduler-to-support-host-aggregates","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d347e20e013d5c2f945554f97911cf1abfae65a","unresolved":false,"context_lines":[{"line_number":139,"context_line":"Documentation Impact"},{"line_number":140,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Update the description of the ``aggregate metadata`` about this new change."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"References"},{"line_number":145,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3f79a3b5_df660c28","line":142,"range":{"start_line":142,"start_character":23,"end_line":142,"end_character":52},"in_reply_to":"3f79a3b5_930db3dc","updated":"2018-12-05 18:40:23.000000000","message":"Done","commit_id":"a55409871bc18b250c2f798c12afadfe14f2221f"}],"specs/stein/approved/per-aggregate-scheduling-weight.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"535a8c0a388eb120973ba1ab6b65aeb8b8c28106","unresolved":false,"context_lines":[{"line_number":40,"context_line":"``cpu_weight_multiplier\u003d10.0`` to spread instances across the hosts in that"},{"line_number":41,"context_line":"aggregate because I want to avoid noisy neighbors as much as possible."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Operators may also restrict flavors/images to host aggregates, and those"},{"line_number":44,"context_line":"flavors/images may have preferences about the importance of CPU/RAM/DISK,"},{"line_number":45,"context_line":"setting a suitable weight for this aggregate other than the global weight"},{"line_number":46,"context_line":"could provide a more suitable resource allocation for the corresponding"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_df7dac1d","line":43,"updated":"2018-12-05 18:30:54.000000000","message":"This is a nicely written use case.","commit_id":"1bc3b81cfa376017893f454c74112f1499eb58b7"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"2377b4476a8c61708c07f2e4f50281eb4034416d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"``cpu_weight_multiplier\u003d10.0`` to spread instances across the hosts in that"},{"line_number":41,"context_line":"aggregate because I want to avoid noisy neighbors as much as possible."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Operators may also restrict flavors/images to host aggregates, and those"},{"line_number":44,"context_line":"flavors/images may have preferences about the importance of CPU/RAM/DISK,"},{"line_number":45,"context_line":"setting a suitable weight for this aggregate other than the global weight"},{"line_number":46,"context_line":"could provide a more suitable resource allocation for the corresponding"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_5ffc350d","line":43,"in_reply_to":"3f79a3b5_df7dac1d","updated":"2018-12-06 01:34:16.000000000","message":"Thanks","commit_id":"1bc3b81cfa376017893f454c74112f1499eb58b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"535a8c0a388eb120973ba1ab6b65aeb8b8c28106","unresolved":false,"context_lines":[{"line_number":47,"context_line":"workloads. For example, I want to deploy a big data analysis cluster(for"},{"line_number":48,"context_line":"example Hadoop), there are different roles for each vm in this cluster,"},{"line_number":49,"context_line":"for some of them the amount of CPU and RAM is much more important than DISK,"},{"line_number":50,"context_line":"like the ``HDFS NameNode`` and nodes that runs ``MapReduce`` tasks, for some"},{"line_number":51,"context_line":"of them, the size of DISK is more important, like the ``HDFS DataNodes``,"},{"line_number":52,"context_line":"By creating different flavor/image and restrict them to aggregates that have"},{"line_number":53,"context_line":"suitable scheduling weight can have a overall better resource allocation and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_ff82e801","line":50,"range":{"start_line":50,"start_character":66,"end_line":50,"end_character":67},"updated":"2018-12-05 18:30:54.000000000","message":";","commit_id":"1bc3b81cfa376017893f454c74112f1499eb58b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d347e20e013d5c2f945554f97911cf1abfae65a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"workloads. For example, I want to deploy a big data analysis cluster(for"},{"line_number":48,"context_line":"example Hadoop), there are different roles for each vm in this cluster,"},{"line_number":49,"context_line":"for some of them the amount of CPU and RAM is much more important than DISK,"},{"line_number":50,"context_line":"like the ``HDFS NameNode`` and nodes that runs ``MapReduce`` tasks, for some"},{"line_number":51,"context_line":"of them, the size of DISK is more important, like the ``HDFS DataNodes``,"},{"line_number":52,"context_line":"By creating different flavor/image and restrict them to aggregates that have"},{"line_number":53,"context_line":"suitable scheduling weight can have a overall better resource allocation and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_df55ac52","line":50,"range":{"start_line":50,"start_character":66,"end_line":50,"end_character":67},"in_reply_to":"3f79a3b5_ff82e801","updated":"2018-12-05 18:40:23.000000000","message":"Done","commit_id":"1bc3b81cfa376017893f454c74112f1499eb58b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"535a8c0a388eb120973ba1ab6b65aeb8b8c28106","unresolved":false,"context_lines":[{"line_number":48,"context_line":"example Hadoop), there are different roles for each vm in this cluster,"},{"line_number":49,"context_line":"for some of them the amount of CPU and RAM is much more important than DISK,"},{"line_number":50,"context_line":"like the ``HDFS NameNode`` and nodes that runs ``MapReduce`` tasks, for some"},{"line_number":51,"context_line":"of them, the size of DISK is more important, like the ``HDFS DataNodes``,"},{"line_number":52,"context_line":"By creating different flavor/image and restrict them to aggregates that have"},{"line_number":53,"context_line":"suitable scheduling weight can have a overall better resource allocation and"},{"line_number":54,"context_line":"performance."}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_bf78f02d","line":51,"range":{"start_line":51,"start_character":72,"end_line":51,"end_character":73},"updated":"2018-12-05 18:30:54.000000000","message":".","commit_id":"1bc3b81cfa376017893f454c74112f1499eb58b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d347e20e013d5c2f945554f97911cf1abfae65a","unresolved":false,"context_lines":[{"line_number":48,"context_line":"example Hadoop), there are different roles for each vm in this cluster,"},{"line_number":49,"context_line":"for some of them the amount of CPU and RAM is much more important than DISK,"},{"line_number":50,"context_line":"like the ``HDFS NameNode`` and nodes that runs ``MapReduce`` tasks, for some"},{"line_number":51,"context_line":"of them, the size of DISK is more important, like the ``HDFS DataNodes``,"},{"line_number":52,"context_line":"By creating different flavor/image and restrict them to aggregates that have"},{"line_number":53,"context_line":"suitable scheduling weight can have a overall better resource allocation and"},{"line_number":54,"context_line":"performance."}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_7f4ed8c3","line":51,"range":{"start_line":51,"start_character":72,"end_line":51,"end_character":73},"in_reply_to":"3f79a3b5_bf78f02d","updated":"2018-12-05 18:40:23.000000000","message":"Done","commit_id":"1bc3b81cfa376017893f454c74112f1499eb58b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d347e20e013d5c2f945554f97911cf1abfae65a","unresolved":false,"context_lines":[{"line_number":53,"context_line":"suitable scheduling weight can have a overall better resource allocation and"},{"line_number":54,"context_line":"performance."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Proposed change"},{"line_number":57,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"This spec proposes to add abilities in existing weigher to read the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_bf3a30ec","line":56,"updated":"2018-12-05 18:40:23.000000000","message":"I guess one other question here is what takes precedence, but that\u0027s probably obvious - if the metadata exists on the aggregate it takes precedence over the config option.","commit_id":"1bc3b81cfa376017893f454c74112f1499eb58b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"535a8c0a388eb120973ba1ab6b65aeb8b8c28106","unresolved":false,"context_lines":[{"line_number":61,"context_line":"``*_weight_multiplier`` from config files to achieve a more flexible"},{"line_number":62,"context_line":"weight during scheduling."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"This will be done by making the ``weight_multiplier()`` taking ``host_state``"},{"line_number":65,"context_line":"as a parameter and get the corresponding ``weight_multiplier`` from the"},{"line_number":66,"context_line":"aggreagate metadata similar to"},{"line_number":67,"context_line":"``nova.scheduler.utils.aggreagate_values_from_key()``. If the host is in"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_dff92c81","line":64,"updated":"2018-12-05 18:30:54.000000000","message":"I\u0027m still not really sure how this is going to work. We call weight_multiplier here per weigher:\n\nhttps://github.com/openstack/nova/blob/aed3e240138ad84352688611246363339414c98f/nova/weights.py#L141\n\nAnd by then we\u0027ve already weighed the HostStates:\n\nhttps://github.com/openstack/nova/blob/aed3e240138ad84352688611246363339414c98f/nova/weights.py#L132\n\nhttps://github.com/openstack/nova/blob/aed3e240138ad84352688611246363339414c98f/nova/weights.py#L102\n\nAre you proposing to again iterate over the HostStates and pass them to weight_multiplier()? Or would this just become:\n\nobj.weight +\u003d weigher.weight_multiplier(obj.obj) * weight\n\n?\n\nMaybe I\u0027m making this more complicated than it needs to be, since it looks like we already have a weighed object (HostState) in scope when we get the weight_multiplier to calculate the overall weight for that HostState.","commit_id":"1bc3b81cfa376017893f454c74112f1499eb58b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"535a8c0a388eb120973ba1ab6b65aeb8b8c28106","unresolved":false,"context_lines":[{"line_number":170,"context_line":"Documentation Impact"},{"line_number":171,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Update the description of the ``aggregate metadata`` about this new change."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"References"},{"line_number":176,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_3f1620a4","line":173,"updated":"2018-12-05 18:30:54.000000000","message":"Same comment as PS6:\n\nhttps://review.openstack.org/#/c/599308/6/specs/stein/approved/granular-scheduling-weight.rst@142\n\nI guess that could be an implementation detail.","commit_id":"1bc3b81cfa376017893f454c74112f1499eb58b7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d347e20e013d5c2f945554f97911cf1abfae65a","unresolved":false,"context_lines":[{"line_number":170,"context_line":"Documentation Impact"},{"line_number":171,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Update the description of the ``aggregate metadata`` about this new change."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"References"},{"line_number":176,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f79a3b5_5f72fce2","line":173,"in_reply_to":"3f79a3b5_3f1620a4","updated":"2018-12-05 18:40:23.000000000","message":"Done","commit_id":"1bc3b81cfa376017893f454c74112f1499eb58b7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7d85fe42c745d0bc528bbbc8ae86928ad9993f23","unresolved":false,"context_lines":[{"line_number":153,"context_line":"   the ``*_weight_multiplier`` from config files to achieve a more"},{"line_number":154,"context_line":"   flexible weight during scheduling"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"#. Update docs about the new change"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3f79a3b5_472f83a5","line":156,"updated":"2018-12-06 14:11:36.000000000","message":"okay, just make sure you provide the right docs, like :\n* https://docs.openstack.org/nova/latest/user/filter-scheduler.html\n* https://docs.openstack.org/nova/latest/admin/configuration/schedulers.html","commit_id":"db6189753e58d3a9503f3b4c7e790aefa255f3c2"}]}
