)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16157,"name":"Ken Johnston","email":"kenny@kencjohnston.com","username":"kencjohnston"},"change_message_id":"d106d3ca89f1641b15d8de353d81732de27a8aee","unresolved":false,"context_lines":[{"line_number":7,"context_line":"WIP: Backlog spec on preemptible instances"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Sometimes called spot instances, these are a way for users to use"},{"line_number":10,"context_line":"\"spare\" capacity in your could, beyond what they are normally allowed to"},{"line_number":11,"context_line":"use. This can help increase the utilization of your cloud, while"},{"line_number":12,"context_line":"allowing for some level of fair share of resources using quota."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1a1ced50_3fe6c9b4","line":10,"range":{"start_line":10,"start_character":25,"end_line":10,"end_character":30},"updated":"2017-03-17 19:58:01.000000000","message":"cloud","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"}],"specs/backlog/approved/preemptible-instances.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8b8c57300c1086a769317347d659389783d141ff","unresolved":false,"context_lines":[{"line_number":59,"context_line":"  be issued so not to delay the resources that are needed for other users."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* preemptible resources consume regular quota if available, otherwise they"},{"line_number":62,"context_line":"  consume a separate preemptible quota (which defaults to the same amount as"},{"line_number":63,"context_line":"  their regular quota). Should more regular instances be created, it may mean"},{"line_number":64,"context_line":"  the preemptible then starts using preemptible quota."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"The scheduling rules could be very complicated for preemptible servers. In this"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da36d5c6_eb6bc0ef","line":63,"range":{"start_line":62,"start_character":39,"end_line":63,"end_character":22},"updated":"2017-02-27 17:47:25.000000000","message":"Need more discussion on the quota checks being per resource type in placement, and as such, related to the placement allocations being different.","commit_id":"e849352a1c34615675bec6b14f7990dbc6f4f487"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8b8c57300c1086a769317347d659389783d141ff","unresolved":false,"context_lines":[{"line_number":194,"context_line":"would require a separate API to expose the concept, and you end up wrapping"},{"line_number":195,"context_line":"most of the Nova API in a way that is likely to lead to lots of strange proxy"},{"line_number":196,"context_line":"API problems, and a divergence of the Nova API."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"Data model impact"},{"line_number":199,"context_line":"-----------------"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da36d5c6_0b3f34d7","line":197,"updated":"2017-02-27 17:47:25.000000000","message":"We could have different resource class for preemtable resources, and get computes to report those, if enabled, etc.","commit_id":"e849352a1c34615675bec6b14f7990dbc6f4f487"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"7bd4a6d9e4d29a8246545ee67f1d145b4600b47a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ba2be162_79221303","updated":"2017-03-01 18:24:30.000000000","message":"How about the time to auto-delete is configurable? It would be a pity to do this too often for a user community who understands the concept since it can lead to a loss of efficiency.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"de4a73b6c93a3fa7e773d8a0a3da3e8724c6f05d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ba2be162_f7a2ca4a","in_reply_to":"ba2be162_79221303","updated":"2017-03-06 18:09:56.000000000","message":"Maybe.\n\nMostly I worry about API interop. Would need to make that discoverable if you can configure it. Makes it harder.\n\nBut I do like the idea of lots of short lived VMs living only for the length of the job. Why I like that is because when we kill VMs, we can try and let as many jobs complete before killing them, by preferring the most recently started VMs.\n\nIf you have folks squatting on VMs, that all becomes a lot harder. I guess we hit the longer lived worker with a higher level orchestration vs using a VM for each job problem.\n\nBut lets think through that more, its a good question.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"18ce359eda5a59cd19036b368e57f4c8ed45d2d7","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":" This work is licensed under a Creative Commons Attribution 3.0 Unported"},{"line_number":3,"context_line":" License."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_39f455cf","line":1,"updated":"2017-03-30 15:14:14.000000000","message":"How this feature should be used?\nFor projects that want to have access to the maximum number of preemptive VMs at all time it should be described in the spec how this can be achieved.\n\nThe only proposed api change to support \"preemptible: True\" when a new server is created implies that users need to be constantly calling the api to check the available preemptible quota and create new servers if available.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8bcff66de13fd29fad9f1cff727c6c4478bf760e","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":" This work is licensed under a Creative Commons Attribution 3.0 Unported"},{"line_number":3,"context_line":" License."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_ea4a89aa","line":1,"in_reply_to":"ffe62b97_39f455cf","updated":"2017-03-30 17:07:40.000000000","message":"Yes, thats correct, some system outside of Nova would be scheduling the \"work\" in some sense. There probably should be something to support that workflow more. For now attempting a new server create seems fine, although it would be nice if the error reporting were cleaner around that use case.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"c5d08e0bccb23576531ef5a750ed9c9786f5feaf","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 that. When the resources are full and a request can not be"},{"line_number":15,"context_line":"satisfied an error is returned to the users. In some cases, there are tasks"},{"line_number":16,"context_line":"that can be interrupted (i.e. they are fault tolerant) to leave room to other"},{"line_number":17,"context_line":"tasks, such as batch processing tasks, but not only."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_4777d5a1","line":16,"range":{"start_line":16,"start_character":58,"end_line":16,"end_character":63},"updated":"2017-03-27 14:53:37.000000000","message":"s/leave/make/ ?","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"c5d08e0bccb23576531ef5a750ed9c9786f5feaf","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"While large cloud often add capacity as demand increases, giving the"},{"line_number":23,"context_line":"appearance of infinite capacity, most smaller clouds have a fixed set of"},{"line_number":24,"context_line":"resources. Both want to get the maximum utilization our of their existing"},{"line_number":25,"context_line":"hardware investments. Preemptable servers help with that."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_07154d4a","line":22,"range":{"start_line":22,"start_character":24,"end_line":22,"end_character":56},"updated":"2017-03-27 14:53:37.000000000","message":"This is generally only true of commercial clouds. And even then one cannot usually access 100+ cores without prior arrangement and pre-approval.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"c5d08e0bccb23576531ef5a750ed9c9786f5feaf","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"While large cloud often add capacity as demand increases, giving the"},{"line_number":23,"context_line":"appearance of infinite capacity, most smaller clouds have a fixed set of"},{"line_number":24,"context_line":"resources. Both want to get the maximum utilization our of their existing"},{"line_number":25,"context_line":"hardware investments. Preemptable servers help with that."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_8764bde5","line":22,"range":{"start_line":22,"start_character":12,"end_line":22,"end_character":17},"updated":"2017-03-27 14:53:37.000000000","message":"s/cloud/clouds/","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8bcff66de13fd29fad9f1cff727c6c4478bf760e","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"While large cloud often add capacity as demand increases, giving the"},{"line_number":23,"context_line":"appearance of infinite capacity, most smaller clouds have a fixed set of"},{"line_number":24,"context_line":"resources. Both want to get the maximum utilization our of their existing"},{"line_number":25,"context_line":"hardware investments. Preemptable servers help with that."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_8a6bfdef","line":22,"range":{"start_line":22,"start_character":24,"end_line":22,"end_character":56},"in_reply_to":"ffe62b97_07154d4a","updated":"2017-03-30 17:07:40.000000000","message":"Thats fair. Its only ever the \"appearance\". I guess I was defining large to be a cloud with way more resources than I could ever imagine using for my workload. But thats kinda cheating.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"c5d08e0bccb23576531ef5a750ed9c9786f5feaf","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"While large cloud often add capacity as demand increases, giving the"},{"line_number":23,"context_line":"appearance of infinite capacity, most smaller clouds have a fixed set of"},{"line_number":24,"context_line":"resources. Both want to get the maximum utilization our of their existing"},{"line_number":25,"context_line":"hardware investments. Preemptable servers help with that."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"For smaller clouds, you can use quota to give a reserved amount of capacity"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_0271bba9","line":24,"range":{"start_line":24,"start_character":40,"end_line":24,"end_character":51},"updated":"2017-03-27 14:53:37.000000000","message":"Utilization from whose perspective? A commercial operator may take a different view of this to e.g. a research cloud operator, both of them are interested in optimising usage, but that won\u0027t always translate to more instances per host, especially where SLAs etc are in play.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"c5d08e0bccb23576531ef5a750ed9c9786f5feaf","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"While large cloud often add capacity as demand increases, giving the"},{"line_number":23,"context_line":"appearance of infinite capacity, most smaller clouds have a fixed set of"},{"line_number":24,"context_line":"resources. Both want to get the maximum utilization our of their existing"},{"line_number":25,"context_line":"hardware investments. Preemptable servers help with that."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"For smaller clouds, you can use quota to give a reserved amount of capacity"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_67e2d931","line":24,"range":{"start_line":24,"start_character":52,"end_line":24,"end_character":55},"updated":"2017-03-27 14:53:37.000000000","message":"s/our/out/","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8bcff66de13fd29fad9f1cff727c6c4478bf760e","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"While large cloud often add capacity as demand increases, giving the"},{"line_number":23,"context_line":"appearance of infinite capacity, most smaller clouds have a fixed set of"},{"line_number":24,"context_line":"resources. Both want to get the maximum utilization our of their existing"},{"line_number":25,"context_line":"hardware investments. Preemptable servers help with that."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"For smaller clouds, you can use quota to give a reserved amount of capacity"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_4a0cd541","line":24,"range":{"start_line":24,"start_character":40,"end_line":24,"end_character":51},"in_reply_to":"ffe62b97_0271bba9","updated":"2017-03-30 17:07:40.000000000","message":"yeah, I should define utilization better here.\n\nIn my head, I was thinking of a host as having a defined overcommit ratio. In an ideal world, you would be able to install or power down servers to exactly match your capacity, and all the hosts that are active would be full.\n\nThat does ignore bursting out of your assigned amount of resource I guess.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3aef9b19037ca8a053ef0f2855c0e56f1d0d6b5b","unresolved":false,"context_lines":[{"line_number":27,"context_line":"For smaller clouds, you can use quota to give a reserved amount of capacity"},{"line_number":28,"context_line":"to each department (or project). So you ensure you never hand out more quota"},{"line_number":29,"context_line":"than available capacity in the system. This ensures each department gets a"},{"line_number":30,"context_line":"fair share of resources. In additional, you probably reserve a certain amount"},{"line_number":31,"context_line":"of capacity for maintenance such as needing to reboot and live-migrate between"},{"line_number":32,"context_line":"hosts. While this is all very commendable, it leave a large chunk of resources"},{"line_number":33,"context_line":"idle. If there were a way of running a server, such that it uses the space"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff0f0b1f_17f4d9ef","line":30,"updated":"2017-05-25 13:46:23.000000000","message":"addition","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3aef9b19037ca8a053ef0f2855c0e56f1d0d6b5b","unresolved":false,"context_lines":[{"line_number":29,"context_line":"than available capacity in the system. This ensures each department gets a"},{"line_number":30,"context_line":"fair share of resources. In additional, you probably reserve a certain amount"},{"line_number":31,"context_line":"of capacity for maintenance such as needing to reboot and live-migrate between"},{"line_number":32,"context_line":"hosts. While this is all very commendable, it leave a large chunk of resources"},{"line_number":33,"context_line":"idle. If there were a way of running a server, such that it uses the space"},{"line_number":34,"context_line":"reserved for another user, or indeed the space reserved for maintenance."},{"line_number":35,"context_line":"Should the space ever be required, the server will be deleted to make space"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff0f0b1f_b7e40d3d","line":32,"updated":"2017-05-25 13:46:23.000000000","message":"leaves","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3aef9b19037ca8a053ef0f2855c0e56f1d0d6b5b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"fair share of resources. In additional, you probably reserve a certain amount"},{"line_number":31,"context_line":"of capacity for maintenance such as needing to reboot and live-migrate between"},{"line_number":32,"context_line":"hosts. While this is all very commendable, it leave a large chunk of resources"},{"line_number":33,"context_line":"idle. If there were a way of running a server, such that it uses the space"},{"line_number":34,"context_line":"reserved for another user, or indeed the space reserved for maintenance."},{"line_number":35,"context_line":"Should the space ever be required, the server will be deleted to make space"},{"line_number":36,"context_line":"for the higher priority server."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff0f0b1f_97b8e910","line":33,"updated":"2017-05-25 13:46:23.000000000","message":"It would be useful for there to be a way of running...\n\notherwise the sentence is incomplete","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3aef9b19037ca8a053ef0f2855c0e56f1d0d6b5b","unresolved":false,"context_lines":[{"line_number":32,"context_line":"hosts. While this is all very commendable, it leave a large chunk of resources"},{"line_number":33,"context_line":"idle. If there were a way of running a server, such that it uses the space"},{"line_number":34,"context_line":"reserved for another user, or indeed the space reserved for maintenance."},{"line_number":35,"context_line":"Should the space ever be required, the server will be deleted to make space"},{"line_number":36,"context_line":"for the higher priority server."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"In larger clouds its more normal to give out much more quota than the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff0f0b1f_d747811c","line":35,"updated":"2017-05-25 13:46:23.000000000","message":"to be clear here you might consider s/will be/could be automatically/","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"c5d08e0bccb23576531ef5a750ed9c9786f5feaf","unresolved":false,"context_lines":[{"line_number":40,"context_line":"pay for reserved instances. This spec does not deal with this more complicated"},{"line_number":41,"context_line":"concept, we deal only with marking instances as preemptible, assuming that all"},{"line_number":42,"context_line":"other instances are consuming some kind of \"reserved\" amount. Large public"},{"line_number":43,"context_line":"clouds are likely to instead want a three their system of reserved, standard"},{"line_number":44,"context_line":"and preemptible. This is not something we are aiming to fix in this spec, it is"},{"line_number":45,"context_line":"left as future work."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_02a65b11","line":43,"range":{"start_line":43,"start_character":42,"end_line":43,"end_character":47},"updated":"2017-03-27 14:53:37.000000000","message":"s/their/tier/","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"78864c2f7463f2158aa59e28175e59a83f40c811","unresolved":false,"context_lines":[{"line_number":50,"context_line":"The end user of a preemptible server want to:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* not get surprised when a server is deleted after several weeks of use, so"},{"line_number":53,"context_line":"  its best to ensure the server is automatically deleted after 24 hours to"},{"line_number":54,"context_line":"  stop any miss-use of these more temporary VMs"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* they want warning they are about to get killed, as such its expected that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_416946f8","line":53,"range":{"start_line":53,"start_character":32,"end_line":53,"end_character":71},"updated":"2017-03-04 15:34:27.000000000","message":"What about this being configurable (and even with the possibility of disabling it)? I like the automatic deletion, but there may be cases where this is not required.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"c5d08e0bccb23576531ef5a750ed9c9786f5feaf","unresolved":false,"context_lines":[{"line_number":50,"context_line":"The end user of a preemptible server want to:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* not get surprised when a server is deleted after several weeks of use, so"},{"line_number":53,"context_line":"  its best to ensure the server is automatically deleted after 24 hours to"},{"line_number":54,"context_line":"  stop any miss-use of these more temporary VMs"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* they want warning they are about to get killed, as such its expected that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_c2c6339b","line":53,"range":{"start_line":53,"start_character":32,"end_line":53,"end_character":71},"in_reply_to":"ba2be162_2240a235","updated":"2017-03-27 14:53:37.000000000","message":"A configurable way to do this would be nice but seems like a non-core feature to me.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"de4a73b6c93a3fa7e773d8a0a3da3e8724c6f05d","unresolved":false,"context_lines":[{"line_number":50,"context_line":"The end user of a preemptible server want to:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* not get surprised when a server is deleted after several weeks of use, so"},{"line_number":53,"context_line":"  its best to ensure the server is automatically deleted after 24 hours to"},{"line_number":54,"context_line":"  stop any miss-use of these more temporary VMs"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* they want warning they are about to get killed, as such its expected that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_2240a235","line":53,"range":{"start_line":53,"start_character":32,"end_line":53,"end_character":71},"in_reply_to":"ba2be162_416946f8","updated":"2017-03-06 18:09:56.000000000","message":"yeah, same comments I said to tim above. Need to do it in a way that the API is discoverable.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"18ce359eda5a59cd19036b368e57f4c8ed45d2d7","unresolved":false,"context_lines":[{"line_number":50,"context_line":"The end user of a preemptible server want to:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* not get surprised when a server is deleted after several weeks of use, so"},{"line_number":53,"context_line":"  its best to ensure the server is automatically deleted after 24 hours to"},{"line_number":54,"context_line":"  stop any miss-use of these more temporary VMs"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* they want warning they are about to get killed, as such its expected that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_d32668bb","line":53,"range":{"start_line":53,"start_character":32,"end_line":53,"end_character":71},"in_reply_to":"ffe62b97_c2c6339b","updated":"2017-03-30 15:14:14.000000000","message":"+1 for configurable automatic deletion","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8bcff66de13fd29fad9f1cff727c6c4478bf760e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"The end user of a preemptible server want to:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* not get surprised when a server is deleted after several weeks of use, so"},{"line_number":53,"context_line":"  its best to ensure the server is automatically deleted after 24 hours to"},{"line_number":54,"context_line":"  stop any miss-use of these more temporary VMs"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* they want warning they are about to get killed, as such its expected that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_a5795294","line":53,"range":{"start_line":53,"start_character":32,"end_line":53,"end_character":71},"in_reply_to":"ffe62b97_d32668bb","updated":"2017-03-30 17:07:40.000000000","message":"I do prefer forcing folks to deal with the transient nature, and get a natural churn of pre-emptable instances. But I get the point about it being wasteful.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"18ce359eda5a59cd19036b368e57f4c8ed45d2d7","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  stop any miss-use of these more temporary VMs"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"* they want warning they are about to get killed, as such its expected that"},{"line_number":57,"context_line":"  a soft delete signal will be sent to signal the VM its above to be deleted."},{"line_number":58,"context_line":"  If the soft delete doesn\u0027t respond after 30 seconds, a hard delete should"},{"line_number":59,"context_line":"  be issued so not to delay the resources that are needed for other users."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_b30884d9","line":57,"updated":"2017-03-30 15:14:14.000000000","message":"This means that in a cloud that\u0027s full a new VM will take at least 30s to be created. The option to only do \"hard delete\" can be useful.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"78864c2f7463f2158aa59e28175e59a83f40c811","unresolved":false,"context_lines":[{"line_number":56,"context_line":"* they want warning they are about to get killed, as such its expected that"},{"line_number":57,"context_line":"  a soft delete signal will be sent to signal the VM its above to be deleted."},{"line_number":58,"context_line":"  If the soft delete doesn\u0027t respond after 30 seconds, a hard delete should"},{"line_number":59,"context_line":"  be issued so not to delay the resources that are needed for other users."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* preemptible resources consume regular quota if available, otherwise they"},{"line_number":62,"context_line":"  consume a separate preemptible quota (which defaults to the same amount as"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_616c8a08","line":59,"updated":"2017-03-04 15:34:27.000000000","message":"+1","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"c5d08e0bccb23576531ef5a750ed9c9786f5feaf","unresolved":false,"context_lines":[{"line_number":56,"context_line":"* they want warning they are about to get killed, as such its expected that"},{"line_number":57,"context_line":"  a soft delete signal will be sent to signal the VM its above to be deleted."},{"line_number":58,"context_line":"  If the soft delete doesn\u0027t respond after 30 seconds, a hard delete should"},{"line_number":59,"context_line":"  be issued so not to delay the resources that are needed for other users."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* preemptible resources consume regular quota if available, otherwise they"},{"line_number":62,"context_line":"  consume a separate preemptible quota (which defaults to the same amount as"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_67ef79b0","line":59,"in_reply_to":"ba2be162_616c8a08","updated":"2017-03-27 14:53:37.000000000","message":"How does the soft delete \"respond\"? I guess this just means if the machine is not already shutoff after 30s it will be unceremoniously destroyed?\n\n30s may be insufficient for e.g. checkpointing a large computation. Better that this is configurable for any particular cloud.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"7bd4a6d9e4d29a8246545ee67f1d145b4600b47a","unresolved":false,"context_lines":[{"line_number":57,"context_line":"  a soft delete signal will be sent to signal the VM its above to be deleted."},{"line_number":58,"context_line":"  If the soft delete doesn\u0027t respond after 30 seconds, a hard delete should"},{"line_number":59,"context_line":"  be issued so not to delay the resources that are needed for other users."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* preemptible resources consume regular quota if available, otherwise they"},{"line_number":62,"context_line":"  consume a separate preemptible quota (which defaults to the same amount as"},{"line_number":63,"context_line":"  their regular quota). Should more regular instances be created, it may mean"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_196e7701","line":60,"updated":"2017-03-01 18:24:30.000000000","message":"* admins would like an entry in the action log for the instance reporting that it had been pre-empted. This would assist problem determination to show when the delete occurred.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"78864c2f7463f2158aa59e28175e59a83f40c811","unresolved":false,"context_lines":[{"line_number":57,"context_line":"  a soft delete signal will be sent to signal the VM its above to be deleted."},{"line_number":58,"context_line":"  If the soft delete doesn\u0027t respond after 30 seconds, a hard delete should"},{"line_number":59,"context_line":"  be issued so not to delay the resources that are needed for other users."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* preemptible resources consume regular quota if available, otherwise they"},{"line_number":62,"context_line":"  consume a separate preemptible quota (which defaults to the same amount as"},{"line_number":63,"context_line":"  their regular quota). Should more regular instances be created, it may mean"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_816fbefa","line":60,"in_reply_to":"ba2be162_196e7701","updated":"2017-03-04 15:34:27.000000000","message":"+1","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"de4a73b6c93a3fa7e773d8a0a3da3e8724c6f05d","unresolved":false,"context_lines":[{"line_number":57,"context_line":"  a soft delete signal will be sent to signal the VM its above to be deleted."},{"line_number":58,"context_line":"  If the soft delete doesn\u0027t respond after 30 seconds, a hard delete should"},{"line_number":59,"context_line":"  be issued so not to delay the resources that are needed for other users."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* preemptible resources consume regular quota if available, otherwise they"},{"line_number":62,"context_line":"  consume a separate preemptible quota (which defaults to the same amount as"},{"line_number":63,"context_line":"  their regular quota). Should more regular instances be created, it may mean"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_9716ee56","line":60,"in_reply_to":"ba2be162_816fbefa","updated":"2017-03-06 18:09:56.000000000","message":"Yeah, it totally needs that, good call out.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"18ce359eda5a59cd19036b368e57f4c8ed45d2d7","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  If the soft delete doesn\u0027t respond after 30 seconds, a hard delete should"},{"line_number":59,"context_line":"  be issued so not to delay the resources that are needed for other users."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* preemptible resources consume regular quota if available, otherwise they"},{"line_number":62,"context_line":"  consume a separate preemptible quota (which defaults to the same amount as"},{"line_number":63,"context_line":"  their regular quota). Should more regular instances be created, it may mean"},{"line_number":64,"context_line":"  the preemptible then starts using preemptible quota."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_b31d2475","line":61,"updated":"2017-03-30 15:14:14.000000000","message":"Preemptible VMs only in preemtible quota will allow operators to define which projects can use this feature. Otherwise, it\u0027s available to all projects if they have regular quota available. It would be good to exclude this scenario.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8bcff66de13fd29fad9f1cff727c6c4478bf760e","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  If the soft delete doesn\u0027t respond after 30 seconds, a hard delete should"},{"line_number":59,"context_line":"  be issued so not to delay the resources that are needed for other users."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* preemptible resources consume regular quota if available, otherwise they"},{"line_number":62,"context_line":"  consume a separate preemptible quota (which defaults to the same amount as"},{"line_number":63,"context_line":"  their regular quota). Should more regular instances be created, it may mean"},{"line_number":64,"context_line":"  the preemptible then starts using preemptible quota."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_eab3a94c","line":61,"in_reply_to":"ffe62b97_b31d2475","updated":"2017-03-30 17:07:40.000000000","message":"I guess, that bit is probably overkill.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"c5d08e0bccb23576531ef5a750ed9c9786f5feaf","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  If the soft delete doesn\u0027t respond after 30 seconds, a hard delete should"},{"line_number":59,"context_line":"  be issued so not to delay the resources that are needed for other users."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* preemptible resources consume regular quota if available, otherwise they"},{"line_number":62,"context_line":"  consume a separate preemptible quota (which defaults to the same amount as"},{"line_number":63,"context_line":"  their regular quota). Should more regular instances be created, it may mean"},{"line_number":64,"context_line":"  the preemptible then starts using preemptible quota."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"The scheduling rules could be very complicated for preemptible servers. In this"},{"line_number":67,"context_line":"version we need should limit ourselves to the following constraints:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_4796b5f2","line":64,"range":{"start_line":61,"start_character":2,"end_line":64,"end_character":53},"updated":"2017-03-27 14:53:37.000000000","message":"This seems like a secondary concern that is not critical to the core functionality and describes a general feature that is probably not specific to preemptible instances. Suggest removing this from the first cut of the spec.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"e2c7451b1e7a42a96b43568f51e0704536588219","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  If the soft delete doesn\u0027t respond after 30 seconds, a hard delete should"},{"line_number":59,"context_line":"  be issued so not to delay the resources that are needed for other users."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* preemptible resources consume regular quota if available, otherwise they"},{"line_number":62,"context_line":"  consume a separate preemptible quota (which defaults to the same amount as"},{"line_number":63,"context_line":"  their regular quota). Should more regular instances be created, it may mean"},{"line_number":64,"context_line":"  the preemptible then starts using preemptible quota."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"The scheduling rules could be very complicated for preemptible servers. In this"},{"line_number":67,"context_line":"version we need should limit ourselves to the following constraints:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5ff73747_46874311","line":64,"range":{"start_line":61,"start_character":2,"end_line":64,"end_character":53},"in_reply_to":"5ff73747_25b0b7dc","updated":"2017-05-02 14:56:50.000000000","message":"@Alvaro, yes that\u0027s right.\n\nI\u0027m not sure there is a one-size solution for the quota management aspect here, some deployments would prefer the behaviour as stated, some would prefer a completely separate and unrelated quota for preemptible.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"7ce160b989b506798cc75a7886576b7507f48d5b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  If the soft delete doesn\u0027t respond after 30 seconds, a hard delete should"},{"line_number":59,"context_line":"  be issued so not to delay the resources that are needed for other users."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* preemptible resources consume regular quota if available, otherwise they"},{"line_number":62,"context_line":"  consume a separate preemptible quota (which defaults to the same amount as"},{"line_number":63,"context_line":"  their regular quota). Should more regular instances be created, it may mean"},{"line_number":64,"context_line":"  the preemptible then starts using preemptible quota."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"The scheduling rules could be very complicated for preemptible servers. In this"},{"line_number":67,"context_line":"version we need should limit ourselves to the following constraints:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5ff73747_25b0b7dc","line":64,"range":{"start_line":61,"start_character":2,"end_line":64,"end_character":53},"in_reply_to":"ffe62b97_2a93d1a5","updated":"2017-05-02 10:30:48.000000000","message":"Hmm, I see this as something counter-intuitive for users. If preemptible consume the regular quota, a user may see the resources exhausted due to the preemptible consumption, right?","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8bcff66de13fd29fad9f1cff727c6c4478bf760e","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  If the soft delete doesn\u0027t respond after 30 seconds, a hard delete should"},{"line_number":59,"context_line":"  be issued so not to delay the resources that are needed for other users."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* preemptible resources consume regular quota if available, otherwise they"},{"line_number":62,"context_line":"  consume a separate preemptible quota (which defaults to the same amount as"},{"line_number":63,"context_line":"  their regular quota). Should more regular instances be created, it may mean"},{"line_number":64,"context_line":"  the preemptible then starts using preemptible quota."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"The scheduling rules could be very complicated for preemptible servers. In this"},{"line_number":67,"context_line":"version we need should limit ourselves to the following constraints:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_2a93d1a5","line":64,"range":{"start_line":61,"start_character":2,"end_line":64,"end_character":53},"in_reply_to":"ffe62b97_4796b5f2","updated":"2017-03-30 17:07:40.000000000","message":"Thing is without separate quota, I don\u0027t think they are that useful.\n\nThe re-using other quota we can drop, thats over-complicated.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"c5d08e0bccb23576531ef5a750ed9c9786f5feaf","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  the preemptible then starts using preemptible quota."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"The scheduling rules could be very complicated for preemptible servers. In this"},{"line_number":67,"context_line":"version we need should limit ourselves to the following constraints:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* preemptible allocations are ignored when deciding where it is possible to"},{"line_number":70,"context_line":"  place a regular allocation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_c42be02d","line":67,"range":{"start_line":67,"start_character":23,"end_line":67,"end_character":67},"updated":"2017-03-27 14:53:37.000000000","message":"Most of this seems to assume the case of scheduling a regular on-demand instance in the presence of preemptible instances, but we need to also consider more closely the reverse. I would also suggest we break the scheduling discussion up into filtering and weighing. Filtering may be appropriate to ensure e.g. new preemptible instances do not preempt existing preemptible instances that have not even been running long enough to finish booting. Weighing of a bid value associated with the request could be sufficient to implement a spot market.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8bcff66de13fd29fad9f1cff727c6c4478bf760e","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  the preemptible then starts using preemptible quota."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"The scheduling rules could be very complicated for preemptible servers. In this"},{"line_number":67,"context_line":"version we need should limit ourselves to the following constraints:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* preemptible allocations are ignored when deciding where it is possible to"},{"line_number":70,"context_line":"  place a regular allocation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_6a5d59e8","line":67,"range":{"start_line":67,"start_character":23,"end_line":67,"end_character":67},"in_reply_to":"ffe62b97_9f2b4181","updated":"2017-03-30 17:07:40.000000000","message":"I guess I should be clearer there that only non-premptable can pre-empt an instance. The various grades and market forces, I am totally calling out of scope here.\n\nI should also be clearer, I am talking about out the box the default behaviour, its using the usual systems here.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"a6c9c1a327e0c2074be59c97ba50d7f40dab709a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  the preemptible then starts using preemptible quota."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"The scheduling rules could be very complicated for preemptible servers. In this"},{"line_number":67,"context_line":"version we need should limit ourselves to the following constraints:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* preemptible allocations are ignored when deciding where it is possible to"},{"line_number":70,"context_line":"  place a regular allocation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_9f2b4181","line":67,"range":{"start_line":67,"start_character":23,"end_line":67,"end_character":67},"in_reply_to":"ffe62b97_c42be02d","updated":"2017-03-30 15:36:49.000000000","message":"In principle, what it is being proposed here, does not take into cosideration preemptible vs. preemptible, just preemptible vs non-preemptible,","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"c5d08e0bccb23576531ef5a750ed9c9786f5feaf","unresolved":false,"context_lines":[{"line_number":66,"context_line":"The scheduling rules could be very complicated for preemptible servers. In this"},{"line_number":67,"context_line":"version we need should limit ourselves to the following constraints:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* preemptible allocations are ignored when deciding where it is possible to"},{"line_number":70,"context_line":"  place a regular allocation"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* should both a preemptible allocation slot get the same ranking as an empty"},{"line_number":73,"context_line":"  slot, the empty slot should be preferred"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_82502b5f","line":70,"range":{"start_line":69,"start_character":2,"end_line":70,"end_character":28},"updated":"2017-03-27 14:53:37.000000000","message":"I\u0027d have thought most operators would prefer to have preemptible instances \"backfill\" all available capacity in their cloud/s and only start preempting them when there is no available capacity for any new instance.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8bcff66de13fd29fad9f1cff727c6c4478bf760e","unresolved":false,"context_lines":[{"line_number":66,"context_line":"The scheduling rules could be very complicated for preemptible servers. In this"},{"line_number":67,"context_line":"version we need should limit ourselves to the following constraints:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"* preemptible allocations are ignored when deciding where it is possible to"},{"line_number":70,"context_line":"  place a regular allocation"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* should both a preemptible allocation slot get the same ranking as an empty"},{"line_number":73,"context_line":"  slot, the empty slot should be preferred"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_f7827152","line":70,"range":{"start_line":69,"start_character":2,"end_line":70,"end_character":28},"in_reply_to":"ffe62b97_82502b5f","updated":"2017-03-30 17:07:40.000000000","message":"Doh, yeah, thats totally true. Over simplified here.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"c5d08e0bccb23576531ef5a750ed9c9786f5feaf","unresolved":false,"context_lines":[{"line_number":72,"context_line":"* should both a preemptible allocation slot get the same ranking as an empty"},{"line_number":73,"context_line":"  slot, the empty slot should be preferred"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* should two preemptible allocation slots get the same ranking, we should"},{"line_number":76,"context_line":"  prefer firstly preemptible allocations belonging the project that is"},{"line_number":77,"context_line":"  creating the request, and then the most recently created preemptible"},{"line_number":78,"context_line":"  allocation"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_c20e333a","line":76,"range":{"start_line":75,"start_character":2,"end_line":76,"end_character":62},"updated":"2017-03-27 14:53:37.000000000","message":"If in this case we are scheduling a preemptible instance then we\u0027d preempt an instance belonging to project A to create a new preemptible instance for project A? Seems redundant, and probably not what the project really wanted.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"78864c2f7463f2158aa59e28175e59a83f40c811","unresolved":false,"context_lines":[{"line_number":73,"context_line":"  slot, the empty slot should be preferred"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* should two preemptible allocation slots get the same ranking, we should"},{"line_number":76,"context_line":"  prefer firstly preemptible allocations belonging the project that is"},{"line_number":77,"context_line":"  creating the request, and then the most recently created preemptible"},{"line_number":78,"context_line":"  allocation"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_e1807a8d","line":76,"updated":"2017-03-04 15:34:27.000000000","message":"Up to here I do agree","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8bcff66de13fd29fad9f1cff727c6c4478bf760e","unresolved":false,"context_lines":[{"line_number":72,"context_line":"* should both a preemptible allocation slot get the same ranking as an empty"},{"line_number":73,"context_line":"  slot, the empty slot should be preferred"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* should two preemptible allocation slots get the same ranking, we should"},{"line_number":76,"context_line":"  prefer firstly preemptible allocations belonging the project that is"},{"line_number":77,"context_line":"  creating the request, and then the most recently created preemptible"},{"line_number":78,"context_line":"  allocation"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_57d8fd7d","line":76,"range":{"start_line":75,"start_character":2,"end_line":76,"end_character":62},"in_reply_to":"ffe62b97_b60872d9","updated":"2017-03-30 17:07:40.000000000","message":"Yeah, this is for a non-preemptible. I should make that clearer.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"18ce359eda5a59cd19036b368e57f4c8ed45d2d7","unresolved":false,"context_lines":[{"line_number":72,"context_line":"* should both a preemptible allocation slot get the same ranking as an empty"},{"line_number":73,"context_line":"  slot, the empty slot should be preferred"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* should two preemptible allocation slots get the same ranking, we should"},{"line_number":76,"context_line":"  prefer firstly preemptible allocations belonging the project that is"},{"line_number":77,"context_line":"  creating the request, and then the most recently created preemptible"},{"line_number":78,"context_line":"  allocation"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_b60872d9","line":76,"range":{"start_line":75,"start_character":2,"end_line":76,"end_character":62},"in_reply_to":"ffe62b97_c20e333a","updated":"2017-03-30 15:14:14.000000000","message":"But, this scenario is to create a new VM (not preemptible)","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"78864c2f7463f2158aa59e28175e59a83f40c811","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* should two preemptible allocation slots get the same ranking, we should"},{"line_number":76,"context_line":"  prefer firstly preemptible allocations belonging the project that is"},{"line_number":77,"context_line":"  creating the request, and then the most recently created preemptible"},{"line_number":78,"context_line":"  allocation"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Use Cases"},{"line_number":81,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_e1579a23","line":78,"range":{"start_line":77,"start_character":28,"end_line":78,"end_character":12},"updated":"2017-03-04 15:34:27.000000000","message":"but here I disagree. I think this should be configurable via weighers.\n\nIf billing is done in periods of 1h and we have two slots:\n\n - the most recently created slot has consumed 59min.\n - the other slot has consumed 2h 01min\n\nthen the scheduler will terminate the former, but it is more convenient (from the billing point of view) to preempt the 2nd.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"a6c9c1a327e0c2074be59c97ba50d7f40dab709a","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* should two preemptible allocation slots get the same ranking, we should"},{"line_number":76,"context_line":"  prefer firstly preemptible allocations belonging the project that is"},{"line_number":77,"context_line":"  creating the request, and then the most recently created preemptible"},{"line_number":78,"context_line":"  allocation"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Use Cases"},{"line_number":81,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_e402c00b","line":78,"range":{"start_line":77,"start_character":28,"end_line":78,"end_character":12},"in_reply_to":"1a1ced50_1fe1e4fe","updated":"2017-03-30 15:36:49.000000000","message":"Hmm, let\u0027s try to explain it better.\n\nFirstly, if a consumer terminates an instance, whatever kind it is (preemptible or normal), the consumer should be charged for the actual VM usage. So, if Alice terminates a preemptible instance after 01:23 running, she is charged back with 1h and 24m of preemptible usage.\n\nHowever, if the system terminates Alice\u0027s preemptible VM, depending on the policy and SLA, the provider may decide to charge Alice only a fraction of her VM\u0027s usage. For example, a provider may decide to charge users in periods of 1h, and in this case:\n\n - If the system terminates Alice\u0027s VM at 00:59, she is not charged.\n - If the system terminates Alice\u0027s VM at 01:01, she is charged 1h.\n - If the system terminates Alice\u0027s VM at 01:59, she is charged 1h.\n\nSo, in this case, using a LIFO selection may be suboptimal from the provider perspective. Consider 2VMs (foo and bar) in this scenario:\n\n - foo: 61m running\n - bar: 59m running\n\nIf we terminate the most recently created (LIFO), \"bar\" will be terminated, and the user won\u0027t be charged (so the provider loses money). If we had terminated \"foo\", the user would have been charged for 60m (and the provider earns 60m of usage).","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d7728f61cfbdda0ab12f0a35ec4bdd7077ffac45","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* should two preemptible allocation slots get the same ranking, we should"},{"line_number":76,"context_line":"  prefer firstly preemptible allocations belonging the project that is"},{"line_number":77,"context_line":"  creating the request, and then the most recently created preemptible"},{"line_number":78,"context_line":"  allocation"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Use Cases"},{"line_number":81,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a1ced50_1fe1e4fe","line":78,"range":{"start_line":77,"start_character":28,"end_line":78,"end_character":12},"in_reply_to":"3a1ff146_5b08d22d","updated":"2017-03-20 12:42:23.000000000","message":"Anyways, you can always customise scheduling, just seems like one of those things you would tweak for your use case.\n\nI just don\u0027t really understand your use case yet, and I would love to understand it, to make sure its not the best one here, but I need to understand it first.\n\nI guess you mean when the system terminates you don\u0027t want to charge the minimum, but you do want to charge that if the user terminated it. And on top of that, you want to make sure you never have \"free\" pre-emptive instances, so instead of just charging a minimum, you try make sure they run for the minimum time instead. It all sounds a bit strange to me.\n\nEither charge the minimum or don\u0027t seems the best way forward to me. I must be missing something.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"66a88353d5d9606f9f60aedb93abf73cbcbfcfad","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* should two preemptible allocation slots get the same ranking, we should"},{"line_number":76,"context_line":"  prefer firstly preemptible allocations belonging the project that is"},{"line_number":77,"context_line":"  creating the request, and then the most recently created preemptible"},{"line_number":78,"context_line":"  allocation"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Use Cases"},{"line_number":81,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a1ff146_5b08d22d","line":78,"range":{"start_line":77,"start_character":28,"end_line":78,"end_character":12},"in_reply_to":"ba2be162_0248fe86","updated":"2017-03-16 10:16:21.000000000","message":"Indeed, I totally agree with your last sentence. There is a difference between a user terminating an instance (i.e. they should be charged for whatever they have consumed) and the system terminating the instance (i.e. they should be charged for whatever their SLA says, for instance 1h periods). So we need to differentiate whether the instance was user-terminated or system-terminated.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"de4a73b6c93a3fa7e773d8a0a3da3e8724c6f05d","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* should two preemptible allocation slots get the same ranking, we should"},{"line_number":76,"context_line":"  prefer firstly preemptible allocations belonging the project that is"},{"line_number":77,"context_line":"  creating the request, and then the most recently created preemptible"},{"line_number":78,"context_line":"  allocation"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Use Cases"},{"line_number":81,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_0248fe86","line":78,"range":{"start_line":77,"start_character":28,"end_line":78,"end_character":12},"in_reply_to":"ba2be162_e1579a23","updated":"2017-03-06 18:09:56.000000000","message":"The idea here is the user with the most processing done, gets chance to finish what they are doing. This assumes the VM lives for the length of the job you want to execute. I should add more context on that here.\n\nIn general, I am not suggesting that we hard code these filters, this is just what I think is a good default to go with.\n\nPS I would have expected some kind of minimum charge for usage under one hour, else folks can really break your billing by creating lots of very short lived VMs.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8bcff66de13fd29fad9f1cff727c6c4478bf760e","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* should two preemptible allocation slots get the same ranking, we should"},{"line_number":76,"context_line":"  prefer firstly preemptible allocations belonging the project that is"},{"line_number":77,"context_line":"  creating the request, and then the most recently created preemptible"},{"line_number":78,"context_line":"  allocation"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Use Cases"},{"line_number":81,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfeb2761_6188f670","line":78,"range":{"start_line":77,"start_character":28,"end_line":78,"end_character":12},"in_reply_to":"ffe62b97_e402c00b","updated":"2017-03-30 17:07:40.000000000","message":"So we were talking across each other, its still filters and weight that folks can tweak.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3aef9b19037ca8a053ef0f2855c0e56f1d0d6b5b","unresolved":false,"context_lines":[{"line_number":88,"context_line":"********************"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"In HPC like environments, there is often infinite work and finite capacity,"},{"line_number":91,"context_line":"while leads to people being able to make good use of these sorts of resources."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"While wanting to maximize the utilization of their infrastructure, it is quite"},{"line_number":94,"context_line":"common that they need to satisfy two kind of requests: batch processing"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff0f0b1f_17e859b0","line":91,"updated":"2017-05-25 13:46:23.000000000","message":"which?\n\nbut even then the sentence is a bit strange","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3aef9b19037ca8a053ef0f2855c0e56f1d0d6b5b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"users: users from group-A requiring interactive tasks that need to be spawned"},{"line_number":99,"context_line":"in a short period of time (used for analysis and visualization) and group-B"},{"line_number":100,"context_line":"that require large amounts of computing power for data analysis (that is,"},{"line_number":101,"context_line":"traditional HTC, normally executed on a batch system)."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"This use case will require that the operators set a static partitioning of the"},{"line_number":104,"context_line":"resources for both user groups, since group-B\u0027s requests may fill up the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff0f0b1f_f74045a7","line":101,"updated":"2017-05-25 13:46:23.000000000","message":"Not sure if you want HPC here or not","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3aef9b19037ca8a053ef0f2855c0e56f1d0d6b5b","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"This use case will require that the operators set a static partitioning of the"},{"line_number":104,"context_line":"resources for both user groups, since group-B\u0027s requests may fill up the"},{"line_number":105,"context_line":"complete infrastructure for long periods of time, making impossible to satisfy"},{"line_number":106,"context_line":"requests coming from group-A."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"With the preemptible instances in place, request from group-B would run as"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff0f0b1f_b7464dbf","line":105,"updated":"2017-05-25 13:46:23.000000000","message":"making it","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3aef9b19037ca8a053ef0f2855c0e56f1d0d6b5b","unresolved":false,"context_lines":[{"line_number":117,"context_line":"little bit high. With preemptible instances, infrastructure donors will be able"},{"line_number":118,"context_line":"do provide resources just with the already available hosts when they are not"},{"line_number":119,"context_line":"used by customers. OpenStack Infrastructure team could use many providers and"},{"line_number":120,"context_line":"deal with a large volatile capacity"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Clearly this is also useful for internal QA teams that want to run large test"},{"line_number":123,"context_line":"runs overnight on hardware that is not currently being used by the department"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff0f0b1f_571931d4","line":120,"updated":"2017-05-25 13:46:23.000000000","message":"this would be great","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"78864c2f7463f2158aa59e28175e59a83f40c811","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"Not a batch system"},{"line_number":127,"context_line":"*******************"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Note that we are not here creating a system that executes the batch work on"},{"line_number":130,"context_line":"preemptible servers, rather we are creating preemptible servers that can be"},{"line_number":131,"context_line":"used by a batch system."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_813dfede","line":128,"updated":"2017-03-04 15:34:27.000000000","message":"+1000\n\nI cannot agree more with this section.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3aef9b19037ca8a053ef0f2855c0e56f1d0d6b5b","unresolved":false,"context_lines":[{"line_number":144,"context_line":"We should start by adding the simplest cases. But for completeness, we are"},{"line_number":145,"context_line":"excluding doing things like this, for this first version:"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"* Running preemptible reGet users to shutdown their interactive VMs at the end of the day, have"},{"line_number":148,"context_line":"  automation to help with that. Could boot preemptible VMs (that are boot"},{"line_number":149,"context_line":"  from volume) to use the space not used by the other running VMs. Calling"},{"line_number":150,"context_line":"  start on an instance would cause the preemptible VMs to be deleted in the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff0f0b1f_1784d9d1","line":147,"updated":"2017-05-25 13:46:23.000000000","message":"something went wrong here","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3aef9b19037ca8a053ef0f2855c0e56f1d0d6b5b","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  usual way, before starting the instance back up."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"* In some environments, workstations could reboot into a nova-compute worker"},{"line_number":154,"context_line":"  when it is know for workstations to be used, e.g. in classrooms. The worker"},{"line_number":155,"context_line":"  could advertise that it can only run preemptible workloads. Once the user"},{"line_number":156,"context_line":"  requests the workstation, it the force host down is called, and all the"},{"line_number":157,"context_line":"  preemptible VMs on the box will be deleted in the usual way."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff0f0b1f_9748e9b2","line":154,"updated":"2017-05-25 13:46:23.000000000","message":"This is a cool idea, but you\u0027ve left out some words in the first sentence.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"7bd4a6d9e4d29a8246545ee67f1d145b4600b47a","unresolved":false,"context_lines":[{"line_number":155,"context_line":"  could advertise that it can only run preemptible workloads. Once the user"},{"line_number":156,"context_line":"  requests the workstation, it the force host down is called, and all the"},{"line_number":157,"context_line":"  preemptible VMs on the box will be deleted in the usual way."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Proposed change"},{"line_number":160,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_b92bab93","line":158,"updated":"2017-03-01 18:24:30.000000000","message":"* A priority setting for each pre-emptable VM would define which instance should be preferentially pre-empted. This would allow a true spot market to be implemented (in an external component)","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"de4a73b6c93a3fa7e773d8a0a3da3e8724c6f05d","unresolved":false,"context_lines":[{"line_number":155,"context_line":"  could advertise that it can only run preemptible workloads. Once the user"},{"line_number":156,"context_line":"  requests the workstation, it the force host down is called, and all the"},{"line_number":157,"context_line":"  preemptible VMs on the box will be deleted in the usual way."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Proposed change"},{"line_number":160,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba2be162_828cee80","line":158,"in_reply_to":"ba2be162_b92bab93","updated":"2017-03-06 18:09:56.000000000","message":"I think that could be done in informally in tags, but I should totally add that.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3aef9b19037ca8a053ef0f2855c0e56f1d0d6b5b","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    allocations, only consider them when querying for preemptable allocations"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"  * When returning an inventory with a related preemptable allocation,"},{"line_number":172,"context_line":"    return a list of them (including project_id and created_at)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Scheduler weighers that read the preemptible allocations returned from"},{"line_number":175,"context_line":"  placement, as noted above."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff0f0b1f_32db6b4f","line":172,"updated":"2017-05-25 13:46:23.000000000","message":"This is tricky. So I\u0027m going to riff randomly to see if it produces any ideas.\n\nWe\u0027ve intentionally made allocations very simple thus far: consumer_uuid -\u003e resource_class: value. We\u0027ve got work in progress to add user and project ids. Having different types of allocations sounds icky to me. What might work better is being able to retrieve allocations by a list of consumer_uuids and something elsewhere generates that list of consumer_uuids (which are all preemptable instances).\n\nIt might be possible to translate what you want into a resource provider trait. For example we\u0027ve created one called MISC_SHARES_VIA_AGGREGATES which is used to effectively \"tag\" a resource provider as having inventory that is used by other resource providers (shared disk usable by a compute node).\n\nA trait of \"MISC_PREEMPTABLE\" on a compute node could indicate that workloads on this compute node can be pre-empted, but that\u0027s got the wrong dimensionality for the uses imagined in this spec. We want instead to be able to say \"this specific workload\" can be pre-empted.\n\nNone of this translates to how to manage scheduling.\n\nWhen there have been discussion of this before, one idea was some kind of \"other service\" that works with both nova and placement to manage (both find as well as reap) resources that fit under the \"spot\" concept. Including something simple where when a non-preemptible instance can\u0027t be placed, a notification goes out to that other service, it gets a list of existing preemptibles and kills one or some and by some magic the original instance is rescheduled.\n\nIf doing it that way, placement is still being relatively stupid: any and all allocations are simply representing the state of resource use, and not special kinds of resource use.\n\n(One of the issues with special kinds of resource use is that it opens up the door for people wanting time-based reservation allocations which thought they might be cool and interesting, boost complexity and confusion.)","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"c5d08e0bccb23576531ef5a750ed9c9786f5feaf","unresolved":false,"context_lines":[{"line_number":190,"context_line":"batch processing system to be built on top of Nova, where you use the existing"},{"line_number":191,"context_line":"quota and reporting systems tied to Nova."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"If we were to have the concept of a preemptive instance outside of Nova, it"},{"line_number":194,"context_line":"would require a separate API to expose the concept, and you end up wrapping"},{"line_number":195,"context_line":"most of the Nova API in a way that is likely to lead to lots of strange proxy"},{"line_number":196,"context_line":"API problems, and a divergence of the Nova API."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"Data model impact"},{"line_number":199,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_42dea311","line":196,"range":{"start_line":193,"start_character":0,"end_line":196,"end_character":47},"updated":"2017-03-27 14:53:37.000000000","message":"Agreed. It\u0027s hard to see how this could be implemented externally without also proxying all regular (non-preemptible) instance handling. And there would be new scheduler filters (at least) required to add to nova-scheduler.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"18ce359eda5a59cd19036b368e57f4c8ed45d2d7","unresolved":false,"context_lines":[{"line_number":212,"context_line":"---------------"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"There is a possible denial of service for preemptible instances, as pointed by"},{"line_number":215,"context_line":"Daniel Berrange: Somebody could request a large number of non-preemptible"},{"line_number":216,"context_line":"instances, causing many preemptible instances to be destroyed, then they could"},{"line_number":217,"context_line":"just immediately shut down their non-preemptible instances again. They wouldn\u0027t"},{"line_number":218,"context_line":"have incurred any real expense for the short time their non-preemptible"},{"line_number":219,"context_line":"instances run, but they will have killed off many other people\u0027s preemptible"},{"line_number":220,"context_line":"instances."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_1675defa","line":217,"range":{"start_line":215,"start_character":17,"end_line":217,"end_character":65},"updated":"2017-03-30 15:14:14.000000000","message":"The impact depends on how large is a project quota.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":7546,"name":"Blair Bethwaite","email":"blair.bethwaite@gmail.com","username":"blairo"},"change_message_id":"c5d08e0bccb23576531ef5a750ed9c9786f5feaf","unresolved":false,"context_lines":[{"line_number":214,"context_line":"There is a possible denial of service for preemptible instances, as pointed by"},{"line_number":215,"context_line":"Daniel Berrange: Somebody could request a large number of non-preemptible"},{"line_number":216,"context_line":"instances, causing many preemptible instances to be destroyed, then they could"},{"line_number":217,"context_line":"just immediately shut down their non-preemptible instances again. They wouldn\u0027t"},{"line_number":218,"context_line":"have incurred any real expense for the short time their non-preemptible"},{"line_number":219,"context_line":"instances run, but they will have killed off many other people\u0027s preemptible"},{"line_number":220,"context_line":"instances."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"Notifications impact"},{"line_number":223,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ffe62b97_82db8b19","line":220,"range":{"start_line":217,"start_character":66,"end_line":220,"end_character":9},"updated":"2017-03-27 14:53:37.000000000","message":"The expense comment is highly dependent on billing setup. If you assume charging then there is normally a minimum charge which would provide a disincentive to this sort of behaviour.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8bcff66de13fd29fad9f1cff727c6c4478bf760e","unresolved":false,"context_lines":[{"line_number":214,"context_line":"There is a possible denial of service for preemptible instances, as pointed by"},{"line_number":215,"context_line":"Daniel Berrange: Somebody could request a large number of non-preemptible"},{"line_number":216,"context_line":"instances, causing many preemptible instances to be destroyed, then they could"},{"line_number":217,"context_line":"just immediately shut down their non-preemptible instances again. They wouldn\u0027t"},{"line_number":218,"context_line":"have incurred any real expense for the short time their non-preemptible"},{"line_number":219,"context_line":"instances run, but they will have killed off many other people\u0027s preemptible"},{"line_number":220,"context_line":"instances."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"Notifications impact"},{"line_number":223,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfeb2761_c1e5823a","line":220,"range":{"start_line":217,"start_character":66,"end_line":220,"end_character":9},"in_reply_to":"ffe62b97_82db8b19","updated":"2017-03-30 17:07:40.000000000","message":"yeah, totally, I should probably add that mitigation here.","commit_id":"a8e2d03cd847cae01bb16070b0ecefe19979eb6c"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"7adb59ed03e1cea722d6b10272be594ca3acd1f2","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/preemptible-instances"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Cloud computing may give users the illusion of infinite capacity, but it is"},{"line_number":14,"context_line":"not always like that. Often quotas are used ensure each project only makes"},{"line_number":15,"context_line":"use their fair share of the cloud\u0027s resources. Sometimes you want to reserve"},{"line_number":16,"context_line":"some capacity for a critical workload that needs to run at a specific time in"},{"line_number":17,"context_line":"the future. In a similar way, you may wish to reserve capacity for live"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_f5ee07eb","line":14,"updated":"2017-08-16 18:01:29.000000000","message":"to ensure","commit_id":"4456086a07b5afa40462d2023d62b424acb73087"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"7adb59ed03e1cea722d6b10272be594ca3acd1f2","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Cloud computing may give users the illusion of infinite capacity, but it is"},{"line_number":14,"context_line":"not always like that. Often quotas are used ensure each project only makes"},{"line_number":15,"context_line":"use their fair share of the cloud\u0027s resources. Sometimes you want to reserve"},{"line_number":16,"context_line":"some capacity for a critical workload that needs to run at a specific time in"},{"line_number":17,"context_line":"the future. In a similar way, you may wish to reserve capacity for live"},{"line_number":18,"context_line":"migration based host upgrades."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_b5be3fd2","line":15,"updated":"2017-08-16 18:01:29.000000000","message":"use of\n\neither stick with \"users\" or \"you\", not both","commit_id":"4456086a07b5afa40462d2023d62b424acb73087"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"7adb59ed03e1cea722d6b10272be594ca3acd1f2","unresolved":false,"context_lines":[{"line_number":20,"context_line":"However, these reservations can cause a reduction in cloud utilization."},{"line_number":21,"context_line":"Ideally you want a way for users who have maxed out their regular resource"},{"line_number":22,"context_line":"quota to be able to opt in to running servers on the spare capacity created"},{"line_number":23,"context_line":"by unused reservations, on the understanding that the server is terminated"},{"line_number":24,"context_line":"if the reservation owner requests their capacity. The user opts into this by"},{"line_number":25,"context_line":"creating a server that is flagged as Preemptable."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_55b713f6","line":23,"updated":"2017-08-16 18:01:29.000000000","message":"s/is/will be/","commit_id":"4456086a07b5afa40462d2023d62b424acb73087"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"7adb59ed03e1cea722d6b10272be594ca3acd1f2","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Consider a cloud where quota is used to reserve space for specific projects."},{"line_number":31,"context_line":"The operators of that cloud ensure they don\u0027t give out out more quota than"},{"line_number":32,"context_line":"they resources, using quota to manage who gets a fair share of the resources."},{"line_number":33,"context_line":"This use of quota is loosely called \"no over commit\". "},{"line_number":34,"context_line":"This is very different to some large expanding clouds, where capacity is added"},{"line_number":35,"context_line":"when demand increases, to give the impression of infinite capacity."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_3597ef4a","line":32,"updated":"2017-08-16 18:01:29.000000000","message":"\"than they resources\"? something\u0027s wrong there","commit_id":"4456086a07b5afa40462d2023d62b424acb73087"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"7adb59ed03e1cea722d6b10272be594ca3acd1f2","unresolved":false,"context_lines":[{"line_number":30,"context_line":"Consider a cloud where quota is used to reserve space for specific projects."},{"line_number":31,"context_line":"The operators of that cloud ensure they don\u0027t give out out more quota than"},{"line_number":32,"context_line":"they resources, using quota to manage who gets a fair share of the resources."},{"line_number":33,"context_line":"This use of quota is loosely called \"no over commit\". "},{"line_number":34,"context_line":"This is very different to some large expanding clouds, where capacity is added"},{"line_number":35,"context_line":"when demand increases, to give the impression of infinite capacity."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_b5a3dfb1","line":33,"updated":"2017-08-16 18:01:29.000000000","message":"whitespace nit","commit_id":"4456086a07b5afa40462d2023d62b424acb73087"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"7adb59ed03e1cea722d6b10272be594ca3acd1f2","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  maintenance easier. In summary, while this remaining space is currently free"},{"line_number":53,"context_line":"  it all may be needed at some point in the future."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Lets consider if users were able to start a server with the understand it will"},{"line_number":56,"context_line":"be terminated if the person who has reserved the space turns up. This would"},{"line_number":57,"context_line":"give you a way for users to get the extra capacity they want, and you have"},{"line_number":58,"context_line":"less idle space in your cloud."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_157bcb27","line":55,"updated":"2017-08-16 18:01:29.000000000","message":"understanding","commit_id":"4456086a07b5afa40462d2023d62b424acb73087"},{"author":{"_account_id":9995,"name":"Ricardo Rocha","email":"rocha.porto@gmail.com","username":"rocha"},"change_message_id":"1242c7ffcf260b94f13f7e86b429173dccea2d99","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Putting this all together, this allows you to reserve capacity for users that"},{"line_number":61,"context_line":"have requested it (or more usually paid for it) while getting better"},{"line_number":62,"context_line":"utilization of the idle capacity those reservations create."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Use Cases"},{"line_number":65,"context_line":"----------"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff5d4b2f_14273915","line":63,"updated":"2017-09-19 10:58:17.000000000","message":"This introduction explains the \u0027quota\u0027 case, but there\u0027s more to it already offered on public clouds, as an example:\nhttps://cloud.google.com/preemptible-vms/\n\nwhich offers low cost instances (without bidding) with a 30sec shutdown notification. I would expand to include this.","commit_id":"4456086a07b5afa40462d2023d62b424acb73087"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"7adb59ed03e1cea722d6b10272be594ca3acd1f2","unresolved":false,"context_lines":[{"line_number":169,"context_line":"  the existing limit on the number of servers per project. Future versions"},{"line_number":170,"context_line":"  could introduce more sophisticated quota relating to preemptable servers."},{"line_number":171,"context_line":"  (An alternative would be to use a points system, and when you enable a"},{"line_number":172,"context_line":"  flavor as preemtable, you choose how many preemtable points it consumes)."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Any expiration of preemptible instances (similar to auto unrescue), is"},{"line_number":175,"context_line":"  expected to be performed by the reaper process."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f436f4f_15f74b8d","line":172,"updated":"2017-08-16 18:01:29.000000000","message":"There\u0027s a plan in place to use allocations in placement to count a project or user\u0027s usages (by GET /usages?project_id\u003d\u003c\u003e). This is an aggregate value that shows nothing about where the stuff is being consume, just the type (resource class) and how much.\n\nSince we don\u0027t want allocations in placement to be preemptibility aware, this poses some challenges.","commit_id":"4456086a07b5afa40462d2023d62b424acb73087"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c0cf48f723696ad121d365f4e4b4d7cf3fd6e650","unresolved":false,"context_lines":[{"line_number":169,"context_line":"  the existing limit on the number of servers per project. Future versions"},{"line_number":170,"context_line":"  could introduce more sophisticated quota relating to preemptable servers."},{"line_number":171,"context_line":"  (An alternative would be to use a points system, and when you enable a"},{"line_number":172,"context_line":"  flavor as preemtable, you choose how many preemtable points it consumes)."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Any expiration of preemptible instances (similar to auto unrescue), is"},{"line_number":175,"context_line":"  expected to be performed by the reaper process."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f287b81_f4f8e27c","line":172,"in_reply_to":"9f436f4f_15f74b8d","updated":"2017-09-05 08:54:00.000000000","message":"See line 160, I believe placement will need to know about this different kind of allocation, for almost exactly that reason.","commit_id":"4456086a07b5afa40462d2023d62b424acb73087"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"cd4e8f235d0d2a2622dc8e7877f55d668b016f15","unresolved":false,"context_lines":[{"line_number":191,"context_line":"Note: we have not included the concept of reserved instances here, although"},{"line_number":192,"context_line":"they clearly interact with the scheduling concepts described here, we are"},{"line_number":193,"context_line":"currently limiting the scope to quota based reservation of resources."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Data model impact"},{"line_number":196,"context_line":"-----------------"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f287b81_9b03ed42","line":194,"updated":"2017-09-06 08:44:20.000000000","message":"From Blazar side, \"at least reservation\" approach could solve the problems listed in the usecase section.  The approach is that users of preemptible-instances request reservations  at least how long and how many they want instances to be alive in specific time windows.  And Blazar ensures users can use instances \"at least\" during the time and the amount.\n\nFor example, instances for the OpenStack CI need to be alive until the CI finishes its testing.  With the approach, the CI reserves instances with specific time windows which are longer than test timeout.\n\nSame approach can be applied to group-B in scientific computing case. I imagine the group-B has some requirements for calculation amount, like 2 big instances needs to work at least 10 days per month. In the case, the group-B reserves instances with above requirements.\n\nDown side of this approach is cloud providers need to deploy reservation service, Blazar, in their clouds. It means hypervisors for the reservation service are separated from normal instance scheduling since Blazar creates a host aggregate for reserved instances and adds hypervisors into it to ensure hypervisors have enough capacity to accomodate reserved instances.\n\nI\u0027m not sure this can solve the root problems. But I wrote it as just one idea for the usecases.","commit_id":"4456086a07b5afa40462d2023d62b424acb73087"}],"specs/rocky/approved/preemptible-servers.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1aeb5f1a505d43deaa2c7ef0fff0cf79b45cb8aa","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  maintenance easier."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Lets consider if users were able to start a server with the understanding it"},{"line_number":53,"context_line":"will be terminated if the person who has reserved the space turns up. This"},{"line_number":54,"context_line":"gives you a way for users to make use of any \"spare\" capacity, and increases"},{"line_number":55,"context_line":"the overall utilization of your cloud."},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_a49b9170","line":53,"range":{"start_line":53,"start_character":19,"end_line":53,"end_character":69},"updated":"2018-02-27 10:55:19.000000000","message":"I just feel preemptible instances are just 2nd grade citizens that make room for 1st grade citizens if the place is full.\nThe fact that those 1st-grade citizens reserved or not that space is just a specific usecase, but the other scenario where in a restaurant you\u0027d be kicked out because a VIP unexpectly comes by it is also good for preemptible instances.","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"32097075642e070d195cf924202987f613253c7c","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  maintenance easier."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Lets consider if users were able to start a server with the understanding it"},{"line_number":53,"context_line":"will be terminated if the person who has reserved the space turns up. This"},{"line_number":54,"context_line":"gives you a way for users to make use of any \"spare\" capacity, and increases"},{"line_number":55,"context_line":"the overall utilization of your cloud."},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_0f9ff550","line":53,"range":{"start_line":53,"start_character":19,"end_line":53,"end_character":69},"in_reply_to":"3fa0c359_a49b9170","updated":"2018-02-27 13:40:27.000000000","message":"That seems like a nice way of saying the same thing I am trying to express here. I just don\u0027t like those kinds of restaurants.","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1aeb5f1a505d43deaa2c7ef0fff0cf79b45cb8aa","unresolved":false,"context_lines":[{"line_number":61,"context_line":"Use Cases"},{"line_number":62,"context_line":"----------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"While nova currently has no concept of reserving capacity, it is possible to"},{"line_number":65,"context_line":"use the quota system in a way that ensures you only hand out quota for"},{"line_number":66,"context_line":"resources that are available in your cloud."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_15814dfb","line":64,"range":{"start_line":64,"start_character":0,"end_line":64,"end_character":58},"updated":"2018-02-27 10:55:19.000000000","message":"again, I don\u0027t think it\u0027s a problem here. We don\u0027t need to have a concept of \"reservations\"","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"13690ca05806adcef222a9083c43a003f3433425","unresolved":false,"context_lines":[{"line_number":61,"context_line":"Use Cases"},{"line_number":62,"context_line":"----------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"While nova currently has no concept of reserving capacity, it is possible to"},{"line_number":65,"context_line":"use the quota system in a way that ensures you only hand out quota for"},{"line_number":66,"context_line":"resources that are available in your cloud."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_d36dfc98","line":64,"range":{"start_line":64,"start_character":0,"end_line":64,"end_character":58},"in_reply_to":"1f9dbf25_8f8ea52c","updated":"2018-03-02 13:33:54.000000000","message":"And with counting quotas as we have them now, reserving quota means booting things to consume quota.","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"32097075642e070d195cf924202987f613253c7c","unresolved":false,"context_lines":[{"line_number":61,"context_line":"Use Cases"},{"line_number":62,"context_line":"----------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"While nova currently has no concept of reserving capacity, it is possible to"},{"line_number":65,"context_line":"use the quota system in a way that ensures you only hand out quota for"},{"line_number":66,"context_line":"resources that are available in your cloud."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_8f8ea52c","line":64,"range":{"start_line":64,"start_character":0,"end_line":64,"end_character":58},"in_reply_to":"3fa0c359_15814dfb","updated":"2018-02-27 13:40:27.000000000","message":"Might be just how I am phrasing things, but I think we agree here. Nova doesn\u0027t do reservation of capacity, and that is just fine. All I am saying is you can use Quota to effectively reserve capacity.","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"13690ca05806adcef222a9083c43a003f3433425","unresolved":false,"context_lines":[{"line_number":124,"context_line":"reaper service. This spec covers the initial phase of the integration. Once"},{"line_number":125,"context_line":"complete, it will be much clearer if any further integration is required."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"When a server is created, and placement returns no candidates, we currently"},{"line_number":128,"context_line":"fail with a NoValidHost exception. The proposal here is to optionally call the"},{"line_number":129,"context_line":"preematable server reaper. If the reaper returns success we can retry getting"},{"line_number":130,"context_line":"allocation candidates from placement. If there are still no candidates, or the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_f316f8f1","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":61},"updated":"2018-03-02 13:33:54.000000000","message":"Presumably you mean when the scheduler returns no candidates, right?","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1aeb5f1a505d43deaa2c7ef0fff0cf79b45cb8aa","unresolved":false,"context_lines":[{"line_number":125,"context_line":"complete, it will be much clearer if any further integration is required."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"When a server is created, and placement returns no candidates, we currently"},{"line_number":128,"context_line":"fail with a NoValidHost exception. The proposal here is to optionally call the"},{"line_number":129,"context_line":"preematable server reaper. If the reaper returns success we can retry getting"},{"line_number":130,"context_line":"allocation candidates from placement. If there are still no candidates, or the"},{"line_number":131,"context_line":"reaper fails (or configuration says the reaper should not be called) we fail"},{"line_number":132,"context_line":"with a NoValidHost error as normal."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_fb684f22","line":129,"range":{"start_line":128,"start_character":35,"end_line":129,"end_character":26},"updated":"2018-02-27 10:55:19.000000000","message":"I understand the necessity of doing a synchronous call to the Reaper service if we\u0027re in a loop but I struggle with the idea to see a blocking call in the scheduler retry loop.\n\nI just wonder that if we consider the Reaper service be responsible for proactively making space, then that NoValidHost exception in that case would be the last and least possible case hence an asynchronous call (or a notification) would be enough.","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1aeb5f1a505d43deaa2c7ef0fff0cf79b45cb8aa","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"When a server is created, and placement returns no candidates, we currently"},{"line_number":128,"context_line":"fail with a NoValidHost exception. The proposal here is to optionally call the"},{"line_number":129,"context_line":"preematable server reaper. If the reaper returns success we can retry getting"},{"line_number":130,"context_line":"allocation candidates from placement. If there are still no candidates, or the"},{"line_number":131,"context_line":"reaper fails (or configuration says the reaper should not be called) we fail"},{"line_number":132,"context_line":"with a NoValidHost error as normal."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_db547357","line":129,"range":{"start_line":129,"start_character":40,"end_line":129,"end_character":57},"updated":"2018-02-27 10:55:19.000000000","message":"The Reaper service result can only be a guesstimate of the chances of the instance to be created if it\u0027s wiping the required space. Since wiping the space will take a reasonable time, I don\u0027t expect anyway to have the room available hence why I don\u0027t really see the interest in a blocking call.","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"ef2758a4ac358a18e167cbd9b715b160c733ba96","unresolved":false,"context_lines":[{"line_number":125,"context_line":"complete, it will be much clearer if any further integration is required."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"When a server is created, and placement returns no candidates, we currently"},{"line_number":128,"context_line":"fail with a NoValidHost exception. The proposal here is to optionally call the"},{"line_number":129,"context_line":"preematable server reaper. If the reaper returns success we can retry getting"},{"line_number":130,"context_line":"allocation candidates from placement. If there are still no candidates, or the"},{"line_number":131,"context_line":"reaper fails (or configuration says the reaper should not be called) we fail"},{"line_number":132,"context_line":"with a NoValidHost error as normal."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_b5abb073","line":129,"range":{"start_line":128,"start_character":35,"end_line":129,"end_character":26},"in_reply_to":"1f9dbf25_fb684f22","updated":"2018-02-27 14:56:34.000000000","message":"In my opinion making space available proactively would mean that we need a very large buffer defeating the purpose of preemptible instances to maximise cloud utilization.","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"32097075642e070d195cf924202987f613253c7c","unresolved":false,"context_lines":[{"line_number":125,"context_line":"complete, it will be much clearer if any further integration is required."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"When a server is created, and placement returns no candidates, we currently"},{"line_number":128,"context_line":"fail with a NoValidHost exception. The proposal here is to optionally call the"},{"line_number":129,"context_line":"preematable server reaper. If the reaper returns success we can retry getting"},{"line_number":130,"context_line":"allocation candidates from placement. If there are still no candidates, or the"},{"line_number":131,"context_line":"reaper fails (or configuration says the reaper should not be called) we fail"},{"line_number":132,"context_line":"with a NoValidHost error as normal."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_cfd6edf2","line":129,"range":{"start_line":128,"start_character":35,"end_line":129,"end_character":26},"in_reply_to":"1f9dbf25_fb684f22","updated":"2018-02-27 13:40:27.000000000","message":"This is moving to the conductor, I need to update that.\n\nI think it has to be synchronous, returns when reaper decides if it can make space or not.\n\nWe can\u0027t only do pre-emptive making of space, because the main user behind this (CERN) wants to try and only reap when NoValidHost is hit. They want as close to 100% utilization as possible.\n\nPersonally I like to think of this as a last ditch attempt to make space when you hit the buffers, because some background reaping didn\u0027t keep up, etc.","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"13690ca05806adcef222a9083c43a003f3433425","unresolved":false,"context_lines":[{"line_number":130,"context_line":"allocation candidates from placement. If there are still no candidates, or the"},{"line_number":131,"context_line":"reaper fails (or configuration says the reaper should not be called) we fail"},{"line_number":132,"context_line":"with a NoValidHost error as normal."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The reaper REST API call is expected to be identical to the current placement"},{"line_number":135,"context_line":"get allocation candidates call, except it does not return any data, only"},{"line_number":136,"context_line":"says success for failure using HTTP success codes."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_33c78048","line":133,"updated":"2018-03-02 13:33:54.000000000","message":"Why would the reaper service not listen to notifications to detect this problem to make some space?\n\nI know the desire is to  have this be synchronous, but I disagree that it should be, on a very fundamental level.\n\nWhat I would like is to make rebuild work on an instance that never did boot. Then the reaper could catch the notification, make some space, and then rebuild the instance. If we did that, then we could have an alternate state for instances that failed to boot (other than ERROR) which would give the user the impression that their instance is synchronously being scheduled.","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1aeb5f1a505d43deaa2c7ef0fff0cf79b45cb8aa","unresolved":false,"context_lines":[{"line_number":149,"context_line":"to make space for the requested regular server. It is likely to optimize"},{"line_number":150,"context_line":"deleting servers in a way that tries to maximise the utilization of the cloud"},{"line_number":151,"context_line":"resources. Note the reaper will issue a soft shutdown request, so the server"},{"line_number":152,"context_line":"has the option of doing any housekeeping work before being deleted."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"To decide if a server is preetable or not, a dedicated project will be used"},{"line_number":155,"context_line":"that is given a role assignment in keystone to say all the servers in that"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_9bfcab3f","line":152,"updated":"2018-02-27 10:55:19.000000000","message":"For the records, during the PTG in the Scientific WG room, we agreed on having a periodic cleanup done by the Reaper service based on cloud usage, in addition to the OOMKiller-ish call described above.","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":2033,"name":"Belmiro Moreira","email":"moreira.belmiro.email.lists@gmail.com","username":"moreira-belmiro-email-lists"},"change_message_id":"ef2758a4ac358a18e167cbd9b715b160c733ba96","unresolved":false,"context_lines":[{"line_number":149,"context_line":"to make space for the requested regular server. It is likely to optimize"},{"line_number":150,"context_line":"deleting servers in a way that tries to maximise the utilization of the cloud"},{"line_number":151,"context_line":"resources. Note the reaper will issue a soft shutdown request, so the server"},{"line_number":152,"context_line":"has the option of doing any housekeeping work before being deleted."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"To decide if a server is preetable or not, a dedicated project will be used"},{"line_number":155,"context_line":"that is given a role assignment in keystone to say all the servers in that"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_9518f4d3","line":152,"in_reply_to":"1f9dbf25_9bfcab3f","updated":"2018-02-27 14:56:34.000000000","message":"Can you describe the periodic cleanup? it\u0027s based in which metrics?","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"361cf9b45db47003754157892fcf22ae93394e81","unresolved":false,"context_lines":[{"line_number":151,"context_line":"resources. Note the reaper will issue a soft shutdown request, so the server"},{"line_number":152,"context_line":"has the option of doing any housekeeping work before being deleted."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"To decide if a server is preetable or not, a dedicated project will be used"},{"line_number":155,"context_line":"that is given a role assignment in keystone to say all the servers in that"},{"line_number":156,"context_line":"project should be considered preemtable."},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_be3155ef","line":154,"range":{"start_line":154,"start_character":25,"end_line":154,"end_character":34},"updated":"2018-02-27 11:12:35.000000000","message":"spelling - preemptible?","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"32097075642e070d195cf924202987f613253c7c","unresolved":false,"context_lines":[{"line_number":151,"context_line":"resources. Note the reaper will issue a soft shutdown request, so the server"},{"line_number":152,"context_line":"has the option of doing any housekeeping work before being deleted."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"To decide if a server is preetable or not, a dedicated project will be used"},{"line_number":155,"context_line":"that is given a role assignment in keystone to say all the servers in that"},{"line_number":156,"context_line":"project should be considered preemtable."},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_6f05597a","line":154,"range":{"start_line":154,"start_character":25,"end_line":154,"end_character":34},"in_reply_to":"1f9dbf25_be3155ef","updated":"2018-02-27 13:40:27.000000000","message":"oops, yeah. Got it wrong, and auto complete reproduced the bad spelling.","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"361cf9b45db47003754157892fcf22ae93394e81","unresolved":false,"context_lines":[{"line_number":156,"context_line":"project should be considered preemtable."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"The dedicated project approach has the disadvantage that network resources"},{"line_number":159,"context_line":"owned by another project are not available to these preemtable instances, but"},{"line_number":160,"context_line":"for many users this will not be a problem. The main advantage is that quotas"},{"line_number":161,"context_line":"can be used on this isolated project to restrict the maximum number of"},{"line_number":162,"context_line":"preemtable instances."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_be46354f","line":159,"range":{"start_line":159,"start_character":52,"end_line":159,"end_character":62},"updated":"2018-02-27 11:12:35.000000000","message":"spelling - preemptible?","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"361cf9b45db47003754157892fcf22ae93394e81","unresolved":false,"context_lines":[{"line_number":159,"context_line":"owned by another project are not available to these preemtable instances, but"},{"line_number":160,"context_line":"for many users this will not be a problem. The main advantage is that quotas"},{"line_number":161,"context_line":"can be used on this isolated project to restrict the maximum number of"},{"line_number":162,"context_line":"preemtable instances."},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"While this could be done using flavor extra specs, this would have not have"},{"line_number":165,"context_line":"any interaction with the current quota system. It is likely additional flavors"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_9eb7b93b","line":162,"range":{"start_line":162,"start_character":0,"end_line":162,"end_character":10},"updated":"2018-02-27 11:12:35.000000000","message":"spelling - preemptible?","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"361cf9b45db47003754157892fcf22ae93394e81","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"While this could be done using flavor extra specs, this would have not have"},{"line_number":165,"context_line":"any interaction with the current quota system. It is likely additional flavors"},{"line_number":166,"context_line":"may still be added for preemtable instances, with access to those flavors"},{"line_number":167,"context_line":"being restricted to projects with the preemtable role assigned. Should there"},{"line_number":168,"context_line":"need to be two different sets of flavors, this could be achieved by having"},{"line_number":169,"context_line":"no public flavors."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_beb4f536","line":166,"range":{"start_line":166,"start_character":23,"end_line":166,"end_character":33},"updated":"2018-02-27 11:12:35.000000000","message":"spelling - preemptible?","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"361cf9b45db47003754157892fcf22ae93394e81","unresolved":false,"context_lines":[{"line_number":164,"context_line":"While this could be done using flavor extra specs, this would have not have"},{"line_number":165,"context_line":"any interaction with the current quota system. It is likely additional flavors"},{"line_number":166,"context_line":"may still be added for preemtable instances, with access to those flavors"},{"line_number":167,"context_line":"being restricted to projects with the preemtable role assigned. Should there"},{"line_number":168,"context_line":"need to be two different sets of flavors, this could be achieved by having"},{"line_number":169,"context_line":"no public flavors."},{"line_number":170,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_3e822551","line":167,"range":{"start_line":167,"start_character":38,"end_line":167,"end_character":48},"updated":"2018-02-27 11:12:35.000000000","message":"spelling - preemptible?","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"361cf9b45db47003754157892fcf22ae93394e81","unresolved":false,"context_lines":[{"line_number":177,"context_line":"users access to all of their regular quota."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Another approach that has emerged is looking to build this into Blazar. It has"},{"line_number":180,"context_line":"become clear the two efforts have different aims. Preemtable instances should"},{"line_number":181,"context_line":"not be restricted to a small ring fenced section of the cloud, and user should"},{"line_number":182,"context_line":"be able to create their instances using the regular Nova API and the ecosystem"},{"line_number":183,"context_line":"of tools build around those APIs. The most liklely future interaction is to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_1ea40908","line":180,"range":{"start_line":180,"start_character":50,"end_line":180,"end_character":60},"updated":"2018-02-27 11:12:35.000000000","message":"spelling - preemptible?","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@g.softbank.co.jp","username":"masa"},"change_message_id":"a146839d880a6c940a30c9b66450567383940240","unresolved":false,"context_lines":[{"line_number":183,"context_line":"of tools build around those APIs. The most liklely future interaction is to"},{"line_number":184,"context_line":"allow space not currently used by Blazar instances to be used by preemtable"},{"line_number":185,"context_line":"instances."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Data model impact"},{"line_number":188,"context_line":"-----------------"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_ef35d2f8","line":186,"updated":"2018-02-28 16:13:18.000000000","message":"I agree the two efforts, preemptible instance and reserved instance, have different aims and user should be able to create the preemptible instance with the regular Nova API.\n\nOf course, Blazar team is welcome to accommodate preemtible instance in a space where there is no reserved instance in Blazar pools.","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"1aeb5f1a505d43deaa2c7ef0fff0cf79b45cb8aa","unresolved":false,"context_lines":[{"line_number":204,"context_line":"have incurred any real expense for the short time their non-preemptible"},{"line_number":205,"context_line":"instances run, but they will have killed off many other people\u0027s preemptible"},{"line_number":206,"context_line":"instances. It is expected that rate limiting would be used to mitigate the"},{"line_number":207,"context_line":"those kinds of risks."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"Notifications impact"},{"line_number":210,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_1b9e5b07","line":207,"updated":"2018-02-27 10:55:19.000000000","message":"++","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"},{"author":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"change_message_id":"361cf9b45db47003754157892fcf22ae93394e81","unresolved":false,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"Users will have to know that some projects they are assigned to may have"},{"line_number":218,"context_line":"their instances deleted by the reaper. This only affects users given access"},{"line_number":219,"context_line":"to a project with the preemptable role, other users of the cloud will see"},{"line_number":220,"context_line":"no change."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f9dbf25_7eed0d24","line":219,"range":{"start_line":219,"start_character":22,"end_line":219,"end_character":33},"updated":"2018-02-27 11:12:35.000000000","message":"spelling - preemptible?","commit_id":"25380b5c41c0695fe8254b9959e1b31724ab4430"}]}
