)]}'
{"specs/backlog/approved/spot-instances.rst":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"53b3c5e8c11ed389e6dfcb07ff79be101cdf63d0","unresolved":false,"context_lines":[{"line_number":36,"context_line":"there are enough available resources to satisfy the request. There is no way to"},{"line_number":37,"context_line":"prioritise a request against another, and there is no way a request could stop"},{"line_number":38,"context_line":"(or preempt) a running instance. When the computing capacity is tight, this"},{"line_number":39,"context_line":"situation may lead to an underutilization of the infrastructure."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Use Cases"},{"line_number":42,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_bd3293f0","line":39,"updated":"2015-06-09 08:23:50.000000000","message":"Agreed this is a problem nova should fix","commit_id":"c8644fe220a26e4706082c81b2048e9018cc2478"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"53b3c5e8c11ed389e6dfcb07ff79be101cdf63d0","unresolved":false,"context_lines":[{"line_number":60,"context_line":"With the spot instances in place, request from group-B would run as spot"},{"line_number":61,"context_line":"instances, being aware that they can be stoped at a given point and filling up"},{"line_number":62,"context_line":"as much resources as they can. Afterwards, an incoming request from group-A"},{"line_number":63,"context_line":"would stop some of the running instances if there is no room for them."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Project Priority"},{"line_number":66,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_bd497362","line":63,"updated":"2015-06-09 08:23:50.000000000","message":"great use case, I see a lot of use outside of scientific computing as well","commit_id":"c8644fe220a26e4706082c81b2048e9018cc2478"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"53b3c5e8c11ed389e6dfcb07ff79be101cdf63d0","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Proposed change"},{"line_number":71,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"The aim of this blueprint is to introduce initial support for spot instances"},{"line_number":74,"context_line":"into nova. It will add the ability to tag an instance as a spot instance (via"},{"line_number":75,"context_line":"flavor\u0027s extra specs) and the ability to stop running spot instances to free"},{"line_number":76,"context_line":"enough space for a non-spot instance. As a first implementation of spot"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_1a3e4dda","line":73,"updated":"2015-06-09 08:23:50.000000000","message":"Since we are adding this as a backlog, I think it would be better to omit some of this detail as we don\u0027t have to agree on the mechanics of the proposed change yet.\n\nI would mention the bidding system bits are not included in this change though.","commit_id":"c8644fe220a26e4706082c81b2048e9018cc2478"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"53b3c5e8c11ed389e6dfcb07ff79be101cdf63d0","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"REST API impact"},{"line_number":121,"context_line":"---------------"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Each API method which is either added or changed should have the following"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* Specification for the method"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_1d0c073a","line":122,"updated":"2015-06-09 08:23:50.000000000","message":"Just update each of these sections with something like TBD instead of keeping the boilerplate.","commit_id":"c8644fe220a26e4706082c81b2048e9018cc2478"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"53b3c5e8c11ed389e6dfcb07ff79be101cdf63d0","unresolved":false,"context_lines":[{"line_number":256,"context_line":"Assignee(s)"},{"line_number":257,"context_line":"-----------"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"Primary assignee:"},{"line_number":260,"context_line":"  aloga"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Other contributors:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afb71cf_1a152d48","line":259,"updated":"2015-06-09 08:23:50.000000000","message":"as a backlog spec lets drop the assignee","commit_id":"c8644fe220a26e4706082c81b2048e9018cc2478"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a8428b4398ba15d168c7c38584f72ebc67b81601","unresolved":false,"context_lines":[{"line_number":74,"context_line":"into nova. It will add the ability to tag an instance as a spot instance and"},{"line_number":75,"context_line":"the ability to stop running spot instances to free enough space for a non-spot"},{"line_number":76,"context_line":"instance. As a first implementation of spot instances it will not focus con the"},{"line_number":77,"context_line":"more complex bidding system or a system to dinamically adjust priorities."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Whenever a non-spot request cannot be satisfied, the scheduler will look into"},{"line_number":80,"context_line":"the running spot instances (if any) and will check if stopping some of them"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_c0a4f309","line":77,"updated":"2015-06-29 08:10:02.000000000","message":"I\u0027m really nor sure how Nova needs to be modified for sustaining that, or in other words, if all of that can\u0027be done elsewhere.\n\nWe had a POC for doing this kind of proposition (for having leases in OpenStack) which was called Blazar (formerly Climate). The thing is, we potentially needed to directly call back the nova scheduler for making sure that the instances were correctly given, but the whole orchestrator was out of Nova (and IMHO should still be out of that).\n\nSo, what I would like to see in that spec is not exactly the usecase which IMHO should be addressed at an upper level, but rather a gap analysis for Nova about what\u0027s missing particularly.\n\nSee https://wiki.openstack.org/wiki/Blazar for further information or ping me directly on IRC (bauzas), I\u0027d be glad to help you.\n\nDisclaimer: one major PITA was the quota management, which was left unchanged, we made the assumption that the tenant was sufficiently sized for that.\n\nNote: I\u0027m not saying that you should resurrect Blazar, my point is by far more about thinking about what\u0027s missing in Nova for the story","commit_id":"4c95e3b2d88a24ff73f1f51a555a639aad97fa05"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"99cc17bb161863a1a248e25d4faef4f5982f3f63","unresolved":false,"context_lines":[{"line_number":74,"context_line":"into nova. It will add the ability to tag an instance as a spot instance and"},{"line_number":75,"context_line":"the ability to stop running spot instances to free enough space for a non-spot"},{"line_number":76,"context_line":"instance. As a first implementation of spot instances it will not focus con the"},{"line_number":77,"context_line":"more complex bidding system or a system to dinamically adjust priorities."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Whenever a non-spot request cannot be satisfied, the scheduler will look into"},{"line_number":80,"context_line":"the running spot instances (if any) and will check if stopping some of them"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a50d1a3_cbb20f94","line":77,"in_reply_to":"ba3cc151_239d7e65","updated":"2015-07-29 09:25:57.000000000","message":"Well, MHO here is that the scheduler is a placement decision engine but not a workflow manager. If something asks him to place an instance somewhere using some SLA, then the scheduler will be really good at that.\n\nBut triggering the SLA miss (ie. detecting that we run out of space so we need to kill some spot instances) and acting on stopping instances (ie. deleting those spot instances) is not a scheduler responsibility.\n\nIn other words, I\u0027m okay to have some distinction in Nova for spot instances vs. golden instances and some corresponding filters based on a specific tagging, but I don\u0027t want to have the cloud management based in Nova.\n\nThat backlog spec is pretty unclear of the differences between Nova and what should be done elsewhere, I think that\u0027s the first step (ie. a high-level diagram of share of responsibilities between projects) before moving further and discuss how we can do that in Nova.","commit_id":"4c95e3b2d88a24ff73f1f51a555a639aad97fa05"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"7764b3789b689608d0b0e9e33e11898de4fa81e3","unresolved":false,"context_lines":[{"line_number":74,"context_line":"into nova. It will add the ability to tag an instance as a spot instance and"},{"line_number":75,"context_line":"the ability to stop running spot instances to free enough space for a non-spot"},{"line_number":76,"context_line":"instance. As a first implementation of spot instances it will not focus con the"},{"line_number":77,"context_line":"more complex bidding system or a system to dinamically adjust priorities."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Whenever a non-spot request cannot be satisfied, the scheduler will look into"},{"line_number":80,"context_line":"the running spot instances (if any) and will check if stopping some of them"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba3cc151_239d7e65","line":77,"in_reply_to":"ba3cc151_c0a4f309","updated":"2015-06-30 03:55:06.000000000","message":"Sylvain,\n\nThis is a problem nova+scheduler should eventually solve. And given the scheduler is inside nova today this backlog spec makes sense here. \n\nBut it would be good to clarify this detail in the spec.\n\nHow does that sound?","commit_id":"4c95e3b2d88a24ff73f1f51a555a639aad97fa05"},{"author":{"_account_id":15311,"name":"Surojit Pathak","email":"surojit.pathak@gmail.com","username":"suropathak"},"change_message_id":"22f5708d513ecfddfd23b366e072e9bdcd88f0df","unresolved":false,"context_lines":[{"line_number":57,"context_line":"resources for both user groups, since group-B\u0027s requests may fill up the"},{"line_number":58,"context_line":"complete infrastructure for long periods of time, making impossible to satisfy"},{"line_number":59,"context_line":"requests coming from group-A."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"With the spot instances in place, request from group-B would run as spot"},{"line_number":62,"context_line":"instances, being aware that they can be stoped at a given point and filling up"},{"line_number":63,"context_line":"as much resources as they can. Afterwards, an incoming request from group-A"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a8ffd7b_005feb0e","line":60,"updated":"2015-11-26 00:22:32.000000000","message":"Another use-case is utilization-specific. In real-life scenario, the group-A VMs might be serving/processing real-life traffic, which is a function of time, zone. Traditionally, it has been observed that those VMs utilize the resources, viz. CPU, at peak during day-time of weekdays, or follow some pattern over time, whereas the rest of the time, the utilization falls down. \u0027spot-instance\u0027 enables us for better utilization of resources, by scheduling group-B VMs with the help of utilization-aware-scheduling.","commit_id":"3940f94c31070ed26dcc7f755ee70b252837f7f0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6249f4f45fda8aa6aaf31d61d91c09386db5ac14","unresolved":false,"context_lines":[{"line_number":61,"context_line":"With the spot instances in place, request from group-B would run as spot"},{"line_number":62,"context_line":"instances, being aware that they can be stoped at a given point and filling up"},{"line_number":63,"context_line":"as much resources as they can. Afterwards, an incoming request from group-A"},{"line_number":64,"context_line":"would stop some of the running instances if there is no room for them."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Project Priority"},{"line_number":67,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da85f559_ba5f31e4","line":64,"updated":"2015-11-10 11:54:02.000000000","message":"Another use case here is leaving space for maintenance activities. You might want spot instances in there, so you can quickly find some space when needed.\n\nBut its the same common pattern here, I think. Utilization of reserved capacity, when the reservation is not required.","commit_id":"3940f94c31070ed26dcc7f755ee70b252837f7f0"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"be09f0f253deb281f9a69c61187fc8b62ce892e8","unresolved":false,"context_lines":[{"line_number":61,"context_line":"With the spot instances in place, request from group-B would run as spot"},{"line_number":62,"context_line":"instances, being aware that they can be stoped at a given point and filling up"},{"line_number":63,"context_line":"as much resources as they can. Afterwards, an incoming request from group-A"},{"line_number":64,"context_line":"would stop some of the running instances if there is no room for them."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Project Priority"},{"line_number":67,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba8a016a_8c56a6d0","line":64,"in_reply_to":"da85f559_ba5f31e4","updated":"2015-11-18 09:15:16.000000000","message":"Actually a really good point. I will cover it here as well.","commit_id":"3940f94c31070ed26dcc7f755ee70b252837f7f0"},{"author":{"_account_id":13587,"name":"Jean-Daniel Bonnetot","email":"jean-daniel.bonnetot@corp.ovh.com","username":"pilgrimstack"},"change_message_id":"7ce363889932a9d176ba3bab4e7b216152a843bd","unresolved":false,"context_lines":[{"line_number":62,"context_line":"instances, being aware that they can be stoped at a given point and filling up"},{"line_number":63,"context_line":"as much resources as they can. Afterwards, an incoming request from group-A"},{"line_number":64,"context_line":"would stop some of the running instances if there is no room for them."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Project Priority"},{"line_number":67,"context_line":"-----------------"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_93b30d9a","line":65,"updated":"2015-12-11 17:40:53.000000000","message":"Another use case for OpenStack itself! OpenStack need \"infrastructure donnors\" for the CI. Currently, a provider have to allocate ressources for this task and the step is a little bit high.\nWith spot instances, infrastructure donnors will be able do provide ressources just with the already available hosts when they are not used by custommers.\nOpenStack Infrastructure team could use many providers and deal with a large volatile capacity.","commit_id":"3940f94c31070ed26dcc7f755ee70b252837f7f0"},{"author":{"_account_id":15311,"name":"Surojit Pathak","email":"surojit.pathak@gmail.com","username":"suropathak"},"change_message_id":"22f5708d513ecfddfd23b366e072e9bdcd88f0df","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"The aim of this blueprint is to introduce initial support for spot instances"},{"line_number":75,"context_line":"into nova, considering only spot instances VS non-spot or vanilla instances."},{"line_number":76,"context_line":"This way, spot instances will be able to run as log as there are no resources"},{"line_number":77,"context_line":"to satisfy a non-spot request."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"- This change will add the ability to tag an instance as a spot instance."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a8ffd7b_60a6f711","line":76,"updated":"2015-11-26 00:22:32.000000000","message":"Typo: s/log/long/","commit_id":"3940f94c31070ed26dcc7f755ee70b252837f7f0"},{"author":{"_account_id":15311,"name":"Surojit Pathak","email":"surojit.pathak@gmail.com","username":"suropathak"},"change_message_id":"22f5708d513ecfddfd23b366e072e9bdcd88f0df","unresolved":false,"context_lines":[{"line_number":81,"context_line":"- This change will make possible to stop running spot instances to free enough"},{"line_number":82,"context_line":"  space for a normal instance."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"- This change will not focus on the spot vs. spot scheduling."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"- This change will not focus on terminating the spot-instances that are below a"},{"line_number":87,"context_line":"  price or priority, since no priorities are considered so far."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a8ffd7b_008dab7a","line":84,"updated":"2015-11-26 00:22:32.000000000","message":"IMHO, we have to make scheduling smart enough to get this feature working.","commit_id":"3940f94c31070ed26dcc7f755ee70b252837f7f0"},{"author":{"_account_id":15311,"name":"Surojit Pathak","email":"surojit.pathak@gmail.com","username":"suropathak"},"change_message_id":"22f5708d513ecfddfd23b366e072e9bdcd88f0df","unresolved":false,"context_lines":[{"line_number":84,"context_line":"- This change will not focus on the spot vs. spot scheduling."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"- This change will not focus on terminating the spot-instances that are below a"},{"line_number":87,"context_line":"  price or priority, since no priorities are considered so far."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"In order to perform such a scheduling we propose to create a new HostManager"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a8ffd7b_a0d13f59","line":87,"updated":"2015-11-26 00:22:32.000000000","message":"IMHO, by introducing \u0027spot\u0027-property, we are introducing priority and hence priority-based-scheduling. Pricing/bidding should be a model above that abstraction and should out of scope of this blueprint.","commit_id":"3940f94c31070ed26dcc7f755ee70b252837f7f0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6249f4f45fda8aa6aaf31d61d91c09386db5ac14","unresolved":false,"context_lines":[{"line_number":97,"context_line":"  and normal instances."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"- a non-spot-state, that will take into account the host resources consumed by"},{"line_number":100,"context_line":"  normal instances."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"The new FilterScheduler will perform the filtering taking into account the"},{"line_number":103,"context_line":"full-state of the hosts. When a normal instance is being scheduled, the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da85f559_faf299d1","line":100,"updated":"2015-11-10 11:54:02.000000000","message":"Not sure we want a new HostManager, feels like we should support this by default.\n\nIt feels like you just want a new set of resource counts for spot instances, and non-spot instances, along side the actual resources.","commit_id":"3940f94c31070ed26dcc7f755ee70b252837f7f0"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"be09f0f253deb281f9a69c61187fc8b62ce892e8","unresolved":false,"context_lines":[{"line_number":97,"context_line":"  and normal instances."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"- a non-spot-state, that will take into account the host resources consumed by"},{"line_number":100,"context_line":"  normal instances."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"The new FilterScheduler will perform the filtering taking into account the"},{"line_number":103,"context_line":"full-state of the hosts. When a normal instance is being scheduled, the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba8a016a_0c9ab663","line":100,"in_reply_to":"da85f559_faf299d1","updated":"2015-11-18 09:15:16.000000000","message":"Yes, indeed, there\u0027s no need for a separate HostManager, this functionality can be integrated in the existing one.","commit_id":"3940f94c31070ed26dcc7f755ee70b252837f7f0"},{"author":{"_account_id":15311,"name":"Surojit Pathak","email":"surojit.pathak@gmail.com","username":"suropathak"},"change_message_id":"22f5708d513ecfddfd23b366e072e9bdcd88f0df","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Alternatives"},{"line_number":122,"context_line":"------------"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Congress is a policy engine for OpenStack. Congress could be useful for"},{"line_number":125,"context_line":"managing spot instances. A policy could be defined within Congress so that spot"},{"line_number":126,"context_line":"instances whose price is below a given price are killed. However, this poses"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a8ffd7b_5b6f22c5","line":123,"updated":"2015-11-26 00:22:32.000000000","message":"Another alternative is to develop \u0027spot-instance\u0027 as a separate service. There are some pros and cons of that approach. Being within nova helps in one way but will add other overhead too - specially we have to consider quota/Dos-attack etc. \u0027spot-instance\u0027 comes with its own set of feature requirement - and having a separate service helps there. We can elaborate this.","commit_id":"3940f94c31070ed26dcc7f755ee70b252837f7f0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6249f4f45fda8aa6aaf31d61d91c09386db5ac14","unresolved":false,"context_lines":[{"line_number":142,"context_line":"REST API impact"},{"line_number":143,"context_line":"---------------"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"TBD"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Security impact"},{"line_number":148,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da85f559_c44c9772","line":145,"updated":"2015-11-10 11:54:02.000000000","message":"Is this something that is attached to a flavor? Maybe post flavor de-composition work?","commit_id":"3940f94c31070ed26dcc7f755ee70b252837f7f0"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"be09f0f253deb281f9a69c61187fc8b62ce892e8","unresolved":false,"context_lines":[{"line_number":142,"context_line":"REST API impact"},{"line_number":143,"context_line":"---------------"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"TBD"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Security impact"},{"line_number":148,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba8a016a_2c3f7ad7","line":145,"in_reply_to":"da85f559_c44c9772","updated":"2015-11-18 09:15:16.000000000","message":"Well, this is something that needs to be discussed. From the top of my head there are three easy ways:\n\n- We could use flavors, however we should take care that an instance cannot be resized (i.e. changing the flavor) from a spot flavor to a non-spot flavor.\n- We could expose it using an API extension, bumping the micro-version and marking the instances as spot directly in the DB.\n- We could consider tags, but we should have a way to protect them (i.e. if a user request a spot, it cannot be \"un-spotted\" by removing a tag).\n\nTo be honest, I lean more for the API extension, as we would get a contract on the way of asking for the same functionality over all the OpenStack deployments. IMO this will make things easier for users dealing with several clouds, as well as cloud federations.","commit_id":"3940f94c31070ed26dcc7f755ee70b252837f7f0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6249f4f45fda8aa6aaf31d61d91c09386db5ac14","unresolved":false,"context_lines":[{"line_number":152,"context_line":"many spot instances to be destroyed, then they could just immediately shut down"},{"line_number":153,"context_line":"their non-spot instances again. They wouldnt have incurred any real expense for"},{"line_number":154,"context_line":"the short time their non-spot instances run, but they will have killed off many"},{"line_number":155,"context_line":"other people\u0027s spot instances."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Notifications impact"},{"line_number":158,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da85f559_c41ed762","line":155,"updated":"2015-11-10 11:54:02.000000000","message":"Need to think about quotas and rate limits, in the usual way, to protect against some of this.","commit_id":"3940f94c31070ed26dcc7f755ee70b252837f7f0"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"be09f0f253deb281f9a69c61187fc8b62ce892e8","unresolved":false,"context_lines":[{"line_number":152,"context_line":"many spot instances to be destroyed, then they could just immediately shut down"},{"line_number":153,"context_line":"their non-spot instances again. They wouldnt have incurred any real expense for"},{"line_number":154,"context_line":"the short time their non-spot instances run, but they will have killed off many"},{"line_number":155,"context_line":"other people\u0027s spot instances."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Notifications impact"},{"line_number":158,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba8a016a_2c169a55","line":155,"in_reply_to":"da85f559_c41ed762","updated":"2015-11-18 09:15:16.000000000","message":"Yes, indeed.","commit_id":"3940f94c31070ed26dcc7f755ee70b252837f7f0"}],"specs/juno/spot-instances.rst":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"fa1d1afd94fbba355df0d53ab9b3531d82206169","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Cloud computing may give users the illusion of infinite capacity, but it is not"},{"line_number":14,"context_line":"always like this. Sometimes the resources are full, and a request may not be"},{"line_number":15,"context_line":"satisfied, failing with an error. In such cases, the usage of spot instances"},{"line_number":16,"context_line":"may be useful."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_425c5c4b","line":16,"updated":"2014-07-07 08:44:59.000000000","message":"Ok, so, IIUC this feature is only useful in the scenario where the cloud provider is running at near full capacity of their compute hardware. I\u0027m wondering how often this kind of scenario occurs in real world clouds. eg whether it is a big enough problem to justify the complexity of the new feature to deal with it.","commit_id":"fdc5d0786c2e8823710ea9a9fad73d0a024dbb3f"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"b4fb6eebf3b51d08a94eb7169f6e0b82fa7b387e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Cloud computing may give users the illusion of infinite capacity, but it is not"},{"line_number":14,"context_line":"always like this. Sometimes the resources are full, and a request may not be"},{"line_number":15,"context_line":"satisfied, failing with an error. In such cases, the usage of spot instances"},{"line_number":16,"context_line":"may be useful."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_258cd2d9","line":16,"in_reply_to":"baada198_425c5c4b","updated":"2014-07-07 09:07:43.000000000","message":"Yes, it is. Consider that there are not only commercial providers, but also scientific clouds where this feature could be quite useful.\n\nI will cover some more use cases in a further revision, but just as an example, consider the following scenario. A scientific cloud computing infrastructure with two kind of users: some requiring interactivity and some others requiring large processing tasks. The later could use spot instances to process their data (saving intermediate states), filling up as many nodes as they can and the former will use non-spot instances.","commit_id":"fdc5d0786c2e8823710ea9a9fad73d0a024dbb3f"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"5bb9847b9f3c95b9357aa1cea59f337c769893a9","unresolved":false,"context_lines":[{"line_number":40,"context_line":"In order to tag an instance as an spot instance, the extra_specs attribute of"},{"line_number":41,"context_line":"a flavor will be used. This way, any instance spawned using that flavor, will"},{"line_number":42,"context_line":"become a spot instance. This makes possible that an operator can define"},{"line_number":43,"context_line":"precisely what instance types can be requested as a spot instance."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Whenever a non-spot request cannot be satisfied, the scheduler will look into"},{"line_number":46,"context_line":"the running spot instances (if any) and will check if stopping some of them"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_abdb6f4d","line":43,"updated":"2014-07-04 16:02:14.000000000","message":"There are two attributes... one that this is a spot instance and a second is the \u0027price\u0027 to be paid.","commit_id":"fdc5d0786c2e8823710ea9a9fad73d0a024dbb3f"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"b5f36e29f5cad8a60943d0e5d703263b90378dac","unresolved":false,"context_lines":[{"line_number":40,"context_line":"In order to tag an instance as an spot instance, the extra_specs attribute of"},{"line_number":41,"context_line":"a flavor will be used. This way, any instance spawned using that flavor, will"},{"line_number":42,"context_line":"become a spot instance. This makes possible that an operator can define"},{"line_number":43,"context_line":"precisely what instance types can be requested as a spot instance."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Whenever a non-spot request cannot be satisfied, the scheduler will look into"},{"line_number":46,"context_line":"the running spot instances (if any) and will check if stopping some of them"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_e20bb07a","line":43,"in_reply_to":"baada198_abdb6f4d","updated":"2014-07-07 08:35:18.000000000","message":"I was thinking in a much simpler approach as a first implementation.\n\nIn this BP, only non-spot instances are able to stop spot instances. This will always be true, even with bidding in place. In a second bp, bidding should be implemented, so that a spot instance with a higher bid can stop a lower bid one.","commit_id":"fdc5d0786c2e8823710ea9a9fad73d0a024dbb3f"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"5bb9847b9f3c95b9357aa1cea59f337c769893a9","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Whenever a non-spot request cannot be satisfied, the scheduler will look into"},{"line_number":46,"context_line":"the running spot instances (if any) and will check if stopping some of them"},{"line_number":47,"context_line":"will release the needed resources for the new request. If the request can be"},{"line_number":48,"context_line":"satisfied, the scheduler will then stop that instances and the new request"},{"line_number":49,"context_line":"will be eventually scheduled into that slot."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_2b9d9f66","line":47,"updated":"2014-07-04 16:02:14.000000000","message":"It is not trivial to know whether stopping an instance will free up resources. Example would be if a specific aggregate combination is needed and the resources being freed are not on one of the relevant hypervisors.","commit_id":"fdc5d0786c2e8823710ea9a9fad73d0a024dbb3f"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"b5f36e29f5cad8a60943d0e5d703263b90378dac","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Whenever a non-spot request cannot be satisfied, the scheduler will look into"},{"line_number":46,"context_line":"the running spot instances (if any) and will check if stopping some of them"},{"line_number":47,"context_line":"will release the needed resources for the new request. If the request can be"},{"line_number":48,"context_line":"satisfied, the scheduler will then stop that instances and the new request"},{"line_number":49,"context_line":"will be eventually scheduled into that slot."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_22d4c8ea","line":47,"in_reply_to":"baada198_2b9d9f66","updated":"2014-07-07 08:35:18.000000000","message":"Yes, indeed. This is why I drafted this bp without bidding in place, to focus in the scheduling issues.","commit_id":"fdc5d0786c2e8823710ea9a9fad73d0a024dbb3f"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"5bb9847b9f3c95b9357aa1cea59f337c769893a9","unresolved":false,"context_lines":[{"line_number":46,"context_line":"the running spot instances (if any) and will check if stopping some of them"},{"line_number":47,"context_line":"will release the needed resources for the new request. If the request can be"},{"line_number":48,"context_line":"satisfied, the scheduler will then stop that instances and the new request"},{"line_number":49,"context_line":"will be eventually scheduled into that slot."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_4bb9f313","line":49,"updated":"2014-07-04 16:02:14.000000000","message":"How will the instances be notified that they are to be stopped ? or is it no notification ?","commit_id":"fdc5d0786c2e8823710ea9a9fad73d0a024dbb3f"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"fa1d1afd94fbba355df0d53ab9b3531d82206169","unresolved":false,"context_lines":[{"line_number":46,"context_line":"the running spot instances (if any) and will check if stopping some of them"},{"line_number":47,"context_line":"will release the needed resources for the new request. If the request can be"},{"line_number":48,"context_line":"satisfied, the scheduler will then stop that instances and the new request"},{"line_number":49,"context_line":"will be eventually scheduled into that slot."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_a502a207","line":49,"updated":"2014-07-07 08:44:59.000000000","message":"It feels like this idea will make it possible for people to inflict denial of service attack on the cloud. eg someone could request a 100 non-spot instances, causing many many spot instances to be destroyed, then they could just immediately shut down their non-spot instances again. They wouldnt have incurred any real expense for the short time their non-spot instances run, but they will have killed off many other people\u0027s spot instances.","commit_id":"fdc5d0786c2e8823710ea9a9fad73d0a024dbb3f"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"b5f36e29f5cad8a60943d0e5d703263b90378dac","unresolved":false,"context_lines":[{"line_number":46,"context_line":"the running spot instances (if any) and will check if stopping some of them"},{"line_number":47,"context_line":"will release the needed resources for the new request. If the request can be"},{"line_number":48,"context_line":"satisfied, the scheduler will then stop that instances and the new request"},{"line_number":49,"context_line":"will be eventually scheduled into that slot."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_a2637840","line":49,"in_reply_to":"baada198_4bb9f313","updated":"2014-07-07 08:35:18.000000000","message":"I do not foresee a notification for the instances that are going to be terminated.\n\nImplementing a notification will also introduce a delay (we should give some time so that the instance prepares for termination) and it is difficult to get a compromise between a reasonable delay for the incoming request and giving the instance enough time to save its state.","commit_id":"fdc5d0786c2e8823710ea9a9fad73d0a024dbb3f"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"b4fb6eebf3b51d08a94eb7169f6e0b82fa7b387e","unresolved":false,"context_lines":[{"line_number":46,"context_line":"the running spot instances (if any) and will check if stopping some of them"},{"line_number":47,"context_line":"will release the needed resources for the new request. If the request can be"},{"line_number":48,"context_line":"satisfied, the scheduler will then stop that instances and the new request"},{"line_number":49,"context_line":"will be eventually scheduled into that slot."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_e543ba69","line":49,"in_reply_to":"baada198_a502a207","updated":"2014-07-07 09:07:43.000000000","message":"Good point. I will cover this in the security section.","commit_id":"fdc5d0786c2e8823710ea9a9fad73d0a024dbb3f"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"5bb9847b9f3c95b9357aa1cea59f337c769893a9","unresolved":false,"context_lines":[{"line_number":47,"context_line":"will release the needed resources for the new request. If the request can be"},{"line_number":48,"context_line":"satisfied, the scheduler will then stop that instances and the new request"},{"line_number":49,"context_line":"will be eventually scheduled into that slot."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_eb4c8744","line":50,"updated":"2014-07-04 16:02:14.000000000","message":"How will we set the bid price for the spot ?","commit_id":"fdc5d0786c2e8823710ea9a9fad73d0a024dbb3f"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"b5f36e29f5cad8a60943d0e5d703263b90378dac","unresolved":false,"context_lines":[{"line_number":47,"context_line":"will release the needed resources for the new request. If the request can be"},{"line_number":48,"context_line":"satisfied, the scheduler will then stop that instances and the new request"},{"line_number":49,"context_line":"will be eventually scheduled into that slot."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_a2ca9818","line":50,"in_reply_to":"baada198_eb4c8744","updated":"2014-07-07 08:35:18.000000000","message":"This will not be implemented in this blueprint. Once the spot mechanism is in place (i.e. an instance can stop another one and it is properly scheduled) bidding will be implemented.","commit_id":"fdc5d0786c2e8823710ea9a9fad73d0a024dbb3f"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"fa1d1afd94fbba355df0d53ab9b3531d82206169","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Security impact"},{"line_number":68,"context_line":"---------------"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"This BP does not introduce any security issues."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Notifications impact"},{"line_number":73,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"baada198_2516924c","line":70,"updated":"2014-07-07 08:44:59.000000000","message":"Please cover the denial of service attack I mention above here.","commit_id":"fdc5d0786c2e8823710ea9a9fad73d0a024dbb3f"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"e207e45b08c116a3f02573b775ea769dd30e87af","unresolved":false,"context_lines":[{"line_number":95,"context_line":"many spot instances to be destroyed, then they could just immediately shut down"},{"line_number":96,"context_line":"their non-spot instances again. They wouldnt have incurred any real expense for"},{"line_number":97,"context_line":"the short time their non-spot instances run, but they will have killed off many"},{"line_number":98,"context_line":"other people\u0027s spot instances."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Notifications impact"},{"line_number":101,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"baada198_6a3d8adc","line":98,"updated":"2014-07-08 10:30:26.000000000","message":"This is incomplete, and just added as a reference.","commit_id":"14d4aa7875b0b50ac9bf1642ac44c4b31b9724e1"}],"specs/liberty/approved/spot-instances.rst":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"e08d713d04b2c92ac1bf507239c242b209e6e1cc","unresolved":false,"context_lines":[{"line_number":88,"context_line":"will be eventually scheduled into the freed resources."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"I am posting to get preliminary feedback on the scope of this spec, so some of"},{"line_number":91,"context_line":"the following topics may be uncovered."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Alternatives"},{"line_number":94,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_d50ebbe4","line":91,"updated":"2015-06-05 03:17:41.000000000","message":"This sounds like something worth putting in as a backlog spec initially.\n\nI have a hunch it would be hard to implement this spec with all the scheduler refactoring going on. Adding it as backlog  spec is a good way to show we are interested in solving this issue.\n\nhttp://specs.openstack.org/openstack/nova-specs/specs/backlog/index.html","commit_id":"d7aa4db01557d30696c188882b4a9bc973fa24e8"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"e80017ec2caa17d7cc14a7612577f7011072efd1","unresolved":false,"context_lines":[{"line_number":88,"context_line":"will be eventually scheduled into the freed resources."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"I am posting to get preliminary feedback on the scope of this spec, so some of"},{"line_number":91,"context_line":"the following topics may be uncovered."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Alternatives"},{"line_number":94,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3afb71cf_7c6c8f9c","line":91,"in_reply_to":"3afb71cf_d50ebbe4","updated":"2015-06-08 17:11:02.000000000","message":"Hi Joe.\n\nYes, you\u0027re right, I am moving this to a backlog (I wasn\u0027t aware of their existence).","commit_id":"d7aa4db01557d30696c188882b4a9bc973fa24e8"}]}
