优化 v2 API 中的驱动加载¶
https://storyboard.openstack.org/#!/story/2006654
问题描述¶
目前,所需的驱动程序是在 v2 API 资源的 __init__ 方法中加载的。然而,flask_restful 在 每个请求 上实例化资源,这意味着驱动程序也在每个请求上加载。这导致了次优的性能。
提议的变更¶
在 cloudkitty.api.v2.base.BaseResource 中实现两个新的类方法
reload:重新加载所有必需的驱动程序。load:通过调用reload加载所有必需的驱动程序。如果驱动程序已经加载,则不执行任何操作
为了能够在类实例化之间持久化驱动程序,它们将被设置为类属性。
备选方案¶
无。
数据模型影响¶
无。
REST API 影响¶
无。
安全影响¶
无。
通知影响¶
无。
其他最终用户影响¶
v2 API 端点的平均响应时间将减少。
性能影响¶
仅加载一次驱动程序将带来性能提升。
其他部署者影响¶
在驱动程序实例化时出现的日志消息将只出现一次,而不是在每个请求上出现。
开发人员影响¶
驱动程序的加载必须在 reload 方法中完成,而不是在 __init__ 中。
实现¶
负责人¶
- 主要负责人
<lukapeschke/peschk_l>
工作项¶
实现
reload和load方法。
依赖项¶
无。
测试¶
v2 API 的现有单元测试以及计划中的 tempest 测试将测试此功能。
文档影响¶
v2 API 的开发者文档将被更新,以包含有关 load 和 reload 方法的信息
参考资料¶
无。