)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2c27f7c95f3f1caf5ce40ecb4b94e0af9ee26720","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Smart Scheduler: A pluggable scheduler driver (Solver Scheduler)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This feature provides a smart scheduler driver, which enables complex"},{"line_number":10,"context_line":"constraints-based scheduling to start within the Nova or Gantt project to"},{"line_number":11,"context_line":"begin with.  The feature was approved and the code patches were submitted"},{"line_number":12,"context_line":"as part of the Icehouse cycle. This features supports for pluggable costs and"},{"line_number":13,"context_line":"constraints that can be added easily."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1ae5cdf2_cf1edb5e","line":10,"updated":"2014-06-13 07:51:02.000000000","message":"how do you integrate with existing blueprints, in particular with the forklift efforts ?","commit_id":"e677532d4ec7c54d1ff2f455fa9c3c8d1f591882"}],"specs/juno/smart_scheduler.rst":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"705fa5ebce57778cddba06f6e3d2750ce66a828a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Note: This blueprint was approved as part of the Icehouse release cycle,"},{"line_number":5,"context_line":"and several patches were already submitted as part of it. However, it missed"},{"line_number":6,"context_line":"the deadline to get all the reviews. Hence being submitted now as a Juno"},{"line_number":7,"context_line":"nova-spec document."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The **Smart Scheduler (Solver Scheduler)** provides an extensible mechanism"},{"line_number":10,"context_line":"for making smarter, complex constraints optimization based resource"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_deb3ef07","line":7,"updated":"2014-06-05 11:46:00.000000000","message":"This spec has completely ignored the mandatory template for writing proposals.\n\nPlease re-write this spec, by starting with specs/template.rst and then filling in all the required parts of the document.","commit_id":"e677532d4ec7c54d1ff2f455fa9c3c8d1f591882"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2c27f7c95f3f1caf5ce40ecb4b94e0af9ee26720","unresolved":false,"context_lines":[{"line_number":6,"context_line":"the deadline to get all the reviews. Hence being submitted now as a Juno"},{"line_number":7,"context_line":"nova-spec document."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The **Smart Scheduler (Solver Scheduler)** provides an extensible mechanism"},{"line_number":10,"context_line":"for making smarter, complex constraints optimization based resource"},{"line_number":11,"context_line":"scheduling in Nova. This driver supports pluggable Solvers, that can leverage"},{"line_number":12,"context_line":"existing complex constraint solving frameworks, available in open source"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_c4b40284","line":9,"updated":"2014-06-13 07:51:02.000000000","message":"what is the problem with the actual FilterScheduler so that it requires a whole new Solver Scheduler?","commit_id":"e677532d4ec7c54d1ff2f455fa9c3c8d1f591882"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"598504be3a6146bef11594bc16d83f465b3d6672","unresolved":false,"context_lines":[{"line_number":11,"context_line":"scheduling in Nova. This driver supports pluggable Solvers, that can leverage"},{"line_number":12,"context_line":"existing complex constraint solving frameworks, available in open source"},{"line_number":13,"context_line":"such as PULP_, CVXOPT_, `Google OR-TOOLS`_, etc. This Scheduler is currently"},{"line_number":14,"context_line":"supported to work with Compute Nodes in Nova."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":".. _PULP: https://projects.coin-or.org/PuLP"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_48fd123b","line":14,"updated":"2014-06-16 19:13:47.000000000","message":"What are the specific use cases that this is trying to solve? If this is specific to NFV, please list the specific applications that would benefit (and **how** they would benefit) from this proposed new scheduler.","commit_id":"e677532d4ec7c54d1ff2f455fa9c3c8d1f591882"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"598504be3a6146bef11594bc16d83f465b3d6672","unresolved":false,"context_lines":[{"line_number":13,"context_line":"such as PULP_, CVXOPT_, `Google OR-TOOLS`_, etc. This Scheduler is currently"},{"line_number":14,"context_line":"supported to work with Compute Nodes in Nova."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":".. _PULP: https://projects.coin-or.org/PuLP"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":".. _CVXOPT: http://cvxopt.org/"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_c8bf625f","line":16,"updated":"2014-06-16 19:13:47.000000000","message":"I\u0027m a little unclear what use cases PuLP or any of these references problem solver libraries would serve? You need to clearly describe why the existing filter-based scheduler either fails to identify the most appropriate node to place an instance or is less efficient than the proposed solver scheduler.","commit_id":"e677532d4ec7c54d1ff2f455fa9c3c8d1f591882"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"598504be3a6146bef11594bc16d83f465b3d6672","unresolved":false,"context_lines":[{"line_number":24,"context_line":"requirements that have to be satisfied by a host with available resource"},{"line_number":25,"context_line":"capacity. In addition to the constraints, we optimize the solution for some"},{"line_number":26,"context_line":"cost metrics, so that the net cost of placing all VMs to certain hosts is"},{"line_number":27,"context_line":"minimized."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"A pluggable Solver used by the Solver Scheduler driver models the Nova compute"},{"line_number":30,"context_line":"placement request as a constraint optimization problem using a set of"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_882aba8e","line":27,"updated":"2014-06-16 19:13:47.000000000","message":"This last sentence does not make sense to me. What do you mean by \"the net cost of placing all VMs to certain hosts\"? What is the net cost you speak of? And why would the net cost of placing *all* VMs on certain hosts affect the cost of placing a single VM on any particular host?","commit_id":"e677532d4ec7c54d1ff2f455fa9c3c8d1f591882"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"598504be3a6146bef11594bc16d83f465b3d6672","unresolved":false,"context_lines":[{"line_number":31,"context_line":"constraints derived from the placement request specification and a net cost"},{"line_number":32,"context_line":"value to optimize. A Solver implementation should model the constraints and"},{"line_number":33,"context_line":"costs and feed it to a constraint problem specification, which"},{"line_number":34,"context_line":"is eventually solved by using any external solvers such as the COIN-OR_ CLP_,"},{"line_number":35,"context_line":"CBC_, GLPK_, and so on."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. _COIN-OR: http://en.wikipedia.org/wiki/COIN-OR"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_2bdb607e","line":34,"updated":"2014-06-16 19:13:47.000000000","message":"You assume that the existing scheduler implementation has non-linear costs associated with each filter. You should explain why you think that is the case.\n\nFor instance, a filter that tests the available resources for resource X has no appreciable difference in cost to a filter that tests for available resources for resource Y. You need to explain why it is you think adding in a complex solver framework will be of benefit to the typical placement request.","commit_id":"e677532d4ec7c54d1ff2f455fa9c3c8d1f591882"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2c27f7c95f3f1caf5ce40ecb4b94e0af9ee26720","unresolved":false,"context_lines":[{"line_number":33,"context_line":"costs and feed it to a constraint problem specification, which"},{"line_number":34,"context_line":"is eventually solved by using any external solvers such as the COIN-OR_ CLP_,"},{"line_number":35,"context_line":"CBC_, GLPK_, and so on."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. _COIN-OR: http://en.wikipedia.org/wiki/COIN-OR"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":".. _CLP: http://en.wikipedia.org/wiki/COIN-OR#CLP"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_84659a1f","line":36,"updated":"2014-06-13 07:51:02.000000000","message":"Why can\u0027t they be some extended filters having a modular architecture ?","commit_id":"e677532d4ec7c54d1ff2f455fa9c3c8d1f591882"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2c27f7c95f3f1caf5ce40ecb4b94e0af9ee26720","unresolved":false,"context_lines":[{"line_number":66,"context_line":"includes the required disk and memory as constraints, and uses the free ram"},{"line_number":67,"context_line":"as a cost metric to maximize (for spreading hosts), or minimize (for stacking)"},{"line_number":68,"context_line":"for the LP problem."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"An example LP problem formulation is provided below to describe how this"},{"line_number":71,"context_line":"example solver models the problem in LP."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_24092631","line":69,"updated":"2014-06-13 07:51:02.000000000","message":"I\u0027m sorry but it\u0027s still unclear to me why linear decision-making is not good enough, and why it requires to deploy a 3rt-party dependency ?","commit_id":"e677532d4ec7c54d1ff2f455fa9c3c8d1f591882"},{"author":{"_account_id":8328,"name":"Mike Spreitzer","email":"mspreitz@us.ibm.com","username":"mspreitz"},"change_message_id":"05ac2e3ebd85f0624b3d503fc9f6fb448ffda7fe","unresolved":false,"context_lines":[{"line_number":87,"context_line":"`X21`, `X22`. Here, a variable `Xij` takes the value `1` if `VM_i` is placed on"},{"line_number":88,"context_line":"`Host_j`, `0` otherwise."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"If the problem objective is to minimize the cost metric of free_ram_mb, the"},{"line_number":91,"context_line":"mathematical LP formulation of this example is as follows:"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_63cd2d85","line":90,"updated":"2014-06-03 18:59:08.000000000","message":"On second thought, while I still have trouble seeing a good natural language description of the objective, I see that minimizing it would tend to pack VMs onto hosts.  It would not do as precise a job as a non-linear objective could, but it would have a packing effect.  And, if your hosts start out with different capacities, it would pack the smaller hosts first.","commit_id":"e677532d4ec7c54d1ff2f455fa9c3c8d1f591882"},{"author":{"_account_id":8328,"name":"Mike Spreitzer","email":"mspreitz@us.ibm.com","username":"mspreitz"},"change_message_id":"f8921217c4f92c8d44d290f460b9fad71228c960","unresolved":false,"context_lines":[{"line_number":87,"context_line":"`X21`, `X22`. Here, a variable `Xij` takes the value `1` if `VM_i` is placed on"},{"line_number":88,"context_line":"`Host_j`, `0` otherwise."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"If the problem objective is to minimize the cost metric of free_ram_mb, the"},{"line_number":91,"context_line":"mathematical LP formulation of this example is as follows:"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_d50d1739","line":90,"updated":"2014-06-02 05:44:51.000000000","message":"What exactly do you mean by \"minimize the cost metric of free ram\"?  I mean, what exactly is the cost metric?  If it is free ram in the system after placement, that should be the same for every placement, right?  If it is free ram (after placement) on the hosts involved in the chosen placement solution, that is something whose minimization would be meaningful (as a way of packing the VMs as tightly onto hosts as possible).  The formula exhibited below is neither of those.","commit_id":"e677532d4ec7c54d1ff2f455fa9c3c8d1f591882"},{"author":{"_account_id":8328,"name":"Mike Spreitzer","email":"mspreitz@us.ibm.com","username":"mspreitz"},"change_message_id":"f8921217c4f92c8d44d290f460b9fad71228c960","unresolved":false,"context_lines":[{"line_number":103,"context_line":"     X11*1024 + X12*1024 \u003e\u003d 1024 (disk minimum demand for VM_1)"},{"line_number":104,"context_line":"     X11*512  + X12*512  \u003e\u003d 512  (memory minimum demand for VM_1)"},{"line_number":105,"context_line":"     X21*1024 + X22*1024 \u003e\u003d 1024 (disk minimum demand for VM_2)"},{"line_number":106,"context_line":"     X21*512  + X22*512  \u003e\u003d 512  (memory minimum demand for VM_2)"},{"line_number":107,"context_line":"     X11      + X12      \u003d\u003d 1    (VM_1 can run in only 1 Host)"},{"line_number":108,"context_line":"     X21      + X22      \u003d\u003d 1    (VM_2 can run in only 1 Host)"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_122155b4","line":106,"updated":"2014-06-02 05:44:51.000000000","message":"The preceding four constraints are redundant with the following two.","commit_id":"e677532d4ec7c54d1ff2f455fa9c3c8d1f591882"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2c27f7c95f3f1caf5ce40ecb4b94e0af9ee26720","unresolved":false,"context_lines":[{"line_number":118,"context_line":".. _`coinor.pulp`: https://pypi.python.org/pypi/coinor.pulp"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Additional Solver implementations are planned in the roadmap, that support"},{"line_number":121,"context_line":"pluggable constraints and costs."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Configuration"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_0f15233f","line":121,"updated":"2014-06-13 07:51:02.000000000","message":"Why do we require a Pulp dependency, and why can\u0027t we do the maths directly ?","commit_id":"e677532d4ec7c54d1ff2f455fa9c3c8d1f591882"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2c27f7c95f3f1caf5ce40ecb4b94e0af9ee26720","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Additional Solver implementations are planned in the roadmap, that support"},{"line_number":121,"context_line":"pluggable constraints and costs."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Configuration"},{"line_number":125,"context_line":"-------------"},{"line_number":126,"context_line":"[Note: This set of configuration provided serves as an example for the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ae5cdf2_6f16a74a","line":123,"updated":"2014-06-13 07:51:02.000000000","message":"What\u0027s the status of the Pulp license?","commit_id":"e677532d4ec7c54d1ff2f455fa9c3c8d1f591882"}],"specs/juno/solver-scheduler.rst":[{"author":{"_account_id":8514,"name":"Yathiraj Udupi","email":"yudupi@cisco.com","username":"yudupi"},"change_message_id":"ee95573b6a6588dbfb63cad59728048e431dafd8","unresolved":false,"context_lines":[{"line_number":56,"context_line":"* Placing a bunch of VMs and a bunch of volumes that are close to each other."},{"line_number":57,"context_line":"  (Each vm_i is close to its local volume vol_i)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"and so on."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"More often we need to be able to support a combination of constraints and"},{"line_number":62,"context_line":"optimize for a combination of cost metrics.  Enabling these complex scenarios"}],"source_content_type":"text/x-rst","patch_set":10,"id":"baada198_689c56c0","line":59,"updated":"2014-07-23 18:01:30.000000000","message":"Adding to Mike\u0027s comment on placing groups of VMs:  the real value of a constraints optimization way of calculating resource placement decisions is seen when applied to joint placement decisions, i.e., when placing a group of VMs (of the same type, possible with the current APIs,  but for heterogenous VMs, you will additional nova scheduling APIs).  As shown by some of the use cases above,  a unified simultaneous placement decision will provide more optimal results as opposed to the sequential placements.","commit_id":"4a1a97ecfec86a0a6e1926644bdc0af90a82fb7e"},{"author":{"_account_id":8514,"name":"Yathiraj Udupi","email":"yudupi@cisco.com","username":"yudupi"},"change_message_id":"ee95573b6a6588dbfb63cad59728048e431dafd8","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"* Working project code: https://github.com/CiscoSystems/nova-solver-scheduler"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"* A reference solver implementation documentation: http://goo.gl/vuHcz2"}],"source_content_type":"text/x-rst","patch_set":10,"id":"baada198_4d48848a","line":233,"updated":"2014-07-23 18:01:30.000000000","message":"This third reference link provides an example scenario of solving the nova placement problem as a constraints optimization problem.","commit_id":"4a1a97ecfec86a0a6e1926644bdc0af90a82fb7e"}]}
