Public bug reported: Resource tracker in nova-compute checks the resource usage every minute. If the latest resource usage is different from the previous of that, nova-compute request nova-scheduler to update compute_nodes table in DB. https://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L712-L728 _update() calls _resource_change(). And in _resource_change(), resource usages are compared by obj_equal_prims().
In obj_equal_prims(), the resource usage lists are created. https://github.com/openstack/nova/blob/master/nova/objects/base.py#L328-L360 And I found that the lists contained "updated_at" in their keys. prim_1 ={'nova_object.version': u'1.16', 'nova_object.name': 'ComputeNode', 'nova_object.data': {'pci_device_pools': {'nova_object.version': '1.1', 'nova_object.name': 'PciDevicePoolList', 'nova_object.data': {'objects': []}, 'nova_object.namespace': 'nova'}, 'updated_at': '2017-01-20T01:07:43Z', ★here (omission) prim_2 ={'nova_object.version': '1.16', 'nova_object.name': 'ComputeNode', 'nova_object.data': {'pci_device_pools': {'nova_object.version': '1.1', 'nova_object.name': 'PciDevicePoolList', 'nova_object.data': {'objects': []}, 'nova_object.namespace': 'nova'}, 'updated_at': '2017-01-20T01:06:42Z', ★here (omission) These difference in "updated_at" values makes unequal resource usage in recent 2 times checks, and causes update of compute_nodes table every minute. I noticed this problem in Mitaka. According to the code, I think this happens in master. ** Affects: nova Importance: Undecided Status: New -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). https://bugs.launchpad.net/bugs/1658629 Title: Resource tracker causes update of compute_nodes table every minute Status in OpenStack Compute (nova): New Bug description: Resource tracker in nova-compute checks the resource usage every minute. If the latest resource usage is different from the previous of that, nova-compute request nova-scheduler to update compute_nodes table in DB. https://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L712-L728 _update() calls _resource_change(). And in _resource_change(), resource usages are compared by obj_equal_prims(). In obj_equal_prims(), the resource usage lists are created. https://github.com/openstack/nova/blob/master/nova/objects/base.py#L328-L360 And I found that the lists contained "updated_at" in their keys. prim_1 ={'nova_object.version': u'1.16', 'nova_object.name': 'ComputeNode', 'nova_object.data': {'pci_device_pools': {'nova_object.version': '1.1', 'nova_object.name': 'PciDevicePoolList', 'nova_object.data': {'objects': []}, 'nova_object.namespace': 'nova'}, 'updated_at': '2017-01-20T01:07:43Z', ★here (omission) prim_2 ={'nova_object.version': '1.16', 'nova_object.name': 'ComputeNode', 'nova_object.data': {'pci_device_pools': {'nova_object.version': '1.1', 'nova_object.name': 'PciDevicePoolList', 'nova_object.data': {'objects': []}, 'nova_object.namespace': 'nova'}, 'updated_at': '2017-01-20T01:06:42Z', ★here (omission) These difference in "updated_at" values makes unequal resource usage in recent 2 times checks, and causes update of compute_nodes table every minute. I noticed this problem in Mitaka. According to the code, I think this happens in master. To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1658629/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp