[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