)]}'
{"doc/source/scheduler_evolution.rst":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ff789533704cf96ea2a9be4bd2cc107744884add","unresolved":false,"context_lines":[{"line_number":61,"context_line":"However, we really need a single strong scheduler interface, to enable these"},{"line_number":62,"context_line":"sorts of innovation in a maintainable way."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Project Scale issues"},{"line_number":65,"context_line":"---------------------"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"There are interesting ideas for new schedulers, like the solver scheduler."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_2fcb83a5","line":64,"updated":"2015-07-09 10:17:35.000000000","message":"issues \u003d\u003e Issues","commit_id":"3743dafabba686e62e0b4d7f1d402b67c13ffc5e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ff789533704cf96ea2a9be4bd2cc107744884add","unresolved":false,"context_lines":[{"line_number":64,"context_line":"Project Scale issues"},{"line_number":65,"context_line":"---------------------"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"There are interesting ideas for new schedulers, like the solver scheduler."},{"line_number":68,"context_line":"There are frequently requests to add new scheduler filters and weights for"},{"line_number":69,"context_line":"to look at various different aspects of the compute host."},{"line_number":70,"context_line":"Currently the Nova team just doesn\u0027t had the bandwidth to deal with all these"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_4f07e7c9","line":67,"updated":"2015-07-09 10:17:35.000000000","message":"It would be worthwhile to put a link to that - https://github.com/CiscoSystems/nova-solver-scheduler or a wiki - something that actually explains what this is","commit_id":"3743dafabba686e62e0b4d7f1d402b67c13ffc5e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ff789533704cf96ea2a9be4bd2cc107744884add","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Currently the Nova team just doesn\u0027t had the bandwidth to deal with all these"},{"line_number":71,"context_line":"requests, where a dedicated scheduler team could work on these items"},{"line_number":72,"context_line":"independently from the rest of Nova work, once we have a good stable"},{"line_number":73,"context_line":"interface."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Key areas we are evolving"},{"line_number":76,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_0fb23f06","line":73,"updated":"2015-07-09 10:17:35.000000000","message":"Not sure that I understand the point here. Are the request being done via code that is pushed for review - or is this just BP\u0027s. My thinking is that this is the former and if that is the case then the review process is the bottleneck and not the scheduler team","commit_id":"3743dafabba686e62e0b4d7f1d402b67c13ffc5e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"ff789533704cf96ea2a9be4bd2cc107744884add","unresolved":false,"context_lines":[{"line_number":97,"context_line":"----------------------------------------"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"At the start of kilo, the scheduler is passed a set of dictionaries across"},{"line_number":100,"context_line":"a versioned RPC interface. The dics become a problem very quickly, as its"},{"line_number":101,"context_line":"easy to break backwards compatibility needed for live-upgrades."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Luckily we already have the oslo.versionedobjects infrastructure we can use"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_af98f375","line":100,"updated":"2015-07-09 10:17:35.000000000","message":"dics - oops","commit_id":"3743dafabba686e62e0b4d7f1d402b67c13ffc5e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"55b885909ece7eb534b49a8c72f6799d21af6d24","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Filter Scheduler Alternatives"},{"line_number":55,"context_line":"------------------------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"For certain use cases radically different scheduler will perform much better"},{"line_number":58,"context_line":"than the filter scheduler. We should not block this innovation. It is"},{"line_number":59,"context_line":"unreasonable to assume a single scheduler will work for all use cases."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_2e7d246e","line":57,"updated":"2015-07-14 11:26:05.000000000","message":"The line above does not make sense. Are you talking about scheduling filters? Or different schedulers?","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6e150c5ce595a21c8eb6ed5108c5c14b41681427","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Filter Scheduler Alternatives"},{"line_number":55,"context_line":"------------------------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"For certain use cases radically different scheduler will perform much better"},{"line_number":58,"context_line":"than the filter scheduler. We should not block this innovation. It is"},{"line_number":59,"context_line":"unreasonable to assume a single scheduler will work for all use cases."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_8433e4aa","line":57,"in_reply_to":"9a41bdd9_2e7d246e","updated":"2015-07-14 15:40:08.000000000","message":"both really, I can reword that.","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"55b885909ece7eb534b49a8c72f6799d21af6d24","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"There are interesting ideas for new schedulers, like the solver"},{"line_number":68,"context_line":"scheduler`[1]`_."},{"line_number":69,"context_line":"There are frequently requests to add new scheduler filters and weights for"},{"line_number":70,"context_line":"to look at various different aspects of the compute host."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Nova has got very big, which means work on the scheduler is competing for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_4ef748f5","line":69,"updated":"2015-07-14 11:26:05.000000000","message":"for to look \u003d\u003e for looking (i think that is what you intended)","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"76b4796d146dd3889d467ca3274f5ca1fe5e6b0d","unresolved":false,"context_lines":[{"line_number":67,"context_line":"There are interesting ideas for new schedulers, like the solver"},{"line_number":68,"context_line":"scheduler`[1]`_."},{"line_number":69,"context_line":"There are frequently requests to add new scheduler filters and weights for"},{"line_number":70,"context_line":"to look at various different aspects of the compute host."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Nova has got very big, which means work on the scheduler is competing for"},{"line_number":73,"context_line":"attention with the rest of Nova, which is slowing down progress."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_3a455f6f","line":70,"updated":"2015-07-14 11:25:27.000000000","message":"Nit: There are frequent requests to add new scheduler filters and weights\nto look at various different aspects of the compute host. (?)","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"76b4796d146dd3889d467ca3274f5ca1fe5e6b0d","unresolved":false,"context_lines":[{"line_number":70,"context_line":"to look at various different aspects of the compute host."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Nova has got very big, which means work on the scheduler is competing for"},{"line_number":73,"context_line":"attention with the rest of Nova, which is slowing down progress."},{"line_number":74,"context_line":"If we can have a smaller separate team that can focus on the scheduler,"},{"line_number":75,"context_line":"it is likely going to make faster progress."},{"line_number":76,"context_line":"The problem we currently have, is that the code is not separate from the rest"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_ee3bbccf","line":73,"updated":"2015-07-14 11:25:27.000000000","message":"Suggested: Nova has got very big overtime, and the scheduler work is competing for\nattention with the rest of Nova priorities, this is slowing down progress.","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"55b885909ece7eb534b49a8c72f6799d21af6d24","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Nova has got very big, which means work on the scheduler is competing for"},{"line_number":73,"context_line":"attention with the rest of Nova, which is slowing down progress."},{"line_number":74,"context_line":"If we can have a smaller separate team that can focus on the scheduler,"},{"line_number":75,"context_line":"it is likely going to make faster progress."},{"line_number":76,"context_line":"The problem we currently have, is that the code is not separate from the rest"},{"line_number":77,"context_line":"of Nova, so its not possible to work on the scheduler in isolation."},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_2e420411","line":75,"updated":"2015-07-14 11:26:05.000000000","message":"Not sure that I agree with this statement \u003d the similar statement can be for the drivers, the api, objects and every other part of nova.\nThe problem is everything is competing for a limited resource called reviews. That is the core problem.","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6e150c5ce595a21c8eb6ed5108c5c14b41681427","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Nova has got very big, which means work on the scheduler is competing for"},{"line_number":73,"context_line":"attention with the rest of Nova, which is slowing down progress."},{"line_number":74,"context_line":"If we can have a smaller separate team that can focus on the scheduler,"},{"line_number":75,"context_line":"it is likely going to make faster progress."},{"line_number":76,"context_line":"The problem we currently have, is that the code is not separate from the rest"},{"line_number":77,"context_line":"of Nova, so its not possible to work on the scheduler in isolation."},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_24a9b890","line":75,"in_reply_to":"9a41bdd9_2e420411","updated":"2015-07-14 15:40:08.000000000","message":"its not just reviews, its much wider than that. I am trying to cover the super set here.","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"76b4796d146dd3889d467ca3274f5ca1fe5e6b0d","unresolved":false,"context_lines":[{"line_number":96,"context_line":"There are also places where filters and weights call into the Nova DB to"},{"line_number":97,"context_line":"find out information about aggregates. This needs to be sent to the"},{"line_number":98,"context_line":"scheduler, rather than reading directly for the nova database."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Asking Scheduler to pick a nova-compute"},{"line_number":101,"context_line":"----------------------------------------"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_6e9c8cc0","line":99,"updated":"2015-07-14 11:25:27.000000000","message":"rather than reading directly \"from\" the nova database","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"55b885909ece7eb534b49a8c72f6799d21af6d24","unresolved":false,"context_lines":[{"line_number":101,"context_line":"----------------------------------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"At the start of kilo, the scheduler is passed a set of dictionaries across"},{"line_number":104,"context_line":"a versioned RPC interface. The dicts become a problem very quickly, as its"},{"line_number":105,"context_line":"easy to break backwards compatibility needed for live-upgrades."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Luckily we already have the oslo.versionedobjects infrastructure we can use"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_aec9347a","line":104,"updated":"2015-07-14 11:26:05.000000000","message":"can we change this to dictionaries","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6e150c5ce595a21c8eb6ed5108c5c14b41681427","unresolved":false,"context_lines":[{"line_number":101,"context_line":"----------------------------------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"At the start of kilo, the scheduler is passed a set of dictionaries across"},{"line_number":104,"context_line":"a versioned RPC interface. The dicts become a problem very quickly, as its"},{"line_number":105,"context_line":"easy to break backwards compatibility needed for live-upgrades."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Luckily we already have the oslo.versionedobjects infrastructure we can use"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_0495943d","line":104,"in_reply_to":"9a41bdd9_aec9347a","updated":"2015-07-14 15:40:08.000000000","message":"sure.","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"76b4796d146dd3889d467ca3274f5ca1fe5e6b0d","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"At the start of kilo, the scheduler is passed a set of dictionaries across"},{"line_number":104,"context_line":"a versioned RPC interface. The dicts become a problem very quickly, as its"},{"line_number":105,"context_line":"easy to break backwards compatibility needed for live-upgrades."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Luckily we already have the oslo.versionedobjects infrastructure we can use"},{"line_number":108,"context_line":"to model this data in a way that can be versioned across releases."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_ee973c8e","line":105,"updated":"2015-07-14 11:25:27.000000000","message":"The dicts can create problems during backward compatibility needs and live upgrades.","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"76b4796d146dd3889d467ca3274f5ca1fe5e6b0d","unresolved":false,"context_lines":[{"line_number":113,"context_line":"---------------------------------------------"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Periodically nova-compute updates the scheduler state that stored in"},{"line_number":116,"context_line":"the database."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"We need a good way to model the data that is being sent from the compute"},{"line_number":119,"context_line":"nodes into the scheduler, so over time, the scheduler can move to having"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_8eed5027","line":116,"updated":"2015-07-14 11:25:27.000000000","message":"omit \"that\"","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":14101,"name":"yapeng Yang","email":"a394954369@gmail.com","username":"yapeng"},"change_message_id":"45ff10a147cde4cea9009adcef1c08604b9fe008","unresolved":false,"context_lines":[{"line_number":113,"context_line":"---------------------------------------------"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Periodically nova-compute updates the scheduler state that stored in"},{"line_number":116,"context_line":"the database."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"We need a good way to model the data that is being sent from the compute"},{"line_number":119,"context_line":"nodes into the scheduler, so over time, the scheduler can move to having"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_47396b40","line":116,"in_reply_to":"9a41bdd9_8eed5027","updated":"2015-07-14 12:26:29.000000000","message":"yes.this should be omit","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"76b4796d146dd3889d467ca3274f5ca1fe5e6b0d","unresolved":false,"context_lines":[{"line_number":120,"context_line":"its own database."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"This is very linked with the work on the resource tracker."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Updating the Scheduler about other data"},{"line_number":125,"context_line":"----------------------------------------"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_eede5c6c","line":123,"updated":"2015-07-14 11:25:27.000000000","message":"This is pretty much (very much) linked with the work on the resource tracker.","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"76b4796d146dd3889d467ca3274f5ca1fe5e6b0d","unresolved":false,"context_lines":[{"line_number":148,"context_line":"particularly impacted by how the scheduler currently works."},{"line_number":149,"context_line":"This has all lead to many people only running a single nova-scheduler"},{"line_number":150,"context_line":"process configured to use a very small greenthread pool."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"The work on cells v2 will mean that we soon need the scheduler to scale for"},{"line_number":153,"context_line":"much larger problems. The current scheduler works best with less that 1k nodes"},{"line_number":154,"context_line":"but really we need this to work well with an excess of 10k nodes."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_0e48602c","line":151,"updated":"2015-07-14 11:25:27.000000000","message":"All of this has lead to...","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"76b4796d146dd3889d467ca3274f5ca1fe5e6b0d","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"The work on cells v2 will mean that we soon need the scheduler to scale for"},{"line_number":153,"context_line":"much larger problems. The current scheduler works best with less that 1k nodes"},{"line_number":154,"context_line":"but really we need this to work well with an excess of 10k nodes."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Various ideas have been discussed from two-phase commit \"style\" resource"},{"line_number":157,"context_line":"tracker claims being acquired by the scheduler to adopting ideas for them"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_6e2d6c45","line":154,"updated":"2015-07-14 11:25:27.000000000","message":"but in reality we need this to work...","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"76b4796d146dd3889d467ca3274f5ca1fe5e6b0d","unresolved":false,"context_lines":[{"line_number":156,"context_line":"Various ideas have been discussed from two-phase commit \"style\" resource"},{"line_number":157,"context_line":"tracker claims being acquired by the scheduler to adopting ideas for them"},{"line_number":158,"context_line":"no-db-scheduler blueprint but using Kafka."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"For more details, see the backlog spec that describes more of the details"},{"line_number":161,"context_line":"around this problem."},{"line_number":162,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a41bdd9_0e1dc00e","line":159,"updated":"2015-07-14 11:25:27.000000000","message":"Can this sentence be re-worded?","commit_id":"7c8249148ec1856eb4cb38f800ce2317800d9afe"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Once this effort has completed, its conceivable that the nova-scheduler could"},{"line_number":28,"context_line":"become a separate git repo, outside of Nova but within the compute project."},{"line_number":29,"context_line":"But this is not the current focus of this effort."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Problem Use Cases"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_5a1f595b","line":29,"updated":"2015-07-24 13:49:57.000000000","message":"Mmm, I don\u0027t feel necessary to comment about any scheduler split until we agree about that.\n\nTBH, the scheduler being a priority for Kilo and Liberty is clearly a win from my POV so discussing about whether we need to split or not is something needed.\n\nI know we want to have network and volume requests for the scheduler, but we haven\u0027t yet agreed so this is a bit too early IMHO - and we killed the Gantt codename anyway.\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2015-March/060179.html","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8ace3750931214b49018f08996c0ad9889d13346","unresolved":false,"context_lines":[{"line_number":29,"context_line":"But this is not the current focus of this effort."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Problem Use Cases"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Many users are wanting to do more advance things with the scheduler, but the"},{"line_number":35,"context_line":"current architecture is just not ready to support those in a maintainable way."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_b77e3368","line":32,"updated":"2015-07-22 14:07:37.000000000","message":"There are a couple of tensions it\u0027d be great to raise here. Some people want to get every single instance / oz of performance they can out of their hardware. Other people care more about repeatability, IE not getting scheduling retries and getting exactly the amount of performance they were promised (this helps with capacity planning).\n\nGenerally I\u0027d like OpenStack to be pessimistic and safe by default with options to tune up performance if you\u0027re prepared to accept certain risks (like scheduler retries). Rob was talking to me about kernel memory sharing and Cinder thin provisioning, the gains you get from these can vary over time so relying on them at all risks the scheduler having out of date information but they can give you substantial gains.\n\nThis is presupposing we start being smarter than goldfish about the scheduling decisions we just made.","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":29,"context_line":"But this is not the current focus of this effort."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Problem Use Cases"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Many users are wanting to do more advance things with the scheduler, but the"},{"line_number":35,"context_line":"current architecture is just not ready to support those in a maintainable way."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_fa5e6511","line":32,"in_reply_to":"3a50d1a3_b77e3368","updated":"2015-07-24 13:49:57.000000000","message":"Can we stop considering scheduler retries as something bad ? Having an optimistic scheduler doing concurrent transactions necessarly means that we will have retries. From my perspective, the main goal is not to reduce to zero all the retries, but rather to keep the retry ratio in a defined normal state which wouldn\u0027t diverge.","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":36,"context_line":"Lets look at a few key use cases that need to be easier to support once this"},{"line_number":37,"context_line":"initial work is complete."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Cross Project Resources"},{"line_number":40,"context_line":"------------------------"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"It is possible that when you boot from a volume, you want it to pick a compute"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_5a5759ca","line":39,"updated":"2015-07-24 13:49:57.000000000","message":"I\u0027d rather call that usecase \u0027Cross-project affinity\"\n\nCross Project resources involves a global scheduler accepting to do a placement decision for a volume IMHO\n\nHere the central piece to schedule remains the instance.","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"a777a4ff21e2a7a72e424ce61f47660d02ec2e5d","unresolved":false,"context_lines":[{"line_number":42,"context_line":"It is possible that when you boot from a volume, you want it to pick a compute"},{"line_number":43,"context_line":"node that is close to that volume, automatically."},{"line_number":44,"context_line":"There are similar use cases around a pre-created port and needing to be in a"},{"line_number":45,"context_line":"particular location for the best performance of that port."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Accessing Aggregates in Filters and Weights"},{"line_number":48,"context_line":"--------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_dbc5568e","line":45,"updated":"2015-07-21 20:56:00.000000000","message":"I know a user who wants rack affinity, presumably to support this kind of thing. A user may have foreknowledge, like \"next week I\u0027m going to upgrade this switch so I want this customer\u0027s VMs here\".","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":42,"context_line":"It is possible that when you boot from a volume, you want it to pick a compute"},{"line_number":43,"context_line":"node that is close to that volume, automatically."},{"line_number":44,"context_line":"There are similar use cases around a pre-created port and needing to be in a"},{"line_number":45,"context_line":"particular location for the best performance of that port."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Accessing Aggregates in Filters and Weights"},{"line_number":48,"context_line":"--------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_1a95513f","line":45,"in_reply_to":"3a50d1a3_dbc5568e","updated":"2015-07-24 13:49:57.000000000","message":"Sure, we can have volume/network/rack/pods/apple/orange affinity but please, we need to keep that devref the more generic possible.","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Any DB access in a filter or weight seriously slows down the scheduler."},{"line_number":51,"context_line":"Until the end of kilo, there was no way to deal with the scheduler access"},{"line_number":52,"context_line":"information about aggregates without querying the DB every time."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Filter Scheduler Alternatives"},{"line_number":55,"context_line":"------------------------------"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_ba93fd4e","line":53,"updated":"2015-07-24 13:49:57.000000000","message":"We also added the possibility to query instances not by calling the DB but rather the HostManager.","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":59,"context_line":"unreasonable to assume a single scheduler will work for all use cases."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"However, we really need a single strong scheduler interface, to enable these"},{"line_number":62,"context_line":"sorts of innovation in a maintainable way."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Project Scale issues"},{"line_number":65,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_9a1161b2","line":62,"updated":"2015-07-24 13:49:57.000000000","message":"Agreed, we can leave room for innovation and out-of-tree experiments, but that needs to be constrainted by our public internal APIs for the Scheduler.\n\nThat possibly means that we would agree on delivering some internal APIs that would have a stronger stable policy than the other internal APIs - but I\u0027m fine with that.","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":74,"context_line":"The problem we currently have, is that the nova-scheduler code is not separate"},{"line_number":75,"context_line":"from the rest of Nova, so its not currently possible to work on the scheduler"},{"line_number":76,"context_line":"in isolation. We need a stable interface before we can make the split."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Key areas we are evolving"},{"line_number":79,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_9a308109","line":77,"updated":"2015-07-24 13:49:57.000000000","message":"Mmm, I see that section as pretty identical to what you spotted in the Alternatives section above\n\nTo me, the scale issue should be explaining the problems we have about scaling in the scheduler (so the CachingScheduler) and about scaling out the scheduler (so comes the concurrency problem)","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":91,"context_line":"plugable through the service group API, and should be independent of the"},{"line_number":92,"context_line":"scheduler service. For example, it could be managed via zookeeper rather"},{"line_number":93,"context_line":"than polling the Nova DB."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"There are also places where filters and weights call into the Nova DB to"},{"line_number":96,"context_line":"find out information about aggregates. This needs to be sent to the"},{"line_number":97,"context_line":"scheduler, rather than reading directly form the nova database."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_f5baf609","line":94,"updated":"2015-07-24 13:49:57.000000000","message":"the main problem that we had is that conceptually the ComputeNodes table is for providing resource usage to the Scheduler while the Services table is just for checking the service liveness, hence the detach-service BP.\n\nI\u0027d rather mention the blueprint resource-objects from jay and explain that before fixing the model, we need to see where we go.","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"There are also places where filters and weights call into the Nova DB to"},{"line_number":96,"context_line":"find out information about aggregates. This needs to be sent to the"},{"line_number":97,"context_line":"scheduler, rather than reading directly form the nova database."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Asking Scheduler to pick a nova-compute"},{"line_number":100,"context_line":"----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_b509cedf","line":97,"updated":"2015-07-24 13:49:57.000000000","message":"Isn\u0027t it a rephrase of what you explained above ? You could maybe mention the blueprint isolate-scheduler-db","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":106,"context_line":"Luckily we already have the oslo.versionedobjects infrastructure we can use"},{"line_number":107,"context_line":"to model this data in a way that can be versioned across releases."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"This effort is mostly focusing around the request_spec."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Sending host and node stats to the scheduler"},{"line_number":112,"context_line":"---------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_15e76213","line":109,"updated":"2015-07-24 13:49:57.000000000","message":"Yeah, the BP is aiming to fix the badly expressed user request. While we fix the backwards compatibility problem, it\u0027s also rather due to the fact that we know that having dicts for defining an user API just sucks :-)\n\nPointing bp request-spec-object is worth it, no ?","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"a777a4ff21e2a7a72e424ce61f47660d02ec2e5d","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"We need a good way to model the data that is being sent from the compute"},{"line_number":118,"context_line":"nodes into the scheduler, so over time, the scheduler can move to having"},{"line_number":119,"context_line":"its own database."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"This is linked to the work on the resource tracker."},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_1ba65e10","line":119,"updated":"2015-07-21 20:56:00.000000000","message":"I\u0027d say the primary purpose of giving the scheduler its own DB is to reduce raciness. We want persistent claims and a scheduler-knows-all model to nearly eliminate resource tracking. The resource tracker would only report total resources and it could do this maybe once a day. Available would be (total - claims).","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"This is very related to the effort to re-think how we model resources, as"},{"line_number":140,"context_line":"covered by the discussion."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Parallelism"},{"line_number":143,"context_line":"------------"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_95bb7275","line":141,"updated":"2015-07-24 13:49:57.000000000","message":"Maybe mention the recently approved blueprint check-destination-on-migrations is worth it ?","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":140,"context_line":"covered by the discussion."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Parallelism"},{"line_number":143,"context_line":"------------"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"The current design of the nova-scheduler is very racey, and can lead to many"},{"line_number":146,"context_line":"build retries before the correct host is found. The recent NUMA features are"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_55988a6a","line":143,"updated":"2015-07-24 13:49:57.000000000","message":"I\u0027d rather call it \"concurrency\" even if we are talking about having multiple n-sch services because all the resource consumption is interlaced between all those n-sch services.","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":143,"context_line":"------------"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"The current design of the nova-scheduler is very racey, and can lead to many"},{"line_number":146,"context_line":"build retries before the correct host is found. The recent NUMA features are"},{"line_number":147,"context_line":"particularly impacted by how the scheduler currently works."},{"line_number":148,"context_line":"All this has lead to many people only running a single nova-scheduler"},{"line_number":149,"context_line":"process configured to use a very small greenthread pool."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_35f5be82","line":146,"updated":"2015-07-24 13:49:57.000000000","message":"Like I said above, we need to assume retries - that\u0027s a normal behaviour for something being concurrent.\nWhat we need to care is about what to fix to have a clear optimistic and transactional model for that.","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Various ideas have been discussed to reduce races when running multiple"},{"line_number":156,"context_line":"nova-scheduler processes."},{"line_number":157,"context_line":"One idea is to use two-phase commit \"style\" resource tracker claims."},{"line_number":158,"context_line":"Another idea involves using incremental updates so it is more efficient to"},{"line_number":159,"context_line":"keep the scheduler\u0027s state up to date, potentially using Kafka."},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_f5e1969b","line":157,"updated":"2015-07-24 13:49:57.000000000","message":"Not sure that idea was widely discussed because I\u0027m just horrified by it and I don\u0027t remember to have seen it before :-)\n\nThat\u0027s a bit difficult to explain why I\u0027m awfully against any 2PC ResourceTracker, unless I misunderstood :-)\n\nYes, we need transactions within the scheduler and yes, we need to keep a last-standing-man system on the compute node. That doesn\u0027t mean that a watchdog system within the compute node is a 2PC system :)","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"a777a4ff21e2a7a72e424ce61f47660d02ec2e5d","unresolved":false,"context_lines":[{"line_number":159,"context_line":"keep the scheduler\u0027s state up to date, potentially using Kafka."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"For more details, see the backlog spec that describes more of the details"},{"line_number":162,"context_line":"around this problem."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_bb72ca47","line":162,"updated":"2015-07-21 20:56:00.000000000","message":"it\u0027d be nice to have an extra section discussing the (long term, far off) idea of making the scheduler a library and how this gets around the double-client-library problem (needing both nova-client containing nova objects provided to the scheduler, and scheduler-client provided to nova, both at the right versions).","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2653ab80c341fb35afda39b762e72bebdf7bcdab","unresolved":false,"context_lines":[{"line_number":159,"context_line":"keep the scheduler\u0027s state up to date, potentially using Kafka."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"For more details, see the backlog spec that describes more of the details"},{"line_number":162,"context_line":"around this problem."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_fa4ae5ab","line":162,"in_reply_to":"3a50d1a3_77daebe9","updated":"2015-07-24 13:49:57.000000000","message":"NOOOOOOOO - could we stop talking about a library ? that\u0027s just silly ! How do you ship a library which would run an RPC service and would listen to the MQ ?","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"8ace3750931214b49018f08996c0ad9889d13346","unresolved":false,"context_lines":[{"line_number":159,"context_line":"keep the scheduler\u0027s state up to date, potentially using Kafka."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"For more details, see the backlog spec that describes more of the details"},{"line_number":162,"context_line":"around this problem."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_77daebe9","line":162,"in_reply_to":"3a50d1a3_bb72ca47","updated":"2015-07-22 14:07:37.000000000","message":"so having talked to Rob last night - maybe a library isn\u0027t necessarily the way to go? That works well if we want a Nova scheduler, a Cinder scheduler etc... but if we want one big brain that schedules across the full domain, it does make more sense as a service. Not sure how to solve the plugin problem then. Maybe the \"Nova plugin\" should actually be more of a module, which lives in the scheduler tree. It would make it slower to integrate A.N.Other project into the scheduler but then the scheduler client lib can contain all the resource types.\n\nGoing to try and have a conversation about this during the midcycle.","commit_id":"7e7dcc6d8723deb1245aa9b69fbcfb2d5c2fd28f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"af2718b2f3f75e52daba6c61eb909eee16f73384","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":"      Copyright (c) 2014 OpenStack Foundation"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"      Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"      not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_4155bdf7","line":2,"updated":"2015-08-28 22:08:07.000000000","message":"Pretty sure it\u0027s 2015 now ;P\n\nThat\u0027s why I really never include the copyright line... just have the license placement.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4451666ad209e69e463c87fb39e508298397f357","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":"      Copyright (c) 2014 OpenStack Foundation"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"      Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"      not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_2fa054f3","line":2,"in_reply_to":"da20952f_4155bdf7","updated":"2015-09-07 15:24:38.000000000","message":"yeah, I should just drop that.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ed9933cd8dad6a5093a0fe3b615d14b2e6ffc07","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Once this effort has completed, its conceivable that the nova-scheduler could"},{"line_number":28,"context_line":"become a separate git repo, outside of Nova but within the compute project."},{"line_number":29,"context_line":"But this is not the current focus of this effort."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Problem Use Cases"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_73cce988","line":29,"updated":"2015-09-01 13:15:34.000000000","message":"Mmm, I don\u0027t feel necessary to comment about any scheduler split until we agree about that.\n\nTBH, the scheduler being a priority for Kilo and Liberty is clearly a win from my POV so discussing about whether we need to split or not is something needed.\n\nI know we want to have network and volume requests for the scheduler, but we haven\u0027t yet agreed so this is a bit too early IMHO - and we killed the Gantt codename anyway.\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2015-March/060179.html","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4451666ad209e69e463c87fb39e508298397f357","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Once this effort has completed, its conceivable that the nova-scheduler could"},{"line_number":28,"context_line":"become a separate git repo, outside of Nova but within the compute project."},{"line_number":29,"context_line":"But this is not the current focus of this effort."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Problem Use Cases"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_8fc64098","line":29,"in_reply_to":"da20952f_73cce988","updated":"2015-09-07 15:24:38.000000000","message":"sure, but its something people care about, so I am documenting that here.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"af2718b2f3f75e52daba6c61eb909eee16f73384","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Problem Use Cases"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Many users are wanting to do more advance things with the scheduler, but the"},{"line_number":35,"context_line":"current architecture is just not ready to support those in a maintainable way."},{"line_number":36,"context_line":"Lets look at a few key use cases that need to be easier to support once this"},{"line_number":37,"context_line":"initial work is complete."}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_2168c9b8","line":34,"updated":"2015-08-28 22:08:07.000000000","message":"s/advance/advanced/","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4451666ad209e69e463c87fb39e508298397f357","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Problem Use Cases"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Many users are wanting to do more advance things with the scheduler, but the"},{"line_number":35,"context_line":"current architecture is just not ready to support those in a maintainable way."},{"line_number":36,"context_line":"Lets look at a few key use cases that need to be easier to support once this"},{"line_number":37,"context_line":"initial work is complete."}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_0f39d0a3","line":34,"in_reply_to":"da20952f_2168c9b8","updated":"2015-09-07 15:24:38.000000000","message":"Done","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ed9933cd8dad6a5093a0fe3b615d14b2e6ffc07","unresolved":false,"context_lines":[{"line_number":36,"context_line":"Lets look at a few key use cases that need to be easier to support once this"},{"line_number":37,"context_line":"initial work is complete."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Cross Project Resources"},{"line_number":40,"context_line":"------------------------"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"It is possible that when you boot from a volume, you want it to pick a compute"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_93a97d92","line":39,"updated":"2015-09-01 13:15:34.000000000","message":"I\u0027d rather call that usecase \u0027Cross-project affinity\"\n\nCross Project resources involves a global scheduler accepting to do a placement decision for a volume IMHO\n\nHere the central piece to schedule remains the instance.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4451666ad209e69e463c87fb39e508298397f357","unresolved":false,"context_lines":[{"line_number":36,"context_line":"Lets look at a few key use cases that need to be easier to support once this"},{"line_number":37,"context_line":"initial work is complete."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Cross Project Resources"},{"line_number":40,"context_line":"------------------------"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"It is possible that when you boot from a volume, you want it to pick a compute"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_2f0a94d2","line":39,"in_reply_to":"da20952f_93a97d92","updated":"2015-09-07 15:24:38.000000000","message":"sure, I was thinking more about moving the resource tracker, but thats technically separate","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"af2718b2f3f75e52daba6c61eb909eee16f73384","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Any DB access in a filter or weight seriously slows down the scheduler."},{"line_number":51,"context_line":"Until the end of kilo, there was no way to deal with the scheduler access"},{"line_number":52,"context_line":"information about aggregates without querying the DB every time."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Filter Scheduler Alternatives"},{"line_number":55,"context_line":"------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_21af69e3","line":52,"updated":"2015-08-28 22:08:07.000000000","message":"s/every time/in every call to host_passes() in a filter/","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4451666ad209e69e463c87fb39e508298397f357","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Any DB access in a filter or weight seriously slows down the scheduler."},{"line_number":51,"context_line":"Until the end of kilo, there was no way to deal with the scheduler access"},{"line_number":52,"context_line":"information about aggregates without querying the DB every time."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Filter Scheduler Alternatives"},{"line_number":55,"context_line":"------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_4fc6e868","line":52,"in_reply_to":"da20952f_21af69e3","updated":"2015-09-07 15:24:38.000000000","message":"Done Jay\u0027s comment.\n\nSylvain, lets add those in a follow up patch, not sure I get your point.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ed9933cd8dad6a5093a0fe3b615d14b2e6ffc07","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Any DB access in a filter or weight seriously slows down the scheduler."},{"line_number":51,"context_line":"Until the end of kilo, there was no way to deal with the scheduler access"},{"line_number":52,"context_line":"information about aggregates without querying the DB every time."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Filter Scheduler Alternatives"},{"line_number":55,"context_line":"------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_139ecd62","line":52,"in_reply_to":"da20952f_21af69e3","updated":"2015-09-01 13:15:34.000000000","message":"We also added the possibility to query instances not by calling the DB but rather the HostManager.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d5b2b443c139f58c84b5603fe816c0f6fa8d5f33","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Any DB access in a filter or weight seriously slows down the scheduler."},{"line_number":51,"context_line":"Until the end of kilo, there was no way to deal with the scheduler access"},{"line_number":52,"context_line":"information about aggregates without querying the DB every time."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Filter Scheduler Alternatives"},{"line_number":55,"context_line":"------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_11066020","line":52,"in_reply_to":"da20952f_4fc6e868","updated":"2015-09-10 09:47:07.000000000","message":"Fair enough","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"af2718b2f3f75e52daba6c61eb909eee16f73384","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Filter Scheduler Alternatives"},{"line_number":55,"context_line":"------------------------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"For certain use cases radically different scheduler will perform much better"},{"line_number":58,"context_line":"than the filter scheduler. We should not block this innovation. It is"},{"line_number":59,"context_line":"unreasonable to assume a single scheduler will work for all use cases."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_41f13d00","line":57,"updated":"2015-08-28 22:08:07.000000000","message":"s/use cases/use cases,/\n\ns/scheduler will/schedulers may/","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4451666ad209e69e463c87fb39e508298397f357","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Filter Scheduler Alternatives"},{"line_number":55,"context_line":"------------------------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"For certain use cases radically different scheduler will perform much better"},{"line_number":58,"context_line":"than the filter scheduler. We should not block this innovation. It is"},{"line_number":59,"context_line":"unreasonable to assume a single scheduler will work for all use cases."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_af79c430","line":57,"in_reply_to":"da20952f_41f13d00","updated":"2015-09-07 15:24:38.000000000","message":"Done","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ed9933cd8dad6a5093a0fe3b615d14b2e6ffc07","unresolved":false,"context_lines":[{"line_number":59,"context_line":"unreasonable to assume a single scheduler will work for all use cases."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"However, we really need a single strong scheduler interface, to enable these"},{"line_number":62,"context_line":"sorts of innovation in a maintainable way."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Project Scale issues"},{"line_number":65,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_737aa925","line":62,"updated":"2015-09-01 13:15:34.000000000","message":"Agreed, we can leave room for innovation and out-of-tree experiments, but that needs to be constrainted by our public internal APIs for the Scheduler.\n\nThat possibly means that we would agree on delivering some internal APIs that would have a stronger stable policy than the other internal APIs - but I\u0027m fine with that.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ed9933cd8dad6a5093a0fe3b615d14b2e6ffc07","unresolved":false,"context_lines":[{"line_number":74,"context_line":"The problem we currently have, is that the nova-scheduler code is not separate"},{"line_number":75,"context_line":"from the rest of Nova, so its not currently possible to work on the scheduler"},{"line_number":76,"context_line":"in isolation. We need a stable interface before we can make the split."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Key areas we are evolving"},{"line_number":79,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_53a685ae","line":77,"updated":"2015-09-01 13:15:34.000000000","message":"Mmm, I see that section as pretty identical to what you spotted in the Alternatives section above\n\nTo me, the scale issue should be explaining the problems we have about scaling in the scheduler (so the CachingScheduler) and about scaling out the scheduler (so comes the concurrency problem)","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4451666ad209e69e463c87fb39e508298397f357","unresolved":false,"context_lines":[{"line_number":74,"context_line":"The problem we currently have, is that the nova-scheduler code is not separate"},{"line_number":75,"context_line":"from the rest of Nova, so its not currently possible to work on the scheduler"},{"line_number":76,"context_line":"in isolation. We need a stable interface before we can make the split."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Key areas we are evolving"},{"line_number":79,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_8fa5e0a2","line":77,"in_reply_to":"da20952f_53a685ae","updated":"2015-09-07 15:24:38.000000000","message":"They are inter-related, but separate aims I feel.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d5b2b443c139f58c84b5603fe816c0f6fa8d5f33","unresolved":false,"context_lines":[{"line_number":74,"context_line":"The problem we currently have, is that the nova-scheduler code is not separate"},{"line_number":75,"context_line":"from the rest of Nova, so its not currently possible to work on the scheduler"},{"line_number":76,"context_line":"in isolation. We need a stable interface before we can make the split."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Key areas we are evolving"},{"line_number":79,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_ac0b9723","line":77,"in_reply_to":"da20952f_8fa5e0a2","updated":"2015-09-10 09:47:07.000000000","message":"Fair enough","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"af2718b2f3f75e52daba6c61eb909eee16f73384","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"The first step is breaking the link between the ComputeNode and Service"},{"line_number":90,"context_line":"DB tables. In theory where the Service information is stored should be"},{"line_number":91,"context_line":"plugable through the service group API, and should be independent of the"},{"line_number":92,"context_line":"scheduler service. For example, it could be managed via zookeeper rather"},{"line_number":93,"context_line":"than polling the Nova DB."},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_c1bc6d08","line":91,"updated":"2015-08-28 22:08:07.000000000","message":"s/plugable/pluggable/","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4451666ad209e69e463c87fb39e508298397f357","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"The first step is breaking the link between the ComputeNode and Service"},{"line_number":90,"context_line":"DB tables. In theory where the Service information is stored should be"},{"line_number":91,"context_line":"plugable through the service group API, and should be independent of the"},{"line_number":92,"context_line":"scheduler service. For example, it could be managed via zookeeper rather"},{"line_number":93,"context_line":"than polling the Nova DB."},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_0fb8f0c6","line":91,"in_reply_to":"da20952f_c1bc6d08","updated":"2015-09-07 15:24:38.000000000","message":"Done","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ed9933cd8dad6a5093a0fe3b615d14b2e6ffc07","unresolved":false,"context_lines":[{"line_number":91,"context_line":"plugable through the service group API, and should be independent of the"},{"line_number":92,"context_line":"scheduler service. For example, it could be managed via zookeeper rather"},{"line_number":93,"context_line":"than polling the Nova DB."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"There are also places where filters and weights call into the Nova DB to"},{"line_number":96,"context_line":"find out information about aggregates. This needs to be sent to the"},{"line_number":97,"context_line":"scheduler, rather than reading directly form the nova database."}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_13ac8d8a","line":94,"updated":"2015-09-01 13:15:34.000000000","message":"the main problem that we had is that conceptually the ComputeNodes table is for providing resource usage to the Scheduler while the Services table is just for checking the service liveness, hence the detach-service BP.\n\nI\u0027d rather mention the blueprint resource-objects from jay and explain that before fixing the model, we need to see where we go.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ed9933cd8dad6a5093a0fe3b615d14b2e6ffc07","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"There are also places where filters and weights call into the Nova DB to"},{"line_number":96,"context_line":"find out information about aggregates. This needs to be sent to the"},{"line_number":97,"context_line":"scheduler, rather than reading directly form the nova database."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Asking Scheduler to pick a nova-compute"},{"line_number":100,"context_line":"----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_b3b121e2","line":97,"updated":"2015-09-01 13:15:34.000000000","message":"Isn\u0027t it a rephrase of what you explained above ? You could maybe mention the blueprint isolate-scheduler-db","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4451666ad209e69e463c87fb39e508298397f357","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"There are also places where filters and weights call into the Nova DB to"},{"line_number":96,"context_line":"find out information about aggregates. This needs to be sent to the"},{"line_number":97,"context_line":"scheduler, rather than reading directly form the nova database."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Asking Scheduler to pick a nova-compute"},{"line_number":100,"context_line":"----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_8f4160ab","line":97,"in_reply_to":"da20952f_b3b121e2","updated":"2015-09-07 15:24:38.000000000","message":"Those are both good things we could add, well a link to the specs I guess.\n\nBut I am wanting to keep this at a higher level for now, lets add more detail once we have this in.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"af2718b2f3f75e52daba6c61eb909eee16f73384","unresolved":false,"context_lines":[{"line_number":96,"context_line":"find out information about aggregates. This needs to be sent to the"},{"line_number":97,"context_line":"scheduler, rather than reading directly form the nova database."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Asking Scheduler to pick a nova-compute"},{"line_number":100,"context_line":"----------------------------------------"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"At the start of kilo, the scheduler is passed a set of dictionaries across"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_014ee53a","line":99,"updated":"2015-08-28 22:08:07.000000000","message":"This section subtitle does not correspond to the paragraph below. Perhaps you want something like \"Scheduler placement interfaces are not properly versioned\"?","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4451666ad209e69e463c87fb39e508298397f357","unresolved":false,"context_lines":[{"line_number":96,"context_line":"find out information about aggregates. This needs to be sent to the"},{"line_number":97,"context_line":"scheduler, rather than reading directly form the nova database."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Asking Scheduler to pick a nova-compute"},{"line_number":100,"context_line":"----------------------------------------"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"At the start of kilo, the scheduler is passed a set of dictionaries across"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_4fd90821","line":99,"in_reply_to":"da20952f_014ee53a","updated":"2015-09-07 15:24:38.000000000","message":"Done","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ed9933cd8dad6a5093a0fe3b615d14b2e6ffc07","unresolved":false,"context_lines":[{"line_number":106,"context_line":"Luckily we already have the oslo.versionedobjects infrastructure we can use"},{"line_number":107,"context_line":"to model this data in a way that can be versioned across releases."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"This effort is mostly focusing around the request_spec."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Sending host and node stats to the scheduler"},{"line_number":112,"context_line":"---------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_33be71ae","line":109,"updated":"2015-09-01 13:15:34.000000000","message":"Yeah, the BP is aiming to fix the badly expressed user request. While we fix the backwards compatibility problem, it\u0027s also rather due to the fact that we know that having dicts for defining an user API just sucks :-)\n\nPointing bp request-spec-object is worth it, no ?","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4451666ad209e69e463c87fb39e508298397f357","unresolved":false,"context_lines":[{"line_number":106,"context_line":"Luckily we already have the oslo.versionedobjects infrastructure we can use"},{"line_number":107,"context_line":"to model this data in a way that can be versioned across releases."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"This effort is mostly focusing around the request_spec."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Sending host and node stats to the scheduler"},{"line_number":112,"context_line":"---------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_af230404","line":109,"in_reply_to":"da20952f_33be71ae","updated":"2015-09-07 15:24:38.000000000","message":"lets follow up with that, ideally link to the spec.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ed9933cd8dad6a5093a0fe3b615d14b2e6ffc07","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"This is very related to the effort to re-think how we model resources, as"},{"line_number":140,"context_line":"covered by the discussion."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Parallelism"},{"line_number":143,"context_line":"------------"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_33d511e4","line":141,"updated":"2015-09-01 13:15:34.000000000","message":"Maybe mention the recently approved blueprint check-destination-on-migrations is worth it ?","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4451666ad209e69e463c87fb39e508298397f357","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"This is very related to the effort to re-think how we model resources, as"},{"line_number":140,"context_line":"covered by the discussion."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Parallelism"},{"line_number":143,"context_line":"------------"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_6f708c08","line":141,"in_reply_to":"da20952f_33d511e4","updated":"2015-09-07 15:24:38.000000000","message":"unsure, thats more a bug fix.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ed9933cd8dad6a5093a0fe3b615d14b2e6ffc07","unresolved":false,"context_lines":[{"line_number":140,"context_line":"covered by the discussion."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Parallelism"},{"line_number":143,"context_line":"------------"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"The current design of the nova-scheduler is very racey, and can lead to many"},{"line_number":146,"context_line":"build retries before the correct host is found. The recent NUMA features are"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_73f62990","line":143,"updated":"2015-09-01 13:15:34.000000000","message":"I\u0027d rather call it \"concurrency\" even if we are talking about having multiple n-sch services because all the resource consumption is interlaced between all those n-sch services.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"af2718b2f3f75e52daba6c61eb909eee16f73384","unresolved":false,"context_lines":[{"line_number":142,"context_line":"Parallelism"},{"line_number":143,"context_line":"------------"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"The current design of the nova-scheduler is very racey, and can lead to many"},{"line_number":146,"context_line":"build retries before the correct host is found. The recent NUMA features are"},{"line_number":147,"context_line":"particularly impacted by how the scheduler currently works."},{"line_number":148,"context_line":"All this has lead to many people only running a single nova-scheduler"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_c16a2d81","line":145,"updated":"2015-08-28 22:08:07.000000000","message":"s/racey/racy/","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ed9933cd8dad6a5093a0fe3b615d14b2e6ffc07","unresolved":false,"context_lines":[{"line_number":143,"context_line":"------------"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"The current design of the nova-scheduler is very racey, and can lead to many"},{"line_number":146,"context_line":"build retries before the correct host is found. The recent NUMA features are"},{"line_number":147,"context_line":"particularly impacted by how the scheduler currently works."},{"line_number":148,"context_line":"All this has lead to many people only running a single nova-scheduler"},{"line_number":149,"context_line":"process configured to use a very small greenthread pool."}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_ee2b2c80","line":146,"updated":"2015-09-01 13:15:34.000000000","message":"Merging two comments I made on PS4 :\nwe need to assume retries - that\u0027s a normal behaviour for something being concurrent. What we need to care is about what to fix to have a clear optimistic and transactional model for that.\n\nTo be clear, an optimistic scheduler means that there are retries, just because it\u0027s optimistic ;-) What\u0027s wrong is when the retries increase, not when it\u0027s less than a certain percentage which really depends on the workload.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ed9933cd8dad6a5093a0fe3b615d14b2e6ffc07","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Various ideas have been discussed to reduce races when running multiple"},{"line_number":156,"context_line":"nova-scheduler processes."},{"line_number":157,"context_line":"One idea is to use two-phase commit \"style\" resource tracker claims."},{"line_number":158,"context_line":"Another idea involves using incremental updates so it is more efficient to"},{"line_number":159,"context_line":"keep the scheduler\u0027s state up to date, potentially using Kafka."},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_2e2e048c","line":157,"updated":"2015-09-01 13:15:34.000000000","message":"Not sure that idea was widely discussed because I\u0027m just horrified by it and I don\u0027t remember to have seen it before :-)\n\nThat\u0027s a bit difficult to explain why I\u0027m awfully against any 2PC ResourceTracker, unless I misunderstood :-)\n\nYes, we need transactions within the scheduler and yes, we need to keep a last-standing-man system on the compute node. That doesn\u0027t mean that a watchdog system within the compute node is a 2PC system :)","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4451666ad209e69e463c87fb39e508298397f357","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Various ideas have been discussed to reduce races when running multiple"},{"line_number":156,"context_line":"nova-scheduler processes."},{"line_number":157,"context_line":"One idea is to use two-phase commit \"style\" resource tracker claims."},{"line_number":158,"context_line":"Another idea involves using incremental updates so it is more efficient to"},{"line_number":159,"context_line":"keep the scheduler\u0027s state up to date, potentially using Kafka."},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_cf419864","line":157,"in_reply_to":"da20952f_2e2e048c","updated":"2015-09-07 15:24:38.000000000","message":"its the same old get a commit from multiple resource trackers before returning, and retry if that fails, we discussed a few times.\n\nI am calling it two-phase commit \"style\" on purpose.\n\nIts part of that backlog spec of mine you read.\n\nThese are discussed as ideas here, so I think thats fine.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d5b2b443c139f58c84b5603fe816c0f6fa8d5f33","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Various ideas have been discussed to reduce races when running multiple"},{"line_number":156,"context_line":"nova-scheduler processes."},{"line_number":157,"context_line":"One idea is to use two-phase commit \"style\" resource tracker claims."},{"line_number":158,"context_line":"Another idea involves using incremental updates so it is more efficient to"},{"line_number":159,"context_line":"keep the scheduler\u0027s state up to date, potentially using Kafka."},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da20952f_2c5d4715","line":157,"in_reply_to":"da20952f_cf419864","updated":"2015-09-10 09:47:07.000000000","message":"Oh it then seems that we\u0027re on the same page then, sorry if you felt I was nitpicking or arguing about something we previously agreed - but I was just misunderstanding the 2PC message\n\nMy bad, moving on.","commit_id":"468f135aee47ace2b9ec4803808e22f6a45642ad"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0862f9ef74fdaf612c1762ed230e71dbac898f6c","unresolved":false,"context_lines":[{"line_number":60,"context_line":"However, we really need a single strong scheduler interface, to enable these"},{"line_number":61,"context_line":"sorts of innovation in a maintainable way."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Project Scale issues"},{"line_number":64,"context_line":"---------------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"There are interesting ideas for new schedulers, like the solver scheduler."}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a1a9d01_7371e943","line":63,"updated":"2015-10-04 08:34:29.000000000","message":"issues \u003d\u003e Issues","commit_id":"88025e5a06259b976afbbece0d34dca82448813f"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0862f9ef74fdaf612c1762ed230e71dbac898f6c","unresolved":false,"context_lines":[{"line_number":74,"context_line":"from the rest of Nova, so its not currently possible to work on the scheduler"},{"line_number":75,"context_line":"in isolation. We need a stable interface before we can make the split."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Key areas we are evolving"},{"line_number":78,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Here we discuss, at a high level, areas that are being addressed as part of"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a1a9d01_138f4d24","line":77,"updated":"2015-10-04 08:34:29.000000000","message":"Do we want consistency with capital letters or is that an overkill","commit_id":"88025e5a06259b976afbbece0d34dca82448813f"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"3f1ae1eb67f0264a5dcda190583242b854b8c2a2","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"We need the Nova and scheduler data models to be independent of each other."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The first step is breaking the link between the ComputeNode and Service"},{"line_number":89,"context_line":"DB tables. In theory where the Service information is stored should be"},{"line_number":90,"context_line":"pluggable through the service group API, and should be independent of the"},{"line_number":91,"context_line":"scheduler service. For example, it could be managed via zookeeper rather"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a2ca52d_1403c40e","line":88,"updated":"2015-10-14 19:00:41.000000000","message":"What is the link between the ComputeNode and Service tables? I see that the scheduler accesses the Services table for liveness information.\n\nWould you like to see liveness information in the ComputeNode table to avoid access to Services?","commit_id":"34e72e62cba8d3d0b95c7a2e311f583bbbf75a2b"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"4773185c1ef57c3be963eb588c533176b161f0c3","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"We need the Nova and scheduler data models to be independent of each other."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The first step is breaking the link between the ComputeNode and Service"},{"line_number":89,"context_line":"DB tables. In theory where the Service information is stored should be"},{"line_number":90,"context_line":"pluggable through the service group API, and should be independent of the"},{"line_number":91,"context_line":"scheduler service. For example, it could be managed via zookeeper rather"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_133c23c7","line":88,"in_reply_to":"5a2ca52d_1403c40e","updated":"2015-11-10 13:24:29.000000000","message":"I think you can refer to https://blueprints.launchpad.net/nova/+spec/detach-service-from-computenode","commit_id":"34e72e62cba8d3d0b95c7a2e311f583bbbf75a2b"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"3f1ae1eb67f0264a5dcda190583242b854b8c2a2","unresolved":false,"context_lines":[{"line_number":117,"context_line":"nodes into the scheduler, so over time, the scheduler can move to having"},{"line_number":118,"context_line":"its own database."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"This is linked to the work on the resource tracker."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Updating the Scheduler about other data"},{"line_number":123,"context_line":"----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a2ca52d_1462e4ad","line":120,"updated":"2015-10-14 19:00:41.000000000","message":"Assuming resource tracker information is used outside of the scheduler, should there be a separate pluggable API for this. Equivalent to the Service Group API. The resource tracker would then call in to the ComputeNode API when it needs to be updated.","commit_id":"34e72e62cba8d3d0b95c7a2e311f583bbbf75a2b"},{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"3f1ae1eb67f0264a5dcda190583242b854b8c2a2","unresolved":false,"context_lines":[{"line_number":126,"context_line":"about those, and know when there are changes so it can update its cache."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Over time, its possible that we need to send cinder and neutron data, so"},{"line_number":129,"context_line":"the scheduler can use that data to help pick a nova-compute host."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Resource Tracker"},{"line_number":132,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5a2ca52d_b4dd3044","line":129,"updated":"2015-10-14 19:00:41.000000000","message":"I guess I don\u0027t understand why aggregate information is passed to the scheduler via an RPC call, while the rest of the node information is sent via the database. \n\nWhy was it done this way?\n\nIf a pluggable ComputeNodeSchedulerInfo API is set up could the aggregate information not be passed in to this way also?","commit_id":"34e72e62cba8d3d0b95c7a2e311f583bbbf75a2b"}]}
