[发明专利]一种升级方法和装置在审
| 申请号: | 201611250134.4 | 申请日: | 2016-12-29 |
| 公开(公告)号: | CN108268266A | 公开(公告)日: | 2018-07-10 |
| 发明(设计)人: | 归鹤澄;刘源;王正勇 | 申请(专利权)人: | 中移(苏州)软件技术有限公司;中国移动通信集团公司 |
| 主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F8/73 |
| 代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 张颖玲;王花丽 |
| 地址: | 215163 江苏省苏州市高*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 第一服务器 升级信息 守护进程 升级 热补丁 方法和装置 函数地址 升级装置 替换 存储 检测 | ||
1.一种升级方法,其特征在于,所述方法包括:
当检测到第一服务器需要升级时,获取第一服务器的升级信息;
基于所述第一服务器的升级信息,生成静态热补丁文件并存储在所述第一服务器中;
使用所述静态热补丁文件进行所述第一服务器的守护进程的函数地址替换,完成对所述守护进程的升级。
2.根据权利要求1所述的方法,其特征在于,所述当检测到第一服务器需要升级时,获取第一服务器的升级信息,包括:
当检测到所述第一服务器需要升级时,获取所述守护进程的原始代码文件;
相应的,所述基于所述第一服务器的升级信息,生成静态热补丁文件,并存储在所述第一服务器中,包括:
对所述守护进程的原始代码文件中的第一代码进行编译得到第一编译文件;
基于所述第一服务器的升级需求,修改所述原始代码文件中的所述第一代码得到第二代码;
对所述第二代码进行编译得到第二编译文件;
基于所述第一编译文件和所述第二编译文件,生成静态热补丁文件,并存储在所述第一服务器中。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一编译文件和所述第二编译文件,生成静态热补丁文件并存储在所述第一服务器中,包括:
比较所述第一编译文件和所述第二编译文件,获得所述第二编译文件与所述第一编译文件的内容差异;
基于所述内容差异生成所述静态热补丁文件;
将所述静态补丁文件映射到所述第一服务器的内存空间中。
4.根据权利要求1所述的方法,其特征在于,所述使用所述静态热补丁文件进行守护进程的函数地址替换,完成对所述第一服务器的守护进程的升级,包括:
设置所述静态热补丁文件中的代码与所述第一服务器的守护进程的函数的对应关系;
停止所述第一服务器的守护进程中除主线程之外的其它线程;
使用所述静态热补丁文件进行所述第一服务器的守护进程的函数地址替换;
替换完成后,恢复所述第一服务器的守护进程中除主线程之外的其它线程,完成对所述守护进程的升级。
5.根据权利要求4所述的方法,其特征在于,所述使用所述静态热补丁文件进行所述第一服务器的守护进程的函数地址替换,包括:
根据所述静态热补丁文件中的代码与第一服务器的守护进程的函数的对应关系,设置所述守护进程的原始函数的跳转地址为所述静态热补丁文件中的对应函数的地址;
通过所述静态热补丁文件中与所述守护进程的原始函数对应的函数执行所述守护进程的升级过程。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收客户端的升级指令,并响应所述升级指令生成升级通知信息;
发送所述升级通知信息至第二服务器,以便于所述第二服务器使用所述静态热补丁文件进行所述第二服务器的守护进程的升级;其中,所述第二服务器为与所述第一服务器属于同一集群中的除所述第一服务器外的至少一个服务器,所述第二服务器中存储有所述静态热补丁文件。
7.一种升级装置,其特征在于,所述装置包括:获取单元、第一处理单元和第二处理单元,其中:
所述获取单元,用于当检测到第一服务器需要升级时,获取第一服务器的升级信息;
所述第一处理单元,用于基于所述第一服务器的升级信息,生成静态热补丁文件并存储在所述第一服务器中;
所述第二处理单元,用于使用所述静态热补丁文件进行所述第一服务器的守护进程的函数地址替换,完成对所述守护进程的升级。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中移(苏州)软件技术有限公司;中国移动通信集团公司,未经中移(苏州)软件技术有限公司;中国移动通信集团公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611250134.4/1.html,转载请声明来源钻瓜专利网。





