)]}'
{"specs/mitaka/approved/pci-stats-generate.rst":[{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"fca8e2cbd69574b8f05024ec8d41283d5997ca46","unresolved":false,"context_lines":[{"line_number":23,"context_line":"call when the `nova.objects.ComputeNodeList.get_all()` method is used to pull"},{"line_number":24,"context_line":"all information about compute nodes in the system. The reason that this summary"},{"line_number":25,"context_line":"information is pulled by the scheduler is to avoid having to send message"},{"line_number":26,"context_line":"containing thousands of PCI device records across the wire."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The problem with storing this summary information in the `compute_nodes` table"},{"line_number":29,"context_line":"is two-fold:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_5bbfd7a9","line":26,"updated":"2015-11-02 16:02:33.000000000","message":"And to avoid join - see below comment.","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"fca8e2cbd69574b8f05024ec8d41283d5997ca46","unresolved":false,"context_lines":[{"line_number":29,"context_line":"is two-fold:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"1) There is the possibility that the summary information can get out of sync"},{"line_number":32,"context_line":"with the non-summary information stored in the `pci_devices` table, and"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"2) It interferes with our efforts to represent all resources in the system in a"},{"line_number":35,"context_line":"consistent and generic fashion (the resource-objects blueprint work)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_fb890327","line":32,"updated":"2015-11-02 16:02:33.000000000","message":"Not really convinced about this. I think the pci_device details are saved immedately after _update_resource_stats() in Resourcetracker._update(). The pci_stats would only get out of sync if it saved one but not the other.\n\nYou could argue that keeping it in the compute_node table makes it atomic with the compute_node update, so the scheduler will be working from consistent information. Splitting it out and using pci_devices would mean the scheduler would not be working from consistent data any more unless the updates were in one transaction.","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c580dceb0a8a9e519d9e5842544092734b4560f7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"is two-fold:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"1) There is the possibility that the summary information can get out of sync"},{"line_number":32,"context_line":"with the non-summary information stored in the `pci_devices` table, and"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"2) It interferes with our efforts to represent all resources in the system in a"},{"line_number":35,"context_line":"consistent and generic fashion (the resource-objects blueprint work)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa80f949_c13f0cd5","line":32,"in_reply_to":"1a26ad4f_0c76f0a3","updated":"2015-11-03 12:36:15.000000000","message":"@alex_xu: My desire is to have the scheduler doing claims. Sooner rather than later. I am thinking about all of this stuff long-term, but if we don\u0027t clean up these things, we will never be able to have a split-out scheduler.","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c580dceb0a8a9e519d9e5842544092734b4560f7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"is two-fold:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"1) There is the possibility that the summary information can get out of sync"},{"line_number":32,"context_line":"with the non-summary information stored in the `pci_devices` table, and"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"2) It interferes with our efforts to represent all resources in the system in a"},{"line_number":35,"context_line":"consistent and generic fashion (the resource-objects blueprint work)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa80f949_a143e86b","line":32,"in_reply_to":"1a26ad4f_fb890327","updated":"2015-11-03 12:36:15.000000000","message":"@PaulMurray, @alex_xu: Sorry, you are incorrect. There is a glaring problem where the detail information can get out of sync with the summary information here:\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L653-L655\n\nOn line 653, the compute_node object\u0027s pci_device_pools attribute is saved. This attribute is the PciDevStats object of the pci_device_tracker attribute of the resource tracker:\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L533-L534\n\nOn line 655, the nova.pci.PciDevTracker.save() method is called, which loops through all the PCI device records tracked by the PCI device tracker and calls device.save() on the object, which results in an RPC message per PCI device to the conductor to save the PCI device detail information to the database:\n\nhttps://github.com/openstack/nova/blob/master/nova/pci/manager.py#L83-L87\n\nIf a failure occurs in between line 653 and line 655 (or in between any of the save()s of PCI devices, the summary information will be out of sync with the detail information.\n\nMy point here is that there is no point at all to saving the summary information whatsoever nor in having the PciDevStats object do any accounting (the whole device pool counter decrementing thing...) since the PCI device detail information already has the necessary information to create the summary on-demand.","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bdbf8a981749c458d0c081cb133bbc0a7bb84017","unresolved":false,"context_lines":[{"line_number":29,"context_line":"is two-fold:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"1) There is the possibility that the summary information can get out of sync"},{"line_number":32,"context_line":"with the non-summary information stored in the `pci_devices` table, and"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"2) It interferes with our efforts to represent all resources in the system in a"},{"line_number":35,"context_line":"consistent and generic fashion (the resource-objects blueprint work)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_0c76f0a3","line":32,"in_reply_to":"1a26ad4f_fb890327","updated":"2015-11-03 08:25:05.000000000","message":"yea, I didn\u0027t found there is chance for out of sync.\n\nBut I think if we want to move claim out of compute node in the future, this is a problem. As the pci_stats field in compute_nodes just a \u0027read-only\u0027 summary from pci_devices table. If the scheduler want to do the claim, it need update the pci_devices table. Anyway the claim thing maybe a long term stuff.","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"fca8e2cbd69574b8f05024ec8d41283d5997ca46","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"1) Temporarily duplicate the logic of"},{"line_number":50,"context_line":"`nova.pci.stats.PciDevStats.supports_request()` method into the"},{"line_number":51,"context_line":"`nova.objects.PciDevicePoolList` object."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"2) Move the logic for determining if a compute node can provide a requested PCI"},{"line_number":54,"context_line":"device to an instance from the `nova.pci.stats.PciDevStats.consume_requests()`"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_b6572259","line":51,"updated":"2015-11-02 16:02:33.000000000","message":"supports_request() is used in claims, scheduler filters and scheduler consume_from_instance() for pci devices and numa. So need the pci device list in those places? (i.e. at scheduler and at resource tracker).","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c580dceb0a8a9e519d9e5842544092734b4560f7","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"1) Temporarily duplicate the logic of"},{"line_number":50,"context_line":"`nova.pci.stats.PciDevStats.supports_request()` method into the"},{"line_number":51,"context_line":"`nova.objects.PciDevicePoolList` object."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"2) Move the logic for determining if a compute node can provide a requested PCI"},{"line_number":54,"context_line":"device to an instance from the `nova.pci.stats.PciDevStats.consume_requests()`"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa80f949_0c046b13","line":51,"in_reply_to":"1a26ad4f_b6572259","updated":"2015-11-03 12:36:15.000000000","message":"This is temporary. the resource-objects Inventory can_provide() interface will eventually be the single, consistent manner of determining whether a requested amount of some resource can be satisfied by an inventory of that type of resource","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"fca8e2cbd69574b8f05024ec8d41283d5997ca46","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    SELECT product_id, vendor_id, numa_node, COUNT(*) as count"},{"line_number":63,"context_line":"    FROM pci_devices"},{"line_number":64,"context_line":"    WHERE compute_node_id \u003d ?"},{"line_number":65,"context_line":"    GROUP BY product_id, vendor_id, numa_node;"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"4) Change the `nova.scheduler.pci_passthrough_filter.host_passes` method to use"},{"line_number":68,"context_line":"the `nova.objects.PciDevicePoolList.supports_requests()` method instead of the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_504496b5","line":65,"updated":"2015-11-02 16:02:33.000000000","message":"This makes loading the host_state in the scheduler a join operation. See HostManager.get_all_host_states() in nova.scheduler.host_manager.py\n\nFirst it gets all the compute_node rows, then for each one it loads the pci stats using above.\n\nI think it was originally done as a summary in pci_stats partly to avoid the join. So this may have a bigger performance impact than you expect.","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c580dceb0a8a9e519d9e5842544092734b4560f7","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    SELECT product_id, vendor_id, numa_node, COUNT(*) as count"},{"line_number":63,"context_line":"    FROM pci_devices"},{"line_number":64,"context_line":"    WHERE compute_node_id \u003d ?"},{"line_number":65,"context_line":"    GROUP BY product_id, vendor_id, numa_node;"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"4) Change the `nova.scheduler.pci_passthrough_filter.host_passes` method to use"},{"line_number":68,"context_line":"the `nova.objects.PciDevicePoolList.supports_requests()` method instead of the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa80f949_2c628fd9","line":65,"in_reply_to":"1a26ad4f_504496b5","updated":"2015-11-03 12:36:15.000000000","message":"I recommend below doing a single query to get all PCI device summary information for all compute nodes ONLY when the PciPassthroughFilter is enabled in the scheduler.\n\nThe single SQL query would be fast and simple:\n\n SELECT compute_node, product_id, vendor_id, numa_node, COUNT(*) as count\n FROM pci_devices\n GROUP BY compute_node, product_id, vendor_id, numa_node;\n\nThe results of the above would be collated to the HostState object collection in the scheduler, in exactly the same way that we handle HostAggregate matching:\n\nhttps://github.com/openstack/nova/blob/master/nova/scheduler/host_manager.py#L338-L344\n\nand\n\nhttps://github.com/openstack/nova/blob/master/nova/scheduler/host_manager.py#L556-L558","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"fca8e2cbd69574b8f05024ec8d41283d5997ca46","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"4) Change the `nova.scheduler.pci_passthrough_filter.host_passes` method to use"},{"line_number":68,"context_line":"the `nova.objects.PciDevicePoolList.supports_requests()` method instead of the"},{"line_number":69,"context_line":"`nova.pci.stats.PciDevStats.support_requests()` method."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"5) Remove the `nova.pci.stats` module entirely."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_0df5a955","line":69,"updated":"2015-11-02 16:02:33.000000000","message":"nit: missing \u0027s\u0027: \u0027supports\u0027 not \u0027support\u0027 in nova.pci.stats.PciDevStats.support_requests()","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bdbf8a981749c458d0c081cb133bbc0a7bb84017","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"5) Remove the `nova.pci.stats` module entirely."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"6) Drop the `compute_node.pci_stats` field entirely."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Alternatives"},{"line_number":76,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_ccf0f8ff","line":73,"updated":"2015-11-03 08:25:05.000000000","message":"We can\u0027t drop it in M, it can be dropped at N. Given chance for all the nodes depend on this filed to upgrade.","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"fca8e2cbd69574b8f05024ec8d41283d5997ca46","unresolved":false,"context_lines":[{"line_number":107,"context_line":"------------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"None. The over-wire information will continue to be the same. The database"},{"line_number":110,"context_line":"query for generating the summary PCI device information should be very quick."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Other deployer impact"},{"line_number":113,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_d00e668b","line":110,"updated":"2015-11-02 16:02:33.000000000","message":"This basically becomes a join - see comment above. Would like to see why it is not a problem. When pci stats was first done using json blobs in a column to avoid table joins was considered ugly but best way to improve performance.","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c580dceb0a8a9e519d9e5842544092734b4560f7","unresolved":false,"context_lines":[{"line_number":107,"context_line":"------------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"None. The over-wire information will continue to be the same. The database"},{"line_number":110,"context_line":"query for generating the summary PCI device information should be very quick."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Other deployer impact"},{"line_number":113,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa80f949_aca43f08","line":110,"in_reply_to":"1a26ad4f_d00e668b","updated":"2015-11-03 12:36:15.000000000","message":"No, not a join. See comment above.","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"fca8e2cbd69574b8f05024ec8d41283d5997ca46","unresolved":false,"context_lines":[{"line_number":151,"context_line":"5) Remove the `nova.pci.stats` module entirely."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"6) Drop the `compute_node.pci_stats` field entirely."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Dependencies"},{"line_number":156,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1a26ad4f_963ea626","line":154,"updated":"2015-11-02 16:02:33.000000000","message":"Note that ResourceTracker._resource_change() works on compute_node. So if pci devices are not held in the compute node it will not detect that something has changed. One interesting intricate detail: \n- when an object is saved its lazy load fields are dropped. \n- the obj_equal_prims() method does not lazy load fields - it compares two objects by fields that are already loaded.\n\nSo adding a lazy load filed to compute_node may cause _resource_change() to stop working.","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c580dceb0a8a9e519d9e5842544092734b4560f7","unresolved":false,"context_lines":[{"line_number":151,"context_line":"5) Remove the `nova.pci.stats` module entirely."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"6) Drop the `compute_node.pci_stats` field entirely."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Dependencies"},{"line_number":156,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":157,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa80f949_8c237b05","line":154,"in_reply_to":"1a26ad4f_963ea626","updated":"2015-11-03 12:36:15.000000000","message":"Sure, fair point. We\u0027d need to be careful here until the resource-objects Inventory object takes care of this...","commit_id":"ccf50594cd2864dea60e8850b74d2777b087d540"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2f3087ff78b46dedc9b62f6b0bd920c9ff8e9039","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"6) Remove the `nova.pci.stats` module entirely."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"7) Drop the `compute_node.pci_stats` field entirely from the database."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Alternatives"},{"line_number":92,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_167223e6","line":89,"updated":"2015-11-03 20:34:55.000000000","message":"We can\u0027t do this until N","commit_id":"f79867afd7bdc6fe53107c6819fdcf57e728eba6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ee3ba73e4b6620e02cfbd7c9158cbe4997b2ba08","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"6) Remove the `nova.pci.stats` module entirely."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"7) Drop the `compute_node.pci_stats` field entirely from the database."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Alternatives"},{"line_number":92,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a8ffd7b_4c1c5713","line":89,"in_reply_to":"fa80f949_167223e6","updated":"2015-12-01 22:09:31.000000000","message":"Done","commit_id":"f79867afd7bdc6fe53107c6819fdcf57e728eba6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2f3087ff78b46dedc9b62f6b0bd920c9ff8e9039","unresolved":false,"context_lines":[{"line_number":97,"context_line":"-----------------"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Models will still contain the exact same field definitions, however the"},{"line_number":100,"context_line":"`compute_nodes.pci_stats` column will be removed from the database."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"REST API impact"},{"line_number":103,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_16ed438b","line":100,"updated":"2015-11-03 20:34:55.000000000","message":"You can\u0027t do this until it\u0027s removed from the model.\n\nIt sounds like we can immediately start generating the stats information from the pci_devices table, as well as stop reporting pci_stats in nova-compute. That means we could drop it from the model immediately, and then remove the table from the DB after Mitaka.\n\nWe should also consider the desired behavior of the older compute nodes during an upgrade. Perhaps we just neuter the ComputeNode object to stop saving new things into pci_stats so that people could drop everything from their pci_stats table to reclaim the space, ahead of the migration to actually drop it?","commit_id":"f79867afd7bdc6fe53107c6819fdcf57e728eba6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ee3ba73e4b6620e02cfbd7c9158cbe4997b2ba08","unresolved":false,"context_lines":[{"line_number":97,"context_line":"-----------------"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Models will still contain the exact same field definitions, however the"},{"line_number":100,"context_line":"`compute_nodes.pci_stats` column will be removed from the database."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"REST API impact"},{"line_number":103,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a8ffd7b_ecc8ab76","line":100,"in_reply_to":"fa80f949_16ed438b","updated":"2015-12-01 22:09:31.000000000","message":"Done","commit_id":"f79867afd7bdc6fe53107c6819fdcf57e728eba6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2f3087ff78b46dedc9b62f6b0bd920c9ff8e9039","unresolved":false,"context_lines":[{"line_number":123,"context_line":"------------------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"None. The over-wire information will continue to be the same. The database"},{"line_number":126,"context_line":"query for generating the summary PCI device information should be very quick."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Other deployer impact"},{"line_number":129,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa80f949_b6b0f78c","line":126,"updated":"2015-11-03 20:34:55.000000000","message":"We\u0027ll actually stop sending some things over the wire if we do this, right? We\u0027ll not pull things out of pci_stats all the time, which means we\u0027ll not send it back to things like nova-compute that may be looking at its ComputeNode object but not caring about stats. We\u0027ll also not be reporting stats anymore, since the scheduler can infer the data from the pci_devices information we\u0027re already updating elsewhere.\n\nSo, net less traffic, I think.","commit_id":"f79867afd7bdc6fe53107c6819fdcf57e728eba6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ee3ba73e4b6620e02cfbd7c9158cbe4997b2ba08","unresolved":false,"context_lines":[{"line_number":123,"context_line":"------------------"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"None. The over-wire information will continue to be the same. The database"},{"line_number":126,"context_line":"query for generating the summary PCI device information should be very quick."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Other deployer impact"},{"line_number":129,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a8ffd7b_ac8f0322","line":126,"in_reply_to":"fa80f949_b6b0f78c","updated":"2015-12-01 22:09:31.000000000","message":"Yes, exactly.","commit_id":"f79867afd7bdc6fe53107c6819fdcf57e728eba6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a68652758977c812a84838bfcc06b16897a924c5","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    WHERE compute_node_id \u003d ?"},{"line_number":65,"context_line":"    GROUP BY product_id, vendor_id, numa_node;"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"This will only be used for legacy compute nodes that rely on the"},{"line_number":68,"context_line":"`nova.objects.ComputeNode.pci_device_pools` field attribute."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"4) Change the scheduler\u0027s host manager to load PCI device pool information"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_d7a450ba","line":67,"updated":"2015-12-01 22:26:07.000000000","message":"Legacy as in Liberty compute nodes? So your Mitaka controller / scheduler will be OK with the change (for mitaka and liberty level objects/services)?","commit_id":"db1ef53c365255f7316f4293903aba6716e8942f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6c0f1749ab539037b13344e77220c3c8ffe7a61c","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    WHERE compute_node_id \u003d ?"},{"line_number":65,"context_line":"    GROUP BY product_id, vendor_id, numa_node;"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"This will only be used for legacy compute nodes that rely on the"},{"line_number":68,"context_line":"`nova.objects.ComputeNode.pci_device_pools` field attribute."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"4) Change the scheduler\u0027s host manager to load PCI device pool information"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_229237a0","line":67,"in_reply_to":"9a8ffd7b_d7a450ba","updated":"2015-12-02 01:14:18.000000000","message":"Yes, legacy computes running Liberty would still be using the pci/stats.py module and still storing the pool information as a BLOB in the compute_nodes.pci_stats field in the database. New compute nodes running Mitaka would no longer store anything in compute_nodes.pci_stats field (since the pci/stats.py module will be gone).","commit_id":"db1ef53c365255f7316f4293903aba6716e8942f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a68652758977c812a84838bfcc06b16897a924c5","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"6) Remove the `nova.pci.stats` module entirely."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"7) Deprecate the `compute_node.pci_stats` field in the database and mark it for"},{"line_number":90,"context_line":"removal in the N release."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_b7742c9c","line":89,"updated":"2015-12-01 22:26:07.000000000","message":"I guess you\u0027ll need to get an exception added for the migration to drop that column per:\n\nhttps://github.com/openstack/nova/blob/master/nova/tests/unit/db/test_migrations.py#L197","commit_id":"db1ef53c365255f7316f4293903aba6716e8942f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0b588cf517a2306ad1fff20114785fef6cb1ef42","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"6) Remove the `nova.pci.stats` module entirely."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"7) Deprecate the `compute_node.pci_stats` field in the database and mark it for"},{"line_number":90,"context_line":"removal in the N release."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_a53ab196","line":89,"in_reply_to":"9a8ffd7b_62cd9fb6","updated":"2015-12-02 01:48:46.000000000","message":"So by annotate we\u0027re just commenting in the code? I thought there was actually some decorator for these fields being deprecated or something, but whatevs.  I guess we just collect enough of this stuff until we need to do a big drop migration across the board.","commit_id":"db1ef53c365255f7316f4293903aba6716e8942f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6c0f1749ab539037b13344e77220c3c8ffe7a61c","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"6) Remove the `nova.pci.stats` module entirely."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"7) Deprecate the `compute_node.pci_stats` field in the database and mark it for"},{"line_number":90,"context_line":"removal in the N release."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_62cd9fb6","line":89,"in_reply_to":"9a8ffd7b_b7742c9c","updated":"2015-12-02 01:14:18.000000000","message":"No, I\u0027m more thinking about just annotating the field in the object model like the InstanceNUMATopology.id field is annotated as \"deprecated/unused\" here:\n\nhttps://github.com/openstack/nova/blob/master/nova/objects/instance_numa_topology.py#L118-L119","commit_id":"db1ef53c365255f7316f4293903aba6716e8942f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a68652758977c812a84838bfcc06b16897a924c5","unresolved":false,"context_lines":[{"line_number":97,"context_line":"Data model impact"},{"line_number":98,"context_line":"-----------------"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"None, this changes the implementation of existing model definitions only."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"REST API impact"},{"line_number":103,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_37b03c43","line":100,"updated":"2015-12-01 22:26:07.000000000","message":"Well, it implies a data model impact if we deprecate compute_node.pci_stats and add a migration in N to drop it.","commit_id":"db1ef53c365255f7316f4293903aba6716e8942f"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"bcda94244d017765afaf233f2f936b8eb50e3edf","unresolved":false,"context_lines":[{"line_number":97,"context_line":"Data model impact"},{"line_number":98,"context_line":"-----------------"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"None, this changes the implementation of existing model definitions only."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"REST API impact"},{"line_number":103,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a8ffd7b_3456cc5c","line":100,"in_reply_to":"9a8ffd7b_37b03c43","updated":"2015-12-02 15:49:06.000000000","message":"I would expect to see another spec/bp when it comes time to drop the column.","commit_id":"db1ef53c365255f7316f4293903aba6716e8942f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a68652758977c812a84838bfcc06b16897a924c5","unresolved":false,"context_lines":[{"line_number":182,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Should be a net reduction in unit tests since the logic for decrementing the"},{"line_number":185,"context_line":"PCI device pool counts will be removed entirely."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Documentation Impact"},{"line_number":188,"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":3,"id":"9a8ffd7b_178c187e","line":185,"updated":"2015-12-01 22:26:07.000000000","message":"I guess we assume the Intel PCI CI will cover the regression testing for us, even though it\u0027s usually not working.","commit_id":"db1ef53c365255f7316f4293903aba6716e8942f"}]}
