[openstack-dev] [OpenStack][Nova][compute] Why prune all compute node stats when sync up compute nodes
yunhong jiang
yunhong.jiang at linux.intel.com
Fri Jan 17 22:45:27 UTC 2014
On Thu, 2014-01-16 at 00:22 +0800, Jay Lau wrote:
> Greeting,
>
> In compute/manager.py, there is a periodic task named as
> update_available_resource(), it will update resource for each compute
> periodically.
>
> @periodic_task.periodic_task
> def update_available_resource(self, context):
> """See driver.get_available_resource()
>
> Periodic process that keeps that the compute host's
> understanding of
> resource availability and usage in sync with the underlying
> hypervisor.
>
> :param context: security context
> """
> new_resource_tracker_dict = {}
> nodenames = set(self.driver.get_available_nodes())
> for nodename in nodenames:
> rt = self._get_resource_tracker(nodename)
> rt.update_available_resource(context) <<<<<<<<<< Update
> here
> new_resource_tracker_dict[nodename] = rt
>
> In resource_tracker.py,
> https://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L384
>
> self._update(context, resources, prune_stats=True)
>
> It always set prune_stats as True, this caused some problems for me.
> As now I'm putting some metrics to compute_node_stats table, those
> metrics does not change frequently, so I did not update it frequently.
> But the periodic task always prune the new metrics that I added.
>
IIUC, it's because the host resource may change dynamically, at least in
original design?
> What about add a configuration parameter in nova.cont to make
> prune_stats as configurable?
Instead of make prune_stats to be configuration, will it make more sense
to be lazy update, i.e. not update the DB if no changes?
>
> Thanks,
>
>
> Jay
>
>
>
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
More information about the OpenStack-dev
mailing list