)]}'
{"trove/common/strategies/mongodb/taskmanager.py":[{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"4dfbd92f7b504b202b6a64497c75298f40fb625e","unresolved":false,"context_lines":[{"line_number":333,"context_line":"        self._create_cluster("},{"line_number":334,"context_line":"            context, cluster_id,"},{"line_number":335,"context_line":"            callback\u003dself.update_statuses_on_failure,"},{"line_number":336,"context_line":"            timeout\u003dlen(self.instances_without_server) * CONF.usage_timeout)"},{"line_number":337,"context_line":"        LOG.debug(\"end create_cluster for id: %s\" % cluster_id)"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def add_shard_cluster(self, context, cluster_id, shard_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_a77091a5","line":336,"updated":"2015-01-09 20:48:45.000000000","message":"not sure i agree with linearly increasing the timeout based on the number of members.\n\nall member vms are booted via nova at roughly the exact same time, and are joined to the master at roughly the same time, so the timeout required for a 3 member shard vs. a 10 member shard should be *roughly* the same , give or take a delta.\n\nin short: the cluster timeout should be the ceiling of the largest realistic shard.","commit_id":"7fb9e5f1e33091c449d64c9b3a4412f50a980363"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"98fcd786ddb130b699ef7472d56ca85e2ca1b75e","unresolved":false,"context_lines":[{"line_number":333,"context_line":"        self._create_cluster("},{"line_number":334,"context_line":"            context, cluster_id,"},{"line_number":335,"context_line":"            callback\u003dself.update_statuses_on_failure,"},{"line_number":336,"context_line":"            timeout\u003dlen(self.instances_without_server) * CONF.usage_timeout)"},{"line_number":337,"context_line":"        LOG.debug(\"end create_cluster for id: %s\" % cluster_id)"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def add_shard_cluster(self, context, cluster_id, shard_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_c20f4b2e","line":336,"in_reply_to":"3a961159_a77091a5","updated":"2015-01-09 21:27:36.000000000","message":"The actual reason why i used liner dependency is that instances are still have to reach running state before proceeding to next configuration steps. So, when create_cluster appears taskmanager still polls instance (multiple pollers, one per instance) datastore status in different thread(s) that doesn\u0027t have any correlation with thread that runs create_cluster.\nIt means that create_cluster thread should have wider timeout that create_instance timeout, and create_cluster timeout should be a big enough to handle long polling (let\u0027s say pretty close to polling timeout) per instance plus additional configuration steps that are described in create_cluster.\n\nSo, as for me, the least complicated solution is to use timeout with linear dependency on instance count (Cons: it may take a while before cluster task would be resetted if something would go wrong. Pros: there would be enough time to wait until all instances are ready, do additional configuration and perform cluster status verification, taking into account worth case - Taskmanager can process only one request per time, so when instance create call appears taskmanager will lock itself for request processing - performing instance status polling).\n\n\nI\u0027m open for discussions. Any thoughts, suggestion?","commit_id":"7fb9e5f1e33091c449d64c9b3a4412f50a980363"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"f41f9fca0d96a7f629b0c49b4d7fcd47bb4901a6","unresolved":false,"context_lines":[{"line_number":333,"context_line":"        self._create_cluster("},{"line_number":334,"context_line":"            context, cluster_id,"},{"line_number":335,"context_line":"            callback\u003dself.update_statuses_on_failure,"},{"line_number":336,"context_line":"            timeout\u003dlen(self.instances_without_server) * CONF.usage_timeout)"},{"line_number":337,"context_line":"        LOG.debug(\"end create_cluster for id: %s\" % cluster_id)"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"    def add_shard_cluster(self, context, cluster_id, shard_id,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_8757155a","line":336,"in_reply_to":"3a961159_a77091a5","updated":"2015-01-09 21:14:24.000000000","message":"ok, i see what you\u0027re saying, let\u0027s figure out the way in which taskmanager can resolve proper timeout for any cluster action, in this case, for cluster provisioning.","commit_id":"7fb9e5f1e33091c449d64c9b3a4412f50a980363"}]}
