)]}'
{"specs/mitaka/approved/sd-strategy.rst":[{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"21391c3009df6df25db57effc2ff365acba9425c","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Use Cases"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":"As an administrator"},{"line_number":21,"context_line":"(https://factory.b-com.com/www/watcher/doc/watcher/glossary.html#administrator)"},{"line_number":22,"context_line":"I can start the action plan with the Standard Deviation goal."},{"line_number":23,"context_line":"This strategy can be configured by using watcher_standard_deviation options."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5aef4532_700748ca","line":20,"range":{"start_line":20,"start_character":6,"end_line":20,"end_character":19},"updated":"2016-03-09 15:10:00.000000000","message":"You\u0027d rather use some reference like this :\n`Administrator`_\n\nand at the end of the spec :\n.. _Administrator: https://factory.b-com.com/www/watcher/doc/watcher/glossary.html#administrator","commit_id":"df1c0c69a980699a03af988ffb8c1030ce631825"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"0129cf9c86727fe63ef2265f6bc72210fb30b563","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Use Cases"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":"As an administrator"},{"line_number":21,"context_line":"(https://factory.b-com.com/www/watcher/doc/watcher/glossary.html#administrator)"},{"line_number":22,"context_line":"I can start the action plan with the Standard Deviation goal."},{"line_number":23,"context_line":"This strategy can be configured by using watcher_standard_deviation options."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5aef4532_fcb3f24a","line":20,"range":{"start_line":20,"start_character":6,"end_line":20,"end_character":19},"in_reply_to":"5aef4532_700748ca","updated":"2016-03-29 17:52:14.000000000","message":"Done","commit_id":"df1c0c69a980699a03af988ffb8c1030ce631825"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"21391c3009df6df25db57effc2ff365acba9425c","unresolved":false,"context_lines":[{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":"As an administrator"},{"line_number":21,"context_line":"(https://factory.b-com.com/www/watcher/doc/watcher/glossary.html#administrator)"},{"line_number":22,"context_line":"I can start the action plan with the Standard Deviation goal."},{"line_number":23,"context_line":"This strategy can be configured by using watcher_standard_deviation options."},{"line_number":24,"context_line":"(https://factory.b-com.com/www/watcher/doc/watcher/glossary.html#goal)"},{"line_number":25,"context_line":"As a developer I can edit and adapt this strategy"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5aef4532_d0e61c14","line":22,"range":{"start_line":22,"start_character":16,"end_line":22,"end_character":27},"updated":"2016-03-09 15:10:00.000000000","message":"In Watcher, you start an audit with a given goal. That action plan is the result of the audit and contains the list of recommended actions in order to achieve the goal.","commit_id":"df1c0c69a980699a03af988ffb8c1030ce631825"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"0129cf9c86727fe63ef2265f6bc72210fb30b563","unresolved":false,"context_lines":[{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":"As an administrator"},{"line_number":21,"context_line":"(https://factory.b-com.com/www/watcher/doc/watcher/glossary.html#administrator)"},{"line_number":22,"context_line":"I can start the action plan with the Standard Deviation goal."},{"line_number":23,"context_line":"This strategy can be configured by using watcher_standard_deviation options."},{"line_number":24,"context_line":"(https://factory.b-com.com/www/watcher/doc/watcher/glossary.html#goal)"},{"line_number":25,"context_line":"As a developer I can edit and adapt this strategy"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5aef4532_9c7bce7a","line":22,"range":{"start_line":22,"start_character":16,"end_line":22,"end_character":27},"in_reply_to":"5aef4532_d0e61c14","updated":"2016-03-29 17:52:14.000000000","message":"Done","commit_id":"df1c0c69a980699a03af988ffb8c1030ce631825"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"21391c3009df6df25db57effc2ff365acba9425c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"for the cluster"},{"line_number":28,"context_line":"(https://factory.b-com.com/www/watcher/doc/watcher/glossary.html#cluster)"},{"line_number":29,"context_line":"changes."},{"line_number":30,"context_line":"As an end user I\u0027m not affected by this change and won\u0027t notice"},{"line_number":31,"context_line":"any difference."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Project Priority"},{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5aef4532_3075c031","line":31,"range":{"start_line":30,"start_character":0,"end_line":31,"end_character":15},"updated":"2016-03-09 15:10:00.000000000","message":"Maybe you should rather say that as a tenant my SLA should not be impacted when executing the action plan.","commit_id":"df1c0c69a980699a03af988ffb8c1030ce631825"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"0129cf9c86727fe63ef2265f6bc72210fb30b563","unresolved":false,"context_lines":[{"line_number":27,"context_line":"for the cluster"},{"line_number":28,"context_line":"(https://factory.b-com.com/www/watcher/doc/watcher/glossary.html#cluster)"},{"line_number":29,"context_line":"changes."},{"line_number":30,"context_line":"As an end user I\u0027m not affected by this change and won\u0027t notice"},{"line_number":31,"context_line":"any difference."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Project Priority"},{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5aef4532_dc99d6c5","line":31,"range":{"start_line":30,"start_character":0,"end_line":31,"end_character":15},"in_reply_to":"5aef4532_3075c031","updated":"2016-03-29 17:52:14.000000000","message":"Done","commit_id":"df1c0c69a980699a03af988ffb8c1030ce631825"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"21391c3009df6df25db57effc2ff365acba9425c","unresolved":false,"context_lines":[{"line_number":60,"context_line":"to a possible destination node. After that the load values"},{"line_number":61,"context_line":"of nodes are normalised and the new standard deviation is calculated with"},{"line_number":62,"context_line":"them. The total standard deviation is calculated as"},{"line_number":63,"context_line":"cpu_weight*cpu_sd + ram_weight*ram_sd, where:"},{"line_number":64,"context_line":"* cpu_weight is the weight of cpu_sd value."},{"line_number":65,"context_line":"* cpu_sd is a simulated deviation of cpu value from mean value for the cluster."},{"line_number":66,"context_line":"* ram_weight is the weight of ram_sd value."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5aef4532_50804cc0","line":63,"range":{"start_line":63,"start_character":0,"end_line":63,"end_character":37},"updated":"2016-03-09 15:10:00.000000000","message":"Please, provide the formula with this kind of RST annotation \n\n::\n\n  cpu_weight*cpu_sd + ram_weight*ram_sd","commit_id":"df1c0c69a980699a03af988ffb8c1030ce631825"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"0129cf9c86727fe63ef2265f6bc72210fb30b563","unresolved":false,"context_lines":[{"line_number":60,"context_line":"to a possible destination node. After that the load values"},{"line_number":61,"context_line":"of nodes are normalised and the new standard deviation is calculated with"},{"line_number":62,"context_line":"them. The total standard deviation is calculated as"},{"line_number":63,"context_line":"cpu_weight*cpu_sd + ram_weight*ram_sd, where:"},{"line_number":64,"context_line":"* cpu_weight is the weight of cpu_sd value."},{"line_number":65,"context_line":"* cpu_sd is a simulated deviation of cpu value from mean value for the cluster."},{"line_number":66,"context_line":"* ram_weight is the weight of ram_sd value."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5aef4532_bc94ca8a","line":63,"range":{"start_line":63,"start_character":0,"end_line":63,"end_character":37},"in_reply_to":"5aef4532_50804cc0","updated":"2016-03-29 17:52:14.000000000","message":"Done","commit_id":"df1c0c69a980699a03af988ffb8c1030ce631825"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"21391c3009df6df25db57effc2ff365acba9425c","unresolved":false,"context_lines":[{"line_number":73,"context_line":"we iteratively take a host/vm pair and place it into solution with"},{"line_number":74,"context_line":"action “MIGRATION”. We compare the resulting deviations of CPU and RAM"},{"line_number":75,"context_line":"to the threshold values. If the resulting deviations are less than"},{"line_number":76,"context_line":"the threshold values, the cycle stops and the resulting strategy"},{"line_number":77,"context_line":"is sent to Watcher Applier."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5aef4532_10f88448","line":76,"range":{"start_line":76,"start_character":56,"end_line":76,"end_character":64},"updated":"2016-03-09 15:10:00.000000000","message":"the Applier receives an Action Plan, not a Strategy.","commit_id":"df1c0c69a980699a03af988ffb8c1030ce631825"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"0129cf9c86727fe63ef2265f6bc72210fb30b563","unresolved":false,"context_lines":[{"line_number":73,"context_line":"we iteratively take a host/vm pair and place it into solution with"},{"line_number":74,"context_line":"action “MIGRATION”. We compare the resulting deviations of CPU and RAM"},{"line_number":75,"context_line":"to the threshold values. If the resulting deviations are less than"},{"line_number":76,"context_line":"the threshold values, the cycle stops and the resulting strategy"},{"line_number":77,"context_line":"is sent to Watcher Applier."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5aef4532_5ceca629","line":76,"range":{"start_line":76,"start_character":56,"end_line":76,"end_character":64},"in_reply_to":"5aef4532_10f88448","updated":"2016-03-29 17:52:14.000000000","message":"Done","commit_id":"df1c0c69a980699a03af988ffb8c1030ce631825"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"21391c3009df6df25db57effc2ff365acba9425c","unresolved":false,"context_lines":[{"line_number":142,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"This task can be considered atomic. It just requires the development and"},{"line_number":145,"context_line":"test of a single class."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":148,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5aef4532_243d81c4","line":145,"updated":"2016-03-09 15:10:00.000000000","message":"you may add a precision saying that the class derives from BaseStrategy class.","commit_id":"df1c0c69a980699a03af988ffb8c1030ce631825"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"0129cf9c86727fe63ef2265f6bc72210fb30b563","unresolved":false,"context_lines":[{"line_number":142,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"This task can be considered atomic. It just requires the development and"},{"line_number":145,"context_line":"test of a single class."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":148,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5aef4532_7cf522eb","line":145,"in_reply_to":"5aef4532_243d81c4","updated":"2016-03-29 17:52:14.000000000","message":"Done","commit_id":"df1c0c69a980699a03af988ffb8c1030ce631825"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"21391c3009df6df25db57effc2ff365acba9425c","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"This task can be considered atomic. It just requires the development and"},{"line_number":145,"context_line":"test of a single class."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":148,"context_line":"Dependencies"},{"line_number":149,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5aef4532_04afa5e2","line":146,"updated":"2016-03-09 15:10:00.000000000","message":"You may also need to add a new Goal type in the list of possible goals at the end of file /blob/master/etc/watcher/watcher.conf.sample to show that there is a potential goal named \"BALANCE_LOAD\" (or whatever you want to name it).\n\nIn a future version of Watcher, the goals will be returned by a base Strategy class. See blueprint get-goal-from-strategy","commit_id":"df1c0c69a980699a03af988ffb8c1030ce631825"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"0129cf9c86727fe63ef2265f6bc72210fb30b563","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"This task can be considered atomic. It just requires the development and"},{"line_number":145,"context_line":"test of a single class."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":148,"context_line":"Dependencies"},{"line_number":149,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5aef4532_ee24e60d","line":146,"in_reply_to":"5aef4532_04afa5e2","updated":"2016-03-29 17:52:14.000000000","message":"Should i add change of watcher.conf.sample as new commit?","commit_id":"df1c0c69a980699a03af988ffb8c1030ce631825"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"8df70e703ae22255139041cc9f493d5a1abc2a16","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Problem description"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Cluster overload is a complex problem, that can be solved by migrating VMs"},{"line_number":6,"context_line":"from one node to another. The decision to migrate is based on such parameters"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afc51ec_e6bf32a8","line":3,"range":{"start_line":1,"start_character":0,"end_line":3,"end_character":19},"updated":"2016-03-17 14:30:54.000000000","message":"nit: This should be the title of your BP.\nThen, \"Problem description\" should be one of its subsection a subsection.\n(see https://raw.githubusercontent.com/openstack/watcher-specs/master/specs/mitaka-template.rst)","commit_id":"465a6c16b253401007268e1afc3fba16fb93835f"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"c9823c06eb4d104021ab440679b0f2ad8d113bb8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Problem description"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Cluster overload is a complex problem, that can be solved by migrating VMs"},{"line_number":6,"context_line":"from one node to another. The decision to migrate is based on such parameters"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1af94dfe_b7b42682","line":3,"range":{"start_line":1,"start_character":0,"end_line":3,"end_character":19},"in_reply_to":"3afc51ec_e6bf32a8","updated":"2016-03-29 17:52:46.000000000","message":"Done","commit_id":"465a6c16b253401007268e1afc3fba16fb93835f"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"8df70e703ae22255139041cc9f493d5a1abc2a16","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Use Cases"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":"As an `Administrator`_ I can start the audit with"},{"line_number":21,"context_line":"the Standard Deviation `goal`_ to create `action plan`_ with"},{"line_number":22,"context_line":"the list of recommended actions. This strategy can be configured"},{"line_number":23,"context_line":"by using watcher_standard_deviation options."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3afc51ec_26191ad8","line":20,"updated":"2016-03-17 14:30:54.000000000","message":"nit: new line here","commit_id":"465a6c16b253401007268e1afc3fba16fb93835f"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"c9823c06eb4d104021ab440679b0f2ad8d113bb8","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Use Cases"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":"As an `Administrator`_ I can start the audit with"},{"line_number":21,"context_line":"the Standard Deviation `goal`_ to create `action plan`_ with"},{"line_number":22,"context_line":"the list of recommended actions. This strategy can be configured"},{"line_number":23,"context_line":"by using watcher_standard_deviation options."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1af94dfe_97b92a7c","line":20,"in_reply_to":"3afc51ec_26191ad8","updated":"2016-03-29 17:52:46.000000000","message":"Done","commit_id":"465a6c16b253401007268e1afc3fba16fb93835f"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Cluster overload is a complex problem, that can be solved by migrating VMs"},{"line_number":12,"context_line":"from one node to another. The decision to migrate is based on such parameters"},{"line_number":13,"context_line":"of VM as cpu utilization or used memory. We propose a strategy for Watcher,"},{"line_number":14,"context_line":"that allows to determine if there is an overload in a cluster"},{"line_number":15,"context_line":"and how it can be fixed."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_ad06d5cb","line":13,"range":{"start_line":12,"start_character":53,"end_line":13,"end_character":39},"updated":"2016-03-22 16:43:45.000000000","message":"based on VM parameters such as CPU utilization or memory utilization.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Cluster overload is a complex problem, that can be solved by migrating VMs"},{"line_number":12,"context_line":"from one node to another. The decision to migrate is based on such parameters"},{"line_number":13,"context_line":"of VM as cpu utilization or used memory. We propose a strategy for Watcher,"},{"line_number":14,"context_line":"that allows to determine if there is an overload in a cluster"},{"line_number":15,"context_line":"and how it can be fixed."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_1463c9b2","line":13,"range":{"start_line":12,"start_character":53,"end_line":13,"end_character":39},"in_reply_to":"fa0719c6_ad06d5cb","updated":"2016-03-29 17:53:25.000000000","message":"Done","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":12,"context_line":"from one node to another. The decision to migrate is based on such parameters"},{"line_number":13,"context_line":"of VM as cpu utilization or used memory. We propose a strategy for Watcher,"},{"line_number":14,"context_line":"that allows to determine if there is an overload in a cluster"},{"line_number":15,"context_line":"and how it can be fixed."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This specification relates to blueprint:"},{"line_number":18,"context_line":"https://blueprints.launchpad.net/watcher/+spec/watcher-overload-underload"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_4d31f9eb","line":15,"range":{"start_line":15,"start_character":18,"end_line":15,"end_character":23},"updated":"2016-03-22 16:43:45.000000000","message":"Fixed is too black and white imo - overload can be dealt with/situation improved/ameliorated etc - it\u0027s not always possible to concrete \u0027fix\u0027 an overload issue.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":12,"context_line":"from one node to another. The decision to migrate is based on such parameters"},{"line_number":13,"context_line":"of VM as cpu utilization or used memory. We propose a strategy for Watcher,"},{"line_number":14,"context_line":"that allows to determine if there is an overload in a cluster"},{"line_number":15,"context_line":"and how it can be fixed."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This specification relates to blueprint:"},{"line_number":18,"context_line":"https://blueprints.launchpad.net/watcher/+spec/watcher-overload-underload"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_545d41e8","line":15,"range":{"start_line":15,"start_character":18,"end_line":15,"end_character":23},"in_reply_to":"fa0719c6_4d31f9eb","updated":"2016-03-29 17:53:25.000000000","message":"Done","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":25,"context_line":"---------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"As an `Administrator`_ I can start the audit with"},{"line_number":28,"context_line":"the Standard Deviation `goal`_ to create `action plan`_ with"},{"line_number":29,"context_line":"the list of recommended actions. This strategy can be configured"},{"line_number":30,"context_line":"by using watcher_standard_deviation options."},{"line_number":31,"context_line":"As a developer I can edit and adapt this `strategy`_"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_add1b559","line":28,"range":{"start_line":28,"start_character":4,"end_line":28,"end_character":30},"updated":"2016-03-22 16:43:45.000000000","message":"Standard Deviation Goal is a bit of a strange name - it does not give me any indicator of what it does, save to say that it does something with Standard Deviations....","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":25,"context_line":"---------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"As an `Administrator`_ I can start the audit with"},{"line_number":28,"context_line":"the Standard Deviation `goal`_ to create `action plan`_ with"},{"line_number":29,"context_line":"the list of recommended actions. This strategy can be configured"},{"line_number":30,"context_line":"by using watcher_standard_deviation options."},{"line_number":31,"context_line":"As a developer I can edit and adapt this `strategy`_"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_f46c559e","line":28,"range":{"start_line":28,"start_character":4,"end_line":28,"end_character":30},"in_reply_to":"fa0719c6_add1b559","updated":"2016-03-29 17:53:25.000000000","message":"Done","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"e1d287b67664a1dd54dd4f2180e17866928b3141","unresolved":false,"context_lines":[{"line_number":27,"context_line":"As an `Administrator`_ I can start the audit with"},{"line_number":28,"context_line":"the Standard Deviation `goal`_ to create `action plan`_ with"},{"line_number":29,"context_line":"the list of recommended actions. This strategy can be configured"},{"line_number":30,"context_line":"by using watcher_standard_deviation options."},{"line_number":31,"context_line":"As a developer I can edit and adapt this `strategy`_"},{"line_number":32,"context_line":"for the `cluster`_ changes."},{"line_number":33,"context_line":"As a tenant my SLA shouldn\u0027t be impacted when executing the action plan."}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_fb5060d6","line":30,"range":{"start_line":30,"start_character":9,"end_line":30,"end_character":43},"updated":"2016-03-23 10:55:33.000000000","message":"do you plan to provide options to your strategy ? In this case, you should wait for this BP https://blueprints.launchpad.net/watcher/+spec/optimization-threshold to be able to give input parameters to a strategy.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":27,"context_line":"As an `Administrator`_ I can start the audit with"},{"line_number":28,"context_line":"the Standard Deviation `goal`_ to create `action plan`_ with"},{"line_number":29,"context_line":"the list of recommended actions. This strategy can be configured"},{"line_number":30,"context_line":"by using watcher_standard_deviation options."},{"line_number":31,"context_line":"As a developer I can edit and adapt this `strategy`_"},{"line_number":32,"context_line":"for the `cluster`_ changes."},{"line_number":33,"context_line":"As a tenant my SLA shouldn\u0027t be impacted when executing the action plan."}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_d469518d","line":30,"range":{"start_line":30,"start_character":9,"end_line":30,"end_character":43},"in_reply_to":"fa0719c6_fb5060d6","updated":"2016-03-29 17:53:25.000000000","message":"Done","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"the Standard Deviation `goal`_ to create `action plan`_ with"},{"line_number":29,"context_line":"the list of recommended actions. This strategy can be configured"},{"line_number":30,"context_line":"by using watcher_standard_deviation options."},{"line_number":31,"context_line":"As a developer I can edit and adapt this `strategy`_"},{"line_number":32,"context_line":"for the `cluster`_ changes."},{"line_number":33,"context_line":"As a tenant my SLA shouldn\u0027t be impacted when executing the action plan."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_2d9805c0","line":32,"range":{"start_line":31,"start_character":0,"end_line":32,"end_character":27},"updated":"2016-03-22 16:43:45.000000000","message":"I thought a use case should not really target a develper - it should be more focused on the administrator.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"e1d287b67664a1dd54dd4f2180e17866928b3141","unresolved":false,"context_lines":[{"line_number":28,"context_line":"the Standard Deviation `goal`_ to create `action plan`_ with"},{"line_number":29,"context_line":"the list of recommended actions. This strategy can be configured"},{"line_number":30,"context_line":"by using watcher_standard_deviation options."},{"line_number":31,"context_line":"As a developer I can edit and adapt this `strategy`_"},{"line_number":32,"context_line":"for the `cluster`_ changes."},{"line_number":33,"context_line":"As a tenant my SLA shouldn\u0027t be impacted when executing the action plan."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_3bdad84c","line":32,"range":{"start_line":31,"start_character":0,"end_line":32,"end_character":27},"updated":"2016-03-23 10:55:33.000000000","message":"what do you mean by that ? In which case a developer needs to adapt your strategy ?","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":28,"context_line":"the Standard Deviation `goal`_ to create `action plan`_ with"},{"line_number":29,"context_line":"the list of recommended actions. This strategy can be configured"},{"line_number":30,"context_line":"by using watcher_standard_deviation options."},{"line_number":31,"context_line":"As a developer I can edit and adapt this `strategy`_"},{"line_number":32,"context_line":"for the `cluster`_ changes."},{"line_number":33,"context_line":"As a tenant my SLA shouldn\u0027t be impacted when executing the action plan."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_740fa5e1","line":32,"range":{"start_line":31,"start_character":0,"end_line":32,"end_character":27},"in_reply_to":"fa0719c6_2d9805c0","updated":"2016-03-29 17:53:25.000000000","message":"Done","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"2a10af9e35ffee229f512968976edcbcddd2e9b8","unresolved":false,"context_lines":[{"line_number":30,"context_line":"by using watcher_standard_deviation options."},{"line_number":31,"context_line":"As a developer I can edit and adapt this `strategy`_"},{"line_number":32,"context_line":"for the `cluster`_ changes."},{"line_number":33,"context_line":"As a tenant my SLA shouldn\u0027t be impacted when executing the action plan."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Project Priority"},{"line_number":36,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_3c916053","line":33,"updated":"2016-03-22 15:09:37.000000000","message":"Do you have an idea to measure the impact on the tenant ?","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"e1d287b67664a1dd54dd4f2180e17866928b3141","unresolved":false,"context_lines":[{"line_number":30,"context_line":"by using watcher_standard_deviation options."},{"line_number":31,"context_line":"As a developer I can edit and adapt this `strategy`_"},{"line_number":32,"context_line":"for the `cluster`_ changes."},{"line_number":33,"context_line":"As a tenant my SLA shouldn\u0027t be impacted when executing the action plan."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Project Priority"},{"line_number":36,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_fb9a206d","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":72},"updated":"2016-03-23 10:55:33.000000000","message":"do you plan to provide a way to handle a tenant SLA ? (because its outside of the scope of this spec)","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":30,"context_line":"by using watcher_standard_deviation options."},{"line_number":31,"context_line":"As a developer I can edit and adapt this `strategy`_"},{"line_number":32,"context_line":"for the `cluster`_ changes."},{"line_number":33,"context_line":"As a tenant my SLA shouldn\u0027t be impacted when executing the action plan."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Project Priority"},{"line_number":36,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_b4f93dcb","line":33,"in_reply_to":"fa0719c6_3c916053","updated":"2016-03-29 17:53:25.000000000","message":"Done","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The new Standard Deviation Strategy allows to determine if there is"},{"line_number":45,"context_line":"an overload in a cluster and respond to it by migrating VMs"},{"line_number":46,"context_line":"to stabilize the cluster."},{"line_number":47,"context_line":"Input: It is possible to get information about workload of every VM"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_ad3895a1","line":44,"range":{"start_line":44,"start_character":8,"end_line":44,"end_character":35},"updated":"2016-03-22 16:43:45.000000000","message":"Suggest choosing a more descriptive name which gives an idea of what the Strategy is trying to achieve.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"The new Standard Deviation Strategy allows to determine if there is"},{"line_number":45,"context_line":"an overload in a cluster and respond to it by migrating VMs"},{"line_number":46,"context_line":"to stabilize the cluster."},{"line_number":47,"context_line":"Input: It is possible to get information about workload of every VM"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_1468e9f4","line":44,"range":{"start_line":44,"start_character":8,"end_line":44,"end_character":35},"in_reply_to":"fa0719c6_ad3895a1","updated":"2016-03-29 17:53:25.000000000","message":"Done","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":7664,"name":"Joe Cropper","email":"jwcroppe@us.ibm.com","username":"jwcroppe"},"change_message_id":"16fd919e833af5f385e9902bd45f7f57438fd36d","unresolved":false,"context_lines":[{"line_number":45,"context_line":"an overload in a cluster and respond to it by migrating VMs"},{"line_number":46,"context_line":"to stabilize the cluster."},{"line_number":47,"context_line":"Input: It is possible to get information about workload of every VM"},{"line_number":48,"context_line":"using Ceilometer. In order to do that the means of CPU and RAM utilization"},{"line_number":49,"context_line":"for the last 2 minutes are used (configurable). Then the hypervisor workload"},{"line_number":50,"context_line":"of each node can be calculated by summing up workload of all VMs on each node."},{"line_number":51,"context_line":"Knowing total amount of CPU and RAM on every node allows"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_0e575b03","line":48,"range":{"start_line":48,"start_character":51,"end_line":48,"end_character":74},"updated":"2016-03-20 13:38:59.000000000","message":"Do you mean utilization or allocation here?\nAnd don\u0027t you also want this at the host level too?\nYou can use Nova metrics framework for getting host-level data for CPU utilization % (and I\u0027m working on a nova BP for memory utilization % [1]).\n\n[1] https://review.openstack.org/#/c/288819/","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":45,"context_line":"an overload in a cluster and respond to it by migrating VMs"},{"line_number":46,"context_line":"to stabilize the cluster."},{"line_number":47,"context_line":"Input: It is possible to get information about workload of every VM"},{"line_number":48,"context_line":"using Ceilometer. In order to do that the means of CPU and RAM utilization"},{"line_number":49,"context_line":"for the last 2 minutes are used (configurable). Then the hypervisor workload"},{"line_number":50,"context_line":"of each node can be calculated by summing up workload of all VMs on each node."},{"line_number":51,"context_line":"Knowing total amount of CPU and RAM on every node allows"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_cba54ab6","line":48,"range":{"start_line":48,"start_character":51,"end_line":48,"end_character":74},"in_reply_to":"fa0719c6_0e575b03","updated":"2016-03-29 17:53:25.000000000","message":"We use cpu_util and memory.resident metrics for gathering utilization info of vm.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":46,"context_line":"to stabilize the cluster."},{"line_number":47,"context_line":"Input: It is possible to get information about workload of every VM"},{"line_number":48,"context_line":"using Ceilometer. In order to do that the means of CPU and RAM utilization"},{"line_number":49,"context_line":"for the last 2 minutes are used (configurable). Then the hypervisor workload"},{"line_number":50,"context_line":"of each node can be calculated by summing up workload of all VMs on each node."},{"line_number":51,"context_line":"Knowing total amount of CPU and RAM on every node allows"},{"line_number":52,"context_line":"to normalise CPU and RAM load. After that the means of CPU and RAM loads"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_cd2a292c","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":46},"updated":"2016-03-22 16:43:45.000000000","message":"This is not the best way to express this - the mean of resource consumption over a given period of time is used - for the initial implementation, a period of 2 minutes has been chosen...(some indicator of why would also be good...)","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":46,"context_line":"to stabilize the cluster."},{"line_number":47,"context_line":"Input: It is possible to get information about workload of every VM"},{"line_number":48,"context_line":"using Ceilometer. In order to do that the means of CPU and RAM utilization"},{"line_number":49,"context_line":"for the last 2 minutes are used (configurable). Then the hypervisor workload"},{"line_number":50,"context_line":"of each node can be calculated by summing up workload of all VMs on each node."},{"line_number":51,"context_line":"Knowing total amount of CPU and RAM on every node allows"},{"line_number":52,"context_line":"to normalise CPU and RAM load. After that the means of CPU and RAM loads"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_f481f590","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":46},"in_reply_to":"fa0719c6_cd2a292c","updated":"2016-03-29 17:53:25.000000000","message":"Done","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"to normalise CPU and RAM load. After that the means of CPU and RAM loads"},{"line_number":53,"context_line":"for the cluster are calculated. All this information makes it possible"},{"line_number":54,"context_line":"to calculate the standard deviation of CPU or RAM. So, we get"},{"line_number":55,"context_line":"values (0 \u003c x \u003c 1) and the strategy compares them to cpu_threshold and"},{"line_number":56,"context_line":"ram_threshold (these are taken from watcher configuration file)."},{"line_number":57,"context_line":"If one of the values is greater than the threshold value, the strategy makes"},{"line_number":58,"context_line":"a decision about whether the cluster needs to be stabilized."}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_78c63d49","line":55,"range":{"start_line":55,"start_character":12,"end_line":55,"end_character":13},"updated":"2016-03-22 16:43:45.000000000","message":"What is x here?","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":52,"context_line":"to normalise CPU and RAM load. After that the means of CPU and RAM loads"},{"line_number":53,"context_line":"for the cluster are calculated. All this information makes it possible"},{"line_number":54,"context_line":"to calculate the standard deviation of CPU or RAM. So, we get"},{"line_number":55,"context_line":"values (0 \u003c x \u003c 1) and the strategy compares them to cpu_threshold and"},{"line_number":56,"context_line":"ram_threshold (these are taken from watcher configuration file)."},{"line_number":57,"context_line":"If one of the values is greater than the threshold value, the strategy makes"},{"line_number":58,"context_line":"a decision about whether the cluster needs to be stabilized."}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_34188d84","line":55,"range":{"start_line":55,"start_character":12,"end_line":55,"end_character":13},"in_reply_to":"fa0719c6_78c63d49","updated":"2016-03-29 17:53:25.000000000","message":"x is a sd_value for metric.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"e1d287b67664a1dd54dd4f2180e17866928b3141","unresolved":false,"context_lines":[{"line_number":52,"context_line":"to normalise CPU and RAM load. After that the means of CPU and RAM loads"},{"line_number":53,"context_line":"for the cluster are calculated. All this information makes it possible"},{"line_number":54,"context_line":"to calculate the standard deviation of CPU or RAM. So, we get"},{"line_number":55,"context_line":"values (0 \u003c x \u003c 1) and the strategy compares them to cpu_threshold and"},{"line_number":56,"context_line":"ram_threshold (these are taken from watcher configuration file)."},{"line_number":57,"context_line":"If one of the values is greater than the threshold value, the strategy makes"},{"line_number":58,"context_line":"a decision about whether the cluster needs to be stabilized."},{"line_number":59,"context_line":"Cluster stabilization process:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_fb4980b8","line":56,"range":{"start_line":55,"start_character":53,"end_line":56,"end_character":13},"updated":"2016-03-23 10:55:33.000000000","message":"again, these parameters must given to the strategy so there is probably a dependancy with BP optimization-threshold","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":52,"context_line":"to normalise CPU and RAM load. After that the means of CPU and RAM loads"},{"line_number":53,"context_line":"for the cluster are calculated. All this information makes it possible"},{"line_number":54,"context_line":"to calculate the standard deviation of CPU or RAM. So, we get"},{"line_number":55,"context_line":"values (0 \u003c x \u003c 1) and the strategy compares them to cpu_threshold and"},{"line_number":56,"context_line":"ram_threshold (these are taken from watcher configuration file)."},{"line_number":57,"context_line":"If one of the values is greater than the threshold value, the strategy makes"},{"line_number":58,"context_line":"a decision about whether the cluster needs to be stabilized."},{"line_number":59,"context_line":"Cluster stabilization process:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_f4c8d576","line":56,"range":{"start_line":55,"start_character":53,"end_line":56,"end_character":13},"in_reply_to":"fa0719c6_fb4980b8","updated":"2016-03-29 17:53:25.000000000","message":"Done","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":54,"context_line":"to calculate the standard deviation of CPU or RAM. So, we get"},{"line_number":55,"context_line":"values (0 \u003c x \u003c 1) and the strategy compares them to cpu_threshold and"},{"line_number":56,"context_line":"ram_threshold (these are taken from watcher configuration file)."},{"line_number":57,"context_line":"If one of the values is greater than the threshold value, the strategy makes"},{"line_number":58,"context_line":"a decision about whether the cluster needs to be stabilized."},{"line_number":59,"context_line":"Cluster stabilization process:"},{"line_number":60,"context_line":"For each active VM we simulate migration to another node of the cluster"},{"line_number":61,"context_line":"by moving workload of that VM from the source node"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_987d11ea","line":58,"range":{"start_line":57,"start_character":71,"end_line":58,"end_character":10},"updated":"2016-03-22 16:43:45.000000000","message":"This is not sufficiently precise - makes a decision on what basis?","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":54,"context_line":"to calculate the standard deviation of CPU or RAM. So, we get"},{"line_number":55,"context_line":"values (0 \u003c x \u003c 1) and the strategy compares them to cpu_threshold and"},{"line_number":56,"context_line":"ram_threshold (these are taken from watcher configuration file)."},{"line_number":57,"context_line":"If one of the values is greater than the threshold value, the strategy makes"},{"line_number":58,"context_line":"a decision about whether the cluster needs to be stabilized."},{"line_number":59,"context_line":"Cluster stabilization process:"},{"line_number":60,"context_line":"For each active VM we simulate migration to another node of the cluster"},{"line_number":61,"context_line":"by moving workload of that VM from the source node"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_3437edb1","line":58,"range":{"start_line":57,"start_character":71,"end_line":58,"end_character":10},"in_reply_to":"fa0719c6_987d11ea","updated":"2016-03-29 17:53:25.000000000","message":"I answered on it in 7 patch set.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"2a10af9e35ffee229f512968976edcbcddd2e9b8","unresolved":false,"context_lines":[{"line_number":58,"context_line":"a decision about whether the cluster needs to be stabilized."},{"line_number":59,"context_line":"Cluster stabilization process:"},{"line_number":60,"context_line":"For each active VM we simulate migration to another node of the cluster"},{"line_number":61,"context_line":"by moving workload of that VM from the source node"},{"line_number":62,"context_line":"to a possible destination node. After that the load values"},{"line_number":63,"context_line":"of nodes are normalised and the new standard deviation is calculated with"},{"line_number":64,"context_line":"them. The total standard deviation is calculated as"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_bcf1f06c","line":61,"updated":"2016-03-22 15:09:37.000000000","message":"what are you take into account in order to simulation a migration (live, block ,dirty page, bandwidth) ?","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":58,"context_line":"a decision about whether the cluster needs to be stabilized."},{"line_number":59,"context_line":"Cluster stabilization process:"},{"line_number":60,"context_line":"For each active VM we simulate migration to another node of the cluster"},{"line_number":61,"context_line":"by moving workload of that VM from the source node"},{"line_number":62,"context_line":"to a possible destination node. After that the load values"},{"line_number":63,"context_line":"of nodes are normalised and the new standard deviation is calculated with"},{"line_number":64,"context_line":"them. The total standard deviation is calculated as"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_04acfeeb","line":61,"in_reply_to":"fa0719c6_bcf1f06c","updated":"2016-03-29 17:53:25.000000000","message":"We use term \"simulation of migration\" in context of workload vms. The common algorithm is looking like that:\n\nhosts[src_hp_id][metric] -\u003d vm_load[metric]\nhosts[dst_hp_id][metric] +\u003d vm_load[metric]\n\nWe don\u0027t use low-level calculations.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":61,"context_line":"by moving workload of that VM from the source node"},{"line_number":62,"context_line":"to a possible destination node. After that the load values"},{"line_number":63,"context_line":"of nodes are normalised and the new standard deviation is calculated with"},{"line_number":64,"context_line":"them. The total standard deviation is calculated as"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":":math:`cpu_weight*cpu_sd + ram_weight*ram_sd`, where:"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_78959ddc","line":64,"range":{"start_line":64,"start_character":16,"end_line":64,"end_character":34},"updated":"2016-03-22 16:43:45.000000000","message":"it looks like this is now a new metric - is this correct? If so, it would be helpful to give it a more descriptive name - standard deviation is already somehow taken ;-)","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":61,"context_line":"by moving workload of that VM from the source node"},{"line_number":62,"context_line":"to a possible destination node. After that the load values"},{"line_number":63,"context_line":"of nodes are normalised and the new standard deviation is calculated with"},{"line_number":64,"context_line":"them. The total standard deviation is calculated as"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":":math:`cpu_weight*cpu_sd + ram_weight*ram_sd`, where:"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_547381b1","line":64,"range":{"start_line":64,"start_character":16,"end_line":64,"end_character":34},"in_reply_to":"fa0719c6_78959ddc","updated":"2016-03-29 17:53:25.000000000","message":"No, this isn\u0027t new metric. Total Standard Deviation is a variable that represents summary sd load over node.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":":math:`cpu_weight*cpu_sd + ram_weight*ram_sd`, where:"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* cpu_weight is the weight of cpu_sd value."},{"line_number":69,"context_line":"* cpu_sd is a simulated deviation of cpu value from mean value for the cluster."},{"line_number":70,"context_line":"* ram_weight is the weight of ram_sd value."},{"line_number":71,"context_line":"* ram_sd is a simulated deviation of ram value from mean value for the cluster."}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_b32756b5","line":68,"range":{"start_line":68,"start_character":20,"end_line":68,"end_character":26},"updated":"2016-03-22 16:43:45.000000000","message":"how are these weights chosen?","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":":math:`cpu_weight*cpu_sd + ram_weight*ram_sd`, where:"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* cpu_weight is the weight of cpu_sd value."},{"line_number":69,"context_line":"* cpu_sd is a simulated deviation of cpu value from mean value for the cluster."},{"line_number":70,"context_line":"* ram_weight is the weight of ram_sd value."},{"line_number":71,"context_line":"* ram_sd is a simulated deviation of ram value from mean value for the cluster."}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_b43addcb","line":68,"range":{"start_line":68,"start_character":20,"end_line":68,"end_character":26},"in_reply_to":"fa0719c6_b32756b5","updated":"2016-03-29 17:53:25.000000000","message":"Each weight of metric is set by `watcher input parameters`_.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":66,"context_line":":math:`cpu_weight*cpu_sd + ram_weight*ram_sd`, where:"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* cpu_weight is the weight of cpu_sd value."},{"line_number":69,"context_line":"* cpu_sd is a simulated deviation of cpu value from mean value for the cluster."},{"line_number":70,"context_line":"* ram_weight is the weight of ram_sd value."},{"line_number":71,"context_line":"* ram_sd is a simulated deviation of ram value from mean value for the cluster."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_9303320d","line":69,"range":{"start_line":69,"start_character":14,"end_line":69,"end_character":23},"updated":"2016-03-22 16:43:45.000000000","message":"how?","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":66,"context_line":":math:`cpu_weight*cpu_sd + ram_weight*ram_sd`, where:"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* cpu_weight is the weight of cpu_sd value."},{"line_number":69,"context_line":"* cpu_sd is a simulated deviation of cpu value from mean value for the cluster."},{"line_number":70,"context_line":"* ram_weight is the weight of ram_sd value."},{"line_number":71,"context_line":"* ram_sd is a simulated deviation of ram value from mean value for the cluster."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_542541a9","line":69,"range":{"start_line":69,"start_character":14,"end_line":69,"end_character":23},"in_reply_to":"fa0719c6_9303320d","updated":"2016-03-29 17:53:25.000000000","message":"By recalculating workload of source node and destination node.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"* ram_weight is the weight of ram_sd value."},{"line_number":71,"context_line":"* ram_sd is a simulated deviation of ram value from mean value for the cluster."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"From all options of moving VM to other nodes we choose the one that minimizes"},{"line_number":74,"context_line":"the standard deviation in a cluster best. That option is added"},{"line_number":75,"context_line":"to the map of migration options, that afterwards gets sorted"},{"line_number":76,"context_line":"by standard deviation in ascending order. From the resulting list"},{"line_number":77,"context_line":"we iteratively take a host/vm pair and place it into solution with"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_73649ee3","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":40},"updated":"2016-03-22 16:43:45.000000000","message":"This is the main objective of the strategy - this should be stated earlier in the document - it is good to give the reader an idea of what the strategy is trying to achieve early....","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":70,"context_line":"* ram_weight is the weight of ram_sd value."},{"line_number":71,"context_line":"* ram_sd is a simulated deviation of ram value from mean value for the cluster."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"From all options of moving VM to other nodes we choose the one that minimizes"},{"line_number":74,"context_line":"the standard deviation in a cluster best. That option is added"},{"line_number":75,"context_line":"to the map of migration options, that afterwards gets sorted"},{"line_number":76,"context_line":"by standard deviation in ascending order. From the resulting list"},{"line_number":77,"context_line":"we iteratively take a host/vm pair and place it into solution with"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_e103f50d","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":40},"in_reply_to":"fa0719c6_73649ee3","updated":"2016-03-29 17:53:25.000000000","message":"Done","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"2a10af9e35ffee229f512968976edcbcddd2e9b8","unresolved":false,"context_lines":[{"line_number":112,"context_line":"---------------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"This capability will not have any specific impact on the API. It will have a"},{"line_number":115,"context_line":"small impact in how it is used via the python-watcherclient as a new option"},{"line_number":116,"context_line":"will now be available for goal parameter in an Audit Template."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_7e62adae","line":115,"updated":"2016-03-22 15:09:37.000000000","message":"IHMO, there is no impact on python-watcherclient.\nThis is a parameter of the strategy.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":112,"context_line":"---------------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"This capability will not have any specific impact on the API. It will have a"},{"line_number":115,"context_line":"small impact in how it is used via the python-watcherclient as a new option"},{"line_number":116,"context_line":"will now be available for goal parameter in an Audit Template."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_53bb5a0e","line":115,"in_reply_to":"fa0719c6_7e62adae","updated":"2016-03-22 16:43:45.000000000","message":"+1","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":112,"context_line":"---------------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"This capability will not have any specific impact on the API. It will have a"},{"line_number":115,"context_line":"small impact in how it is used via the python-watcherclient as a new option"},{"line_number":116,"context_line":"will now be available for goal parameter in an Audit Template."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_4118e184","line":115,"in_reply_to":"fa0719c6_7e62adae","updated":"2016-03-29 17:53:25.000000000","message":"Done","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":145,"context_line":"----------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"This task can be considered atomic. It just requires the development and"},{"line_number":148,"context_line":"test of a single class. The main StandardDeviation class of this strategy"},{"line_number":149,"context_line":"is inherited from BaseStrategy class."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_d345aa17","line":148,"range":{"start_line":148,"start_character":33,"end_line":148,"end_character":50},"updated":"2016-03-22 16:43:45.000000000","message":"I suggest choosing a new, more descriptive name.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":145,"context_line":"----------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"This task can be considered atomic. It just requires the development and"},{"line_number":148,"context_line":"test of a single class. The main StandardDeviation class of this strategy"},{"line_number":149,"context_line":"is inherited from BaseStrategy class."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_e12c95ad","line":148,"range":{"start_line":148,"start_character":33,"end_line":148,"end_character":50},"in_reply_to":"fa0719c6_d345aa17","updated":"2016-03-29 17:53:25.000000000","message":"Done","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"e1d287b67664a1dd54dd4f2180e17866928b3141","unresolved":false,"context_lines":[{"line_number":151,"context_line":"Dependencies"},{"line_number":152,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"No dependencies."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Testing"},{"line_number":157,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_36894d76","line":154,"range":{"start_line":154,"start_character":0,"end_line":154,"end_character":16},"updated":"2016-03-23 10:55:33.000000000","message":"There is a dependency with BP optimization-threshold and probably BP get-goal-from-strategy","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":151,"context_line":"Dependencies"},{"line_number":152,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"No dependencies."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Testing"},{"line_number":157,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_6149a58b","line":154,"range":{"start_line":154,"start_character":0,"end_line":154,"end_character":16},"in_reply_to":"fa0719c6_36894d76","updated":"2016-03-29 17:53:25.000000000","message":"Done","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"8b15c60a629bb240c1e10bc4d4f0f07748cf715e","unresolved":false,"context_lines":[{"line_number":156,"context_line":"Testing"},{"line_number":157,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Several unit tests will be provided to test various scenarios using a fake"},{"line_number":160,"context_line":"mock models."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_d35c8aef","line":159,"range":{"start_line":159,"start_character":68,"end_line":159,"end_character":69},"updated":"2016-03-22 16:43:45.000000000","message":"remove","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":156,"context_line":"Testing"},{"line_number":157,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Several unit tests will be provided to test various scenarios using a fake"},{"line_number":160,"context_line":"mock models."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_e19015ef","line":159,"range":{"start_line":159,"start_character":68,"end_line":159,"end_character":69},"in_reply_to":"fa0719c6_d35c8aef","updated":"2016-03-29 17:53:25.000000000","message":"Done","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"e1d287b67664a1dd54dd4f2180e17866928b3141","unresolved":false,"context_lines":[{"line_number":156,"context_line":"Testing"},{"line_number":157,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Several unit tests will be provided to test various scenarios using a fake"},{"line_number":160,"context_line":"mock models."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Documentation Impact"},{"line_number":163,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa0719c6_765aa52b","line":160,"range":{"start_line":159,"start_character":70,"end_line":160,"end_character":12},"updated":"2016-03-23 10:55:33.000000000","message":"do you plan to deliver mock models with the strategy ?","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"107d5bdb2dd5af0b87737c411a578ff81e762fb3","unresolved":false,"context_lines":[{"line_number":156,"context_line":"Testing"},{"line_number":157,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Several unit tests will be provided to test various scenarios using a fake"},{"line_number":160,"context_line":"mock models."},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Documentation Impact"},{"line_number":163,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da0c15f0_414aa184","line":160,"range":{"start_line":159,"start_character":70,"end_line":160,"end_character":12},"in_reply_to":"fa0719c6_765aa52b","updated":"2016-03-29 17:53:25.000000000","message":"I plan to deliver unit-tests with the strategy.","commit_id":"072c1547899afe7a9754577d9a5f6225c83af585"},{"author":{"_account_id":11235,"name":"Edwin Zhai","email":"edwin.zhai@intel.com","username":"gzhai"},"change_message_id":"0ae7c307923fad974bb788d7d154943c66c80a29","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Cluster overload is a complex problem, that can be solved by migrating VMs"},{"line_number":12,"context_line":"from one node to another. The decision to migrate is based on VM parameters"},{"line_number":13,"context_line":"such as CPU utilization or memory utilization. We propose a strategy"},{"line_number":14,"context_line":"for Watcher, that allows to determine if there is an overload in a cluster"},{"line_number":15,"context_line":"and how it can be reduced."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The main purpose of the strategy is to choose the pair VM:dest_host that"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba0121b8_d5b43983","line":14,"range":{"start_line":14,"start_character":53,"end_line":14,"end_character":61},"updated":"2016-03-31 07:52:07.000000000","message":"overload is ambiguous. Pls. elaborate more on the problem to show what kind of issue need to be resolved.\nIf all nodes has 100% cpu usage, is it cluster overload? Does this BP apply and try to migrate?\n\nIf one node with 20%, and another with 90%, is this what you aim at?","commit_id":"723d5f84725d042e1efd47ad7ec2c8528e3d8e8b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"3bd85933fc91fd77d382a79865a8e6697656f007","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Cluster overload is a complex problem, that can be solved by migrating VMs"},{"line_number":12,"context_line":"from one node to another. The decision to migrate is based on VM parameters"},{"line_number":13,"context_line":"such as CPU utilization or memory utilization. We propose a strategy"},{"line_number":14,"context_line":"for Watcher, that allows to determine if there is an overload in a cluster"},{"line_number":15,"context_line":"and how it can be reduced."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The main purpose of the strategy is to choose the pair VM:dest_host that"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba0121b8_dacc56bd","line":14,"range":{"start_line":14,"start_character":53,"end_line":14,"end_character":61},"in_reply_to":"ba0121b8_d5b43983","updated":"2016-03-31 11:41:28.000000000","message":"The second option is my aim. I\u0027ve changed it in the spec, thx.","commit_id":"723d5f84725d042e1efd47ad7ec2c8528e3d8e8b"},{"author":{"_account_id":11235,"name":"Edwin Zhai","email":"edwin.zhai@intel.com","username":"gzhai"},"change_message_id":"0ae7c307923fad974bb788d7d154943c66c80a29","unresolved":false,"context_lines":[{"line_number":18,"context_line":"minimizes the standard deviation in a cluster best."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This specification relates to blueprint:"},{"line_number":21,"context_line":"https://blueprints.launchpad.net/watcher/+spec/watcher-overload-underload"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The original code implementing this algorithm (not in the context of Watcher)"},{"line_number":24,"context_line":"was published here:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba0121b8_b5a26549","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":73},"updated":"2016-03-31 07:52:07.000000000","message":"The link is broken. And the right name should be\nhttps://blueprints.launchpad.net/watcher/+spec/watcher-overload-sd","commit_id":"723d5f84725d042e1efd47ad7ec2c8528e3d8e8b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"3bd85933fc91fd77d382a79865a8e6697656f007","unresolved":false,"context_lines":[{"line_number":18,"context_line":"minimizes the standard deviation in a cluster best."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This specification relates to blueprint:"},{"line_number":21,"context_line":"https://blueprints.launchpad.net/watcher/+spec/watcher-overload-underload"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The original code implementing this algorithm (not in the context of Watcher)"},{"line_number":24,"context_line":"was published here:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba0121b8_3353066d","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":73},"in_reply_to":"ba0121b8_b5a26549","updated":"2016-03-31 11:41:28.000000000","message":"Done","commit_id":"723d5f84725d042e1efd47ad7ec2c8528e3d8e8b"},{"author":{"_account_id":11235,"name":"Edwin Zhai","email":"edwin.zhai@intel.com","username":"gzhai"},"change_message_id":"0ae7c307923fad974bb788d7d154943c66c80a29","unresolved":false,"context_lines":[{"line_number":59,"context_line":"If one of the values is greater than the threshold value, the strategy runs"},{"line_number":60,"context_line":"cluster stabilization process to reduce load on cluster by performing"},{"line_number":61,"context_line":"live-migration of VMs."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Cluster stabilization process:"},{"line_number":64,"context_line":"For each active VM we simulate migration to another node of the cluster"},{"line_number":65,"context_line":"by recalculating workload of source node and destination node. The following"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba0121b8_6ae0e796","line":62,"updated":"2016-03-31 07:52:07.000000000","message":"I\u0027m not fully understand the calculation process.\n\nCould you pls. add pseudo code for it? Don\u0027t know if it\u0027s your strategy. \n\nFor all node in cluster:\n\n    for all vm in node:\n\n        cpu_load_for_node +\u003d cpu_load_for_vm\n\n    cpu_load_for_cluster \u003d normalize cpu_load_for_node\n\n\nfor all node in cluster:\n    compute deviation for each node against cpu_load_for_cluster. \n\n    Then choose the src vm and dest host.","commit_id":"723d5f84725d042e1efd47ad7ec2c8528e3d8e8b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"3bd85933fc91fd77d382a79865a8e6697656f007","unresolved":false,"context_lines":[{"line_number":59,"context_line":"If one of the values is greater than the threshold value, the strategy runs"},{"line_number":60,"context_line":"cluster stabilization process to reduce load on cluster by performing"},{"line_number":61,"context_line":"live-migration of VMs."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Cluster stabilization process:"},{"line_number":64,"context_line":"For each active VM we simulate migration to another node of the cluster"},{"line_number":65,"context_line":"by recalculating workload of source node and destination node. The following"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba0121b8_13e6c2af","line":62,"in_reply_to":"ba0121b8_6ae0e796","updated":"2016-03-31 11:41:28.000000000","message":"I added pseudo code as you asked.","commit_id":"723d5f84725d042e1efd47ad7ec2c8528e3d8e8b"},{"author":{"_account_id":11235,"name":"Edwin Zhai","email":"edwin.zhai@intel.com","username":"gzhai"},"change_message_id":"0ae7c307923fad974bb788d7d154943c66c80a29","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Cluster stabilization process:"},{"line_number":64,"context_line":"For each active VM we simulate migration to another node of the cluster"},{"line_number":65,"context_line":"by recalculating workload of source node and destination node. The following"},{"line_number":66,"context_line":"code shows a general case of simulating::"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    new_hosts[src_hp_id][metric] -\u003d vm_load[metric]"},{"line_number":69,"context_line":"    new_hosts[dst_hp_id][metric] +\u003d vm_load[metric]"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba0121b8_2ddc4972","line":66,"updated":"2016-03-31 07:52:07.000000000","message":"You mean for each vm on each node, calculate the possibility to migrate to every other node?","commit_id":"723d5f84725d042e1efd47ad7ec2c8528e3d8e8b"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"3bd85933fc91fd77d382a79865a8e6697656f007","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Cluster stabilization process:"},{"line_number":64,"context_line":"For each active VM we simulate migration to another node of the cluster"},{"line_number":65,"context_line":"by recalculating workload of source node and destination node. The following"},{"line_number":66,"context_line":"code shows a general case of simulating::"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    new_hosts[src_hp_id][metric] -\u003d vm_load[metric]"},{"line_number":69,"context_line":"    new_hosts[dst_hp_id][metric] +\u003d vm_load[metric]"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba0121b8_992dd3aa","line":66,"in_reply_to":"ba0121b8_2ddc4972","updated":"2016-03-31 11:41:28.000000000","message":"Yes, i do. To make this process faster, i added use of oslo.cache to get_vm_load function to store ceilometer cpu and ram data in temporary cache. I should say that there is another one way to make it more faster: using host aggregate and available zones filtering. In this case it will reduce amount of possible pairs. But there should be discussing with Watcher team (new blueprint, spec and so on).","commit_id":"723d5f84725d042e1efd47ad7ec2c8528e3d8e8b"}],"specs/newton/approved/sd-strategy.rst":[{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"deb56813e45b41d57ac35c6bd9d675c375c20edd","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Cluster overload is a complex problem, that can be solved by migrating VMs"},{"line_number":12,"context_line":"from one node to another. The decision to migrate is based on VM parameters"},{"line_number":13,"context_line":"such as CPU utilization or memory utilization. We propose a strategy"},{"line_number":14,"context_line":"for Watcher, that allows to determine if there is high load of host/hosts"},{"line_number":15,"context_line":"in comparison with the rest hosts in cluster and how it can be reduced."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The main purpose of the strategy is to choose the pair VM:dest_host that"},{"line_number":18,"context_line":"minimizes the standard deviation in a cluster best."}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_0b8748d8","line":15,"range":{"start_line":14,"start_character":38,"end_line":15,"end_character":70},"updated":"2016-04-21 15:40:17.000000000","message":"Not clear to me: Are we saying \"that monitors if there is a higher load on some hosts compared to other hosts in the cluster and re-balances the work across hosts to minimize the standard deviation of the loads in a cluster\"?","commit_id":"86625cecb14df6545028be0c4851de3d2ce28f50"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"26382e70581bdcb3ec62472a8c9a454f5da3306c","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Cluster overload is a complex problem, that can be solved by migrating VMs"},{"line_number":12,"context_line":"from one node to another. The decision to migrate is based on VM parameters"},{"line_number":13,"context_line":"such as CPU utilization or memory utilization. We propose a strategy"},{"line_number":14,"context_line":"for Watcher, that allows to determine if there is high load of host/hosts"},{"line_number":15,"context_line":"in comparison with the rest hosts in cluster and how it can be reduced."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The main purpose of the strategy is to choose the pair VM:dest_host that"},{"line_number":18,"context_line":"minimizes the standard deviation in a cluster best."}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_68f51dca","line":15,"range":{"start_line":14,"start_character":38,"end_line":15,"end_character":70},"in_reply_to":"1a122d0e_0b8748d8","updated":"2016-04-21 16:27:39.000000000","message":"Exactly!","commit_id":"86625cecb14df6545028be0c4851de3d2ce28f50"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"deb56813e45b41d57ac35c6bd9d675c375c20edd","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Use Cases"},{"line_number":28,"context_line":"---------"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"As an `Administrator`_ I want to reduce load on `cluster`_ by performing"},{"line_number":31,"context_line":"Watcher with the Workload Stabilization `goal`_ to create `action plan`_ with"},{"line_number":32,"context_line":"the list of recommended actions. This strategy can be configured"},{"line_number":33,"context_line":"by using `watcher input parameters`_ (e.g. thresholds, weights, metrics)."}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_cb98b01e","line":30,"updated":"2016-04-21 15:40:17.000000000","message":"nit: the","commit_id":"86625cecb14df6545028be0c4851de3d2ce28f50"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"26382e70581bdcb3ec62472a8c9a454f5da3306c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Use Cases"},{"line_number":28,"context_line":"---------"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"As an `Administrator`_ I want to reduce load on `cluster`_ by performing"},{"line_number":31,"context_line":"Watcher with the Workload Stabilization `goal`_ to create `action plan`_ with"},{"line_number":32,"context_line":"the list of recommended actions. This strategy can be configured"},{"line_number":33,"context_line":"by using `watcher input parameters`_ (e.g. thresholds, weights, metrics)."}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_25ceb0b4","line":30,"in_reply_to":"1a122d0e_cb98b01e","updated":"2016-04-21 16:27:39.000000000","message":"Done","commit_id":"86625cecb14df6545028be0c4851de3d2ce28f50"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"deb56813e45b41d57ac35c6bd9d675c375c20edd","unresolved":false,"context_lines":[{"line_number":28,"context_line":"---------"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"As an `Administrator`_ I want to reduce load on `cluster`_ by performing"},{"line_number":31,"context_line":"Watcher with the Workload Stabilization `goal`_ to create `action plan`_ with"},{"line_number":32,"context_line":"the list of recommended actions. This strategy can be configured"},{"line_number":33,"context_line":"by using `watcher input parameters`_ (e.g. thresholds, weights, metrics)."},{"line_number":34,"context_line":"After then I approve proposed action plan, which contains set of VM"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_4b50205f","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":7},"updated":"2016-04-21 15:40:17.000000000","message":"nit: triggering a Watcher optimization with ...","commit_id":"86625cecb14df6545028be0c4851de3d2ce28f50"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"26382e70581bdcb3ec62472a8c9a454f5da3306c","unresolved":false,"context_lines":[{"line_number":28,"context_line":"---------"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"As an `Administrator`_ I want to reduce load on `cluster`_ by performing"},{"line_number":31,"context_line":"Watcher with the Workload Stabilization `goal`_ to create `action plan`_ with"},{"line_number":32,"context_line":"the list of recommended actions. This strategy can be configured"},{"line_number":33,"context_line":"by using `watcher input parameters`_ (e.g. thresholds, weights, metrics)."},{"line_number":34,"context_line":"After then I approve proposed action plan, which contains set of VM"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_65f548ca","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":7},"in_reply_to":"1a122d0e_4b50205f","updated":"2016-04-21 16:27:39.000000000","message":"Done","commit_id":"86625cecb14df6545028be0c4851de3d2ce28f50"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"deb56813e45b41d57ac35c6bd9d675c375c20edd","unresolved":false,"context_lines":[{"line_number":44,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The new Workload Stabilization Strategy allows to determine if there is"},{"line_number":47,"context_line":"an overload in a cluster and respond to it by migrating VMs"},{"line_number":48,"context_line":"to stabilize the cluster."},{"line_number":49,"context_line":"Input: It is possible to get information about workload of every VM"},{"line_number":50,"context_line":"using Ceilometer. In order to do that the means of CPU and RAM utilization"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_cb1b907f","line":47,"range":{"start_line":47,"start_character":3,"end_line":47,"end_character":11},"updated":"2016-04-21 15:40:17.000000000","message":"it this an \"overload\" or an outlier in the load for the hosts?","commit_id":"86625cecb14df6545028be0c4851de3d2ce28f50"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"26382e70581bdcb3ec62472a8c9a454f5da3306c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The new Workload Stabilization Strategy allows to determine if there is"},{"line_number":47,"context_line":"an overload in a cluster and respond to it by migrating VMs"},{"line_number":48,"context_line":"to stabilize the cluster."},{"line_number":49,"context_line":"Input: It is possible to get information about workload of every VM"},{"line_number":50,"context_line":"using Ceilometer. In order to do that the means of CPU and RAM utilization"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_e8d64d26","line":47,"range":{"start_line":47,"start_character":3,"end_line":47,"end_character":11},"in_reply_to":"1a122d0e_cb1b907f","updated":"2016-04-21 16:27:39.000000000","message":"Outlier, of course.","commit_id":"86625cecb14df6545028be0c4851de3d2ce28f50"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"deb56813e45b41d57ac35c6bd9d675c375c20edd","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The new Workload Stabilization Strategy allows to determine if there is"},{"line_number":47,"context_line":"an overload in a cluster and respond to it by migrating VMs"},{"line_number":48,"context_line":"to stabilize the cluster."},{"line_number":49,"context_line":"Input: It is possible to get information about workload of every VM"},{"line_number":50,"context_line":"using Ceilometer. In order to do that the means of CPU and RAM utilization"},{"line_number":51,"context_line":"for the last 10 minutes are used (configurable). Then the hypervisor workload"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_a64acb53","line":48,"range":{"start_line":48,"start_character":3,"end_line":48,"end_character":12},"updated":"2016-04-21 15:40:17.000000000","message":"nit \"stabilize\" seems to be the wrong word. Do you mean \"average the load across the cluster\"?\n\nI guess you call this step stabilization. so just this is more just FYI","commit_id":"86625cecb14df6545028be0c4851de3d2ce28f50"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"26382e70581bdcb3ec62472a8c9a454f5da3306c","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"The new Workload Stabilization Strategy allows to determine if there is"},{"line_number":47,"context_line":"an overload in a cluster and respond to it by migrating VMs"},{"line_number":48,"context_line":"to stabilize the cluster."},{"line_number":49,"context_line":"Input: It is possible to get information about workload of every VM"},{"line_number":50,"context_line":"using Ceilometer. In order to do that the means of CPU and RAM utilization"},{"line_number":51,"context_line":"for the last 10 minutes are used (configurable). Then the hypervisor workload"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_c89ef162","line":48,"range":{"start_line":48,"start_character":3,"end_line":48,"end_character":12},"in_reply_to":"1a122d0e_a64acb53","updated":"2016-04-21 16:27:39.000000000","message":"Done","commit_id":"86625cecb14df6545028be0c4851de3d2ce28f50"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"deb56813e45b41d57ac35c6bd9d675c375c20edd","unresolved":false,"context_lines":[{"line_number":54,"context_line":"to normalise CPU and RAM load. After that the means of CPU and RAM loads"},{"line_number":55,"context_line":"for the cluster are calculated. All this information makes it possible"},{"line_number":56,"context_line":"to calculate the standard deviation of CPU or RAM. After standard deviation is"},{"line_number":57,"context_line":"calclulated for cpu and ram, the strategy compares sd values to cpu_threshold"},{"line_number":58,"context_line":"and ram_threshold (these are provided by watcher input parameters)."},{"line_number":59,"context_line":"If one of the values is greater than the threshold value, the strategy runs"},{"line_number":60,"context_line":"cluster stabilization process to reduce load on cluster by performing"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_260ebbe5","line":57,"range":{"start_line":57,"start_character":16,"end_line":57,"end_character":27},"updated":"2016-04-21 15:40:17.000000000","message":"nit: should this be capitalized? CPU, RAM to be consistent with the rest of the text.","commit_id":"86625cecb14df6545028be0c4851de3d2ce28f50"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"26382e70581bdcb3ec62472a8c9a454f5da3306c","unresolved":false,"context_lines":[{"line_number":54,"context_line":"to normalise CPU and RAM load. After that the means of CPU and RAM loads"},{"line_number":55,"context_line":"for the cluster are calculated. All this information makes it possible"},{"line_number":56,"context_line":"to calculate the standard deviation of CPU or RAM. After standard deviation is"},{"line_number":57,"context_line":"calclulated for cpu and ram, the strategy compares sd values to cpu_threshold"},{"line_number":58,"context_line":"and ram_threshold (these are provided by watcher input parameters)."},{"line_number":59,"context_line":"If one of the values is greater than the threshold value, the strategy runs"},{"line_number":60,"context_line":"cluster stabilization process to reduce load on cluster by performing"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_052a94e7","line":57,"range":{"start_line":57,"start_character":16,"end_line":57,"end_character":27},"in_reply_to":"1a122d0e_260ebbe5","updated":"2016-04-21 16:27:39.000000000","message":"Done","commit_id":"86625cecb14df6545028be0c4851de3d2ce28f50"}]}
