)]}'
{"specs/newton/approved/eventually-consistent-scheduler-host-state.rst":[{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"The nova scheduler performance issue is complicated and systematic, it may"},{"line_number":38,"context_line":"caused by any possible bottlenecks. For example if nova-api has a very low"},{"line_number":39,"context_line":"throughput to deliver schedule requests to nova-conductor, all the following"},{"line_number":40,"context_line":"schedule processes will be affected, leading to the overall low performance of"},{"line_number":41,"context_line":"nova scheduler. Other possible bottlenecks are nova-conductor, nova-scheduler"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_ad0abecf","line":38,"range":{"start_line":38,"start_character":10,"end_line":38,"end_character":13},"updated":"2016-04-21 11:28:27.000000000","message":"many","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Problem description"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"The nova scheduler performance issue is complicated and systematic, it may"},{"line_number":38,"context_line":"caused by any possible bottlenecks. For example if nova-api has a very low"},{"line_number":39,"context_line":"throughput to deliver schedule requests to nova-conductor, all the following"},{"line_number":40,"context_line":"schedule processes will be affected, leading to the overall low performance of"},{"line_number":41,"context_line":"nova scheduler. Other possible bottlenecks are nova-conductor, nova-scheduler"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_8dbd4204","line":38,"range":{"start_line":37,"start_character":71,"end_line":38,"end_character":6},"updated":"2016-04-21 11:28:27.000000000","message":"may be caused","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":57,"context_line":"   to 1.08 requests/second in the 1000-node simulation. Note the controller"},{"line_number":58,"context_line":"   server in the experiments is very powerful with 2 Intel(R) E5-2680V3 CPUs"},{"line_number":59,"context_line":"   and 128GB RAM. To make sure the experimental data is accurate, the compute"},{"line_number":60,"context_line":"   node services are running a separate machine, the entire schedule process is"},{"line_number":61,"context_line":"   intact and only the compute node virt drivers with some network interfaces"},{"line_number":62,"context_line":"   are faked to better manage those emulated compute nodes. So the performance"},{"line_number":63,"context_line":"   of the real OpenStack with the same settings will only be worse than that."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_4dea0adc","line":60,"range":{"start_line":60,"start_character":28,"end_line":60,"end_character":30},"updated":"2016-04-21 11:28:27.000000000","message":"on a","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":64,"context_line":"   It may be unacceptable to most of OpenStack users and deployers."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"2. The biggest bottleneck."},{"line_number":67,"context_line":"   Those experiments did in #1 can be further evaluated from the produced logs,"},{"line_number":68,"context_line":"   especially from the average time cost of each steps during single request"},{"line_number":69,"context_line":"   processing. It shows the cost of nova-scheduler service is about 72.3% of"},{"line_number":70,"context_line":"   the overall schedule process (from nova-api to nova-compute) in 200-node"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_ad8d9e32","line":67,"range":{"start_line":67,"start_character":3,"end_line":67,"end_character":8},"updated":"2016-04-21 11:28:27.000000000","message":"The","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":64,"context_line":"   It may be unacceptable to most of OpenStack users and deployers."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"2. The biggest bottleneck."},{"line_number":67,"context_line":"   Those experiments did in #1 can be further evaluated from the produced logs,"},{"line_number":68,"context_line":"   especially from the average time cost of each steps during single request"},{"line_number":69,"context_line":"   processing. It shows the cost of nova-scheduler service is about 72.3% of"},{"line_number":70,"context_line":"   the overall schedule process (from nova-api to nova-compute) in 200-node"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_ada63ebe","line":67,"range":{"start_line":67,"start_character":21,"end_line":67,"end_character":24},"updated":"2016-04-21 11:28:27.000000000","message":"done","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"2. The biggest bottleneck."},{"line_number":67,"context_line":"   Those experiments did in #1 can be further evaluated from the produced logs,"},{"line_number":68,"context_line":"   especially from the average time cost of each steps during single request"},{"line_number":69,"context_line":"   processing. It shows the cost of nova-scheduler service is about 72.3% of"},{"line_number":70,"context_line":"   the overall schedule process (from nova-api to nova-compute) in 200-node"},{"line_number":71,"context_line":"   simulation with 50 concurrent boot requests, which is increased to 91.6% in"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_8dac228d","line":68,"range":{"start_line":68,"start_character":44,"end_line":68,"end_character":54},"updated":"2016-04-21 11:28:27.000000000","message":"each step","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":106,"context_line":"   limit of message queue, which is relatively luckiest in fact. The worse"},{"line_number":107,"context_line":"   thing will happen if the database connection limit is exceeded and all new"},{"line_number":108,"context_line":"   connections are refused, causing unpredictable behaviors of the entire"},{"line_number":109,"context_line":"   OpenStack. Note nova scheduler currently doesn\u0027t use nova-conductor service"},{"line_number":110,"context_line":"   to limit its database connections. Secondly, a longer wait means a longer"},{"line_number":111,"context_line":"   time from a decision is made in scheduler, to the decision is accepted by"},{"line_number":112,"context_line":"   nova-compute and updated to the database. The longer a decision stays in"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_4d57aa57","line":109,"range":{"start_line":109,"start_character":18,"end_line":109,"end_character":19},"updated":"2016-04-21 11:28:27.000000000","message":"maybe a \u0027,\u0027 after Note or \"Note that\"","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":214,"context_line":"    any others, the compute nodes will broadcast its resource update to"},{"line_number":215,"context_line":"    schedulers. And scheduler receiving the message will do the corresponding"},{"line_number":216,"context_line":"    cache update."},{"line_number":217,"context_line":"  * `ResourceUpdate` (Resource refresh): If the resources in a compute node is"},{"line_number":218,"context_line":"    refreshed because of service restart or error recovery, it will send a"},{"line_number":219,"context_line":"    ResourceUpdate message tagged refresh after its new state is updated to"},{"line_number":220,"context_line":"    database. And scheduler will refresh the corresponding cache from database."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_0d11325d","line":217,"range":{"start_line":217,"start_character":76,"end_line":217,"end_character":78},"updated":"2016-04-21 11:28:27.000000000","message":"are","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":254,"context_line":"Any operation related to creating a new record of compute-node will generate a"},{"line_number":255,"context_line":"new microversion value for the compute-node-object. Then the resource tracker"},{"line_number":256,"context_line":"will broadcast a `ResourceUpdate` message tagged with refresh to all schedulers"},{"line_number":257,"context_line":"after the new object is wrote to database.  This operation is currently"},{"line_number":258,"context_line":"referred to the method"},{"line_number":259,"context_line":"``nova.compute.resource_tracker.ResourceTracker._init_compute_node()``. And the"},{"line_number":260,"context_line":"\"microverion\" is currently referred to ``resource_providers.generation``"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_b9be7c62","line":257,"range":{"start_line":257,"start_character":21,"end_line":257,"end_character":29},"updated":"2016-04-21 11:28:27.000000000","message":"is written","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                          |"},{"line_number":290,"context_line":"                          |"},{"line_number":291,"context_line":"                  +-------v-------+     +-----------------+     +------------+"},{"line_number":292,"context_line":"                  |  is message   | YES |  Does the Reply | YES | is replied |"},{"line_number":293,"context_line":"                  |  ClaimReply?  +-----\u003e  sent by this   +-----\u003e claim in   |"},{"line_number":294,"context_line":"                  |               |     |  scheduler?     |     | tracking?  |"},{"line_number":295,"context_line":"                  +-------+-------+     +-+---------------+     ++-----+-----+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_390f0c38","line":292,"range":{"start_line":292,"start_character":43,"end_line":292,"end_character":47},"updated":"2016-04-21 11:28:27.000000000","message":"Is","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":298,"context_line":"                          |               |other schedulers      |     |"},{"line_number":299,"context_line":"                  +-------v-------+       |                      |     |"},{"line_number":300,"context_line":"                  |               |     +-v-----------+          |     |"},{"line_number":301,"context_line":"                  |               | YES | Does Reply  |          |  +--v-----+"},{"line_number":302,"context_line":"     cache is     |               \u003c-----+ successful? |          |  | remove |"},{"line_number":303,"context_line":"     out of sync  |               |     +-+-----------+          |  | claim  |"},{"line_number":304,"context_line":"     or need to   |               |       |                      |  | from   |"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_d40a1f1f","line":301,"range":{"start_line":301,"start_character":42,"end_line":301,"end_character":46},"updated":"2016-04-21 11:28:27.000000000","message":"Is","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":310,"context_line":"  | that     |    |  with the     |     +-------------+  claim is|     |"},{"line_number":311,"context_line":"  | cache    |    |  microversion |                      timedout|     |"},{"line_number":312,"context_line":"  | from     |    |  checking     |     +-------------+  or is a |     |"},{"line_number":313,"context_line":"  | database |    |               | YES | Does Reply  |  dup     |     |"},{"line_number":314,"context_line":"  +---+------+    |               \u003c-----+ successful? \u003c----------+     |"},{"line_number":315,"context_line":"      |           |               |     +-------------+                |"},{"line_number":316,"context_line":"      |           |               |     NO|                            |"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_741ceb69","line":313,"range":{"start_line":313,"start_character":42,"end_line":313,"end_character":46},"updated":"2016-04-21 11:28:27.000000000","message":"Is","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":315,"context_line":"      |           |               |     +-------------+                |"},{"line_number":316,"context_line":"      |           |               |     NO|                            |"},{"line_number":317,"context_line":"  +---v------+    |               |       |           +-------------+  |"},{"line_number":318,"context_line":"  | reapply  |    |               \u003c-------------------+ Does Reply  \u003c--+"},{"line_number":319,"context_line":"  | recorded |    |               |       |      NO:  | successful? |"},{"line_number":320,"context_line":"  | claims   |    |               |       |      roll +------+------+"},{"line_number":321,"context_line":"  +---+------+    +-------+-------+       |      back        |YES, and update"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_f41e3b5d","line":318,"range":{"start_line":318,"start_character":56,"end_line":318,"end_character":60},"updated":"2016-04-21 11:28:27.000000000","message":"Is","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":328,"context_line":"  +--------------------------------------------------------------------------+"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"Each scheduler cache represents a resource-provider in Nova. The cache is the"},{"line_number":331,"context_line":"legacy HostState object if ``resource_provider.can_host`` is True, or it is a"},{"line_number":332,"context_line":"shared storage pool if ``resource_provider.can_host`` is False. How scheduler"},{"line_number":333,"context_line":"deal with the in-memory shared-storage-pool is not in the scope of this"},{"line_number":334,"context_line":"blueprint, because the legacy filter scheduler should be updated to handle the"},{"line_number":335,"context_line":"shared resources after the bp generic-resource-pools is implemented , as"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_d4f4dff1","line":332,"range":{"start_line":331,"start_character":67,"end_line":332,"end_character":62},"updated":"2016-04-21 11:28:27.000000000","message":"otherwise (if ``resource_provider.can_host`` is False) it is a shared storage pool.","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":330,"context_line":"Each scheduler cache represents a resource-provider in Nova. The cache is the"},{"line_number":331,"context_line":"legacy HostState object if ``resource_provider.can_host`` is True, or it is a"},{"line_number":332,"context_line":"shared storage pool if ``resource_provider.can_host`` is False. How scheduler"},{"line_number":333,"context_line":"deal with the in-memory shared-storage-pool is not in the scope of this"},{"line_number":334,"context_line":"blueprint, because the legacy filter scheduler should be updated to handle the"},{"line_number":335,"context_line":"shared resources after the bp generic-resource-pools is implemented , as"},{"line_number":336,"context_line":"described in the `Dependencies` section."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_14dbf77c","line":333,"range":{"start_line":333,"start_character":0,"end_line":333,"end_character":4},"updated":"2016-04-21 11:28:27.000000000","message":"deals","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":364,"context_line":"a host state or a shared storage pool has an instance of `MessageWindow`. It"},{"line_number":365,"context_line":"contains a \"window\" from the cache\u0027s current microversion to its future N"},{"line_number":366,"context_line":"updates. So it can detect and recover the mis-ordered updates using this"},{"line_number":367,"context_line":"window, and detect duplicate updates if the its target microversion is already"},{"line_number":368,"context_line":"recorded in the window, and move the window forward after microversion"},{"line_number":369,"context_line":"increment. If a coming update\u0027s target microversion is beyond the current"},{"line_number":370,"context_line":"window scope, it means the current window is blocked by a lost update, or any"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_141e570b","line":367,"range":{"start_line":367,"start_character":37,"end_line":367,"end_character":47},"updated":"2016-04-21 11:28:27.000000000","message":"if its","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"},{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"9a55e0e1e3c54f558edf3dacbe23155358d61697","unresolved":false,"context_lines":[{"line_number":398,"context_line":""},{"line_number":399,"context_line":"* Add a parameter \"claim\" to interface"},{"line_number":400,"context_line":"  ``nova.compute.rpcapi.ComputeAPI.build_and_run_instance()``, so compute nodes"},{"line_number":401,"context_line":"  can receive `ScheculerClaim` from the new nova-conductor. Note the new"},{"line_number":402,"context_line":"  compute service with this interface can still handle the legacy scheduler"},{"line_number":403,"context_line":"  decision. This interface can be downgraded with the None parameter \"claim\" to"},{"line_number":404,"context_line":"  support filter schedulers with legacy host managers."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_948d4733","line":401,"range":{"start_line":401,"start_character":64,"end_line":401,"end_character":65},"updated":"2016-04-21 11:28:27.000000000","message":"\"Note, \" or \"Note that\"","commit_id":"d13f333d24785dc01bd8d5b2422f6e9ee464343b"}]}
