系统服务或应用的透明升级技术方案

技术编号:19549219 阅读:32 留言:0更新日期:2018-11-24 21:33
本申请涉及系统服务或应用的透明升级。提供了用于在没有重启的情况下升级应用的系统和方法。处理器能够在第一应用实例仍在执行的同时启动第二应用实例。第一应用实例能够将第一状态信息集合传输至第二应用实例。第二应用实例能够响应于传输的完成而声明激活准备就绪。第一应用实例能够响应于声明而去激活。去激活包括将第二状态信息集合从第一应用实例传输至第二应用实例,并且释放单一访问资源。第二应用实例能够激活。激活包括接收第二状态信息集合并且访问单一访问资源。第二应用实例能够响应于激活的完成而声明激活完成。第一应用实例能够响应于声明而终止。

Transparent upgrade of system services or applications

This application involves transparent upgrades of system services or applications. A system and method for upgrading applications without restart are provided. The processor can start the second application instance while the first application instance is still executing. The first application instance can transmit the first state information set to the second application instance. The second application instance can declare activation readiness in response to the completion of the transmission. The first application instance can be deactivated in response to the declaration. Deactivation includes transferring the second state information set from the first application instance to the second application instance, and releasing a single access resource. The second application instance can be activated. Activation includes receiving a second set of state information and accessing a single access resource. The second application instance can declare activation completion in response to the completion of activation. The first application instance can terminate in response to a declaration.

【技术实现步骤摘要】
系统服务或应用的透明升级
本申请涉及系统服务或应用的透明升级。
技术介绍
从长时间运行的系统中,经常有必要升级服务或应用以整合小错误修复、新的特征和/或性能提升。传统上,升级涉及到作为三个不同步骤的停止服务,做出改变,以及重启服务。由于该过程使得服务离线或者占用一段时间,所以升级并不是透明的并且会打扰到用户。
技术实现思路
至少一个方面针对一种在没有重启的情况下更新应用的系统。该系统包括处理器以及具有存储于其上的指令的存储器。该指令使得该处理器执行第一应用实例。该指令使得该处理器在第一应用实例仍在执行的同时启动第二应用实例。该第二应用实例包括第一应用实例的更新版本。该指令使得该处理器将第一状态信息集合从第一应用实例传输至第二应用实例。该指令使得该处理器由第二应用实例响应于第一状态信息集合的传输完成而声明激活准备就绪。该指令使得该处理器对第一应用实例去激活。去激活包括将第二状态信息集合从第一应用实例传输至第二应用实例。去激活包括由第一应用实例释放单一访问资源。该指令使得该处理器激活第二应用实例。激活包括接收该第二状态信息集合并且访问该单一访问资源。该指令使得该处理器由第二应用实例响应于第二应用实例的激活完成而声明激活完成。该指令使得该处理器终止第一应用实例。在一些实施例中,该指令可以使得该处理器执行主控应用以协调第一应用实例和第二应用实例之间的操作。该主控应用可以发起第二应用实例的启动,从第二应用实例接收对激活准备就绪的声明,服从于接收到对准备就绪的声明而指示第一应用实例去激活,从第一应用实例接收去激活完成的通知,服从于接收到该通知而指示第二应用实例激活,并且终止第一应用实例。在一些实施方式中,该主控应用可以协调第三应用实例和包括第三应用实例的更新的第四应用实例之间的操作,其中第三应用实例和第四应用实例执行与第一应用实例和第二应用实例不同的服务。在一些实施方式中,第一应用实例可以定期针对第二用实例的存在而检查预定地址或端口(socket)。在一些实施方式中,该第一状态信息集合可以包括以下的至少一个:已连接客户端的列表,共享存储器空间的位置,文件描述符,以及针对内核资源的访问。在一些实施方式中,该第一状态信息集合可以被写为第一应用实例和第二应用实例都能够解释的中间格式。在一些实施方式中,该第一状态信息集合的至少一子集可以与特定客户端相关联,并且该子集能够经由串行化被传输至与用来服务特定客户端的形式不同的中间格式。在一些实施方式中,该第二状态信息集合可以包括以下的至少一个:TCP拥塞窗口大小,传送中的任意分组的序列标识符,以及被接收但尚未确认的任意分组的序列标识符。在一些实施方式中,该指令可以使得该处理器:保持在开始对第一应用实例的去激活和完成对第二应用实例的激活之间的封锁时段,在所述封锁时段期间所述第一应用实例和第二应用实例都将不对任何用户输入做出响应。至少一个方面针对于一种在没有重启的情况下更新应用的方法。该方法包括由处理器执行第一应用实例。该方法包括由该处理器在第一应用实例仍在执行的同时启动第二应用实例。该第二应用实例包括第一应用实例的更新版本。该方法包括由该处理器将第一状态信息集合从第一应用实例传输至第二应用实例。该方法包括由第二应用实例响应于第一状态信息集合的传输完成而声明激活准备就绪。该方法包括由该处理器对第一应用实例去激活。去激活包括将第二状态信息集合从第一应用实例传输至第二应用实例。去激活包括由第一应用实例释放单一访问资源。该方法包括由该处理器激活第二应用实例。激活包括接收该第二状态信息集合并且访问该单一访问资源。该方法包括由第二应用实例响应于第二应用实例的激活完成而声明激活完成。该方法包括由该处理器终止第一应用实例。在一些实施例中,该方法包括由该处理器执行主控应用以协调第一应用实例和第二应用实例之间的操作。该主控应用可以发起第二应用实例的启动,从第二应用实例接收对激活准备就绪的声明,服从于接收到对准备就绪的声明而指示第一应用实例去激活,从第一应用实例接收去激活完成的通知,服从于接收到该通知而指示第二应用实例激活,并且终止第一应用实例。在一些实施方式中,该主控应用可以协调第三应用实例和包括第三应用实例的更新的第四应用实例之间的操作,其中第三应用实例和第四应用实例执行与第一应用实例和第二应用实例不同的服务。在一些实施方式中,该方法可以通过所述第一应用实例针对第二用实例的存在而定期检查预定地址或端口。在一些实施方式中,该第一状态信息集合可以包括以下的至少一个:已连接客户端的列表,共享存储器空间的位置,文件描述符,以及针对内核资源的访问。在一些实施方式中,该第一状态信息集合可以被写为第一应用实例和第二应用实例都能够解释的中间格式。在一些实施方式中,该第一状态信息集合的至少一子集可以与特定客户端相关联,并且该子集经由串行化被传输至与用来服务特定客户端的形式不同的中间格式。在一些实施方式中,该第二状态信息集合可以包括以下的至少一个:TCP拥塞窗口大小,传送中的任意分组的序列标识符,以及被接收但尚未确认的任意分组的序列标识符。在一些实施方式中,该方法包括由该处理器保持在开始对第一应用实例的去激活和完成对第二应用实例的激活之间的封锁时段,在所述封锁时段期间所述第一应用实例和第二应用实例都将不对任何用户输入做出响应。至少一个方面针对一种在没有重启的情况下更新应用的系统。该系统包括处理装置以及具有存储于其上的指令的存储装置。该指令使得该处理装置执行第一应用实例。该指令使得该处理装置在第一应用实例仍在执行的同时启动第二应用实例。该第二应用实例包括第一应用实例的更新版本。该指令使得该处理装置将第一状态信息集合从第一应用实例传输至第二应用实例。该指令使得该处理装置由第二应用实例响应于第一状态信息集合的传输完成而声明激活准备就绪。该指令使得该处理装置对第一应用实例去激活。去激活包括将第二状态信息集合从第一应用实例传输至第二应用实例。去激活包括由第一应用实例释放单一访问资源。该指令使得该处理装置激活第二应用实例。激活包括接收该第二状态信息集合并且访问该单一访问资源。该指令使得该处理装置由第二应用实例响应于第二应用实例的激活完成而声明激活完成。该指令使得该处理装置终止第一应用实例。这些和其它的方面和实施方式在下文详细讨论。以上的信息和以下的详细描述包括各个方面和实施方式的说明性示例,并且提供了用于理解所请求保护的方面和实施方式的属性和特性的概述或框架。附图提供了各个方面和实施方式的图示和进一步的理解,并且被结合于该说明书中并构成它的一部分。附图说明附图并非意在依比例绘制。各图中同样的附图标记和指定指示同样的元素。出于清楚的目的,可能并未每个组件在每幅图中都被标记。在附图中:图1是根据说明性实施方式的用于在没有重启的情况下升级应用的系统的框图;图2示出了根据说明性实施方式的用于在没有重启的情况下升级应用的事件的序列;图3示出了根据说明性实施方式的用于使用主控应用以便在没有重启的情况下升级应用的事件的序列;图4是根据说明性实施方式的在没有重启的情况下升级应用的示例方法的流程图;以及图5是根据说明性实施方式的可以被采用以实施本文所描述和图示的系统和方法的元素的计算机系统的一般架构的框图。具体实施方式本公开总体上涉及在本文档来自技高网...

【技术保护点】
1.一种在没有重启的情况下更新应用的系统,包括:处理器;以及具有存储于其上的指令的存储器,所述指令用于使得所述处理器:执行第一应用实例;在所述第一应用实例仍在执行的同时启动第二应用实例,所述第二应用实例包括所述第一应用实例的更新版本;将第一状态信息集合从所述第一应用实例传输至所述第二应用实例;由所述第二应用实例响应于所述第一状态信息集合的所述传输完成而声明激活准备就绪;对所述第一应用实例去激活,包括:将第二状态信息集合从所述第一应用实例传输至所述第二应用实例;并且由所述第一应用实例释放单一访问资源;激活所述第二应用实例,包括:接收所述第二状态信息集合;并且访问所述单一访问资源;由所述第二应用实例响应于所述第二应用实例的激活完成而声明激活完成;并且终止所述第一应用实例。

【技术特征摘要】
2017.05.01 US 15/583,8491.一种在没有重启的情况下更新应用的系统,包括:处理器;以及具有存储于其上的指令的存储器,所述指令用于使得所述处理器:执行第一应用实例;在所述第一应用实例仍在执行的同时启动第二应用实例,所述第二应用实例包括所述第一应用实例的更新版本;将第一状态信息集合从所述第一应用实例传输至所述第二应用实例;由所述第二应用实例响应于所述第一状态信息集合的所述传输完成而声明激活准备就绪;对所述第一应用实例去激活,包括:将第二状态信息集合从所述第一应用实例传输至所述第二应用实例;并且由所述第一应用实例释放单一访问资源;激活所述第二应用实例,包括:接收所述第二状态信息集合;并且访问所述单一访问资源;由所述第二应用实例响应于所述第二应用实例的激活完成而声明激活完成;并且终止所述第一应用实例。2.根据权利要求1所述的系统,其中所述指令使得所述处理器执行主控应用以协调所述第一应用实例和所述第二应用实例之间的操作。3.根据权利要求2所述的系统,其中所述主控应用:发起所述第二应用实例的启动;从所述第二应用实例接收对激活准备就绪的所述声明;响应于接收到对准备就绪的所述声明而指示所述第一应用实例去激活;从所述第一应用实例接收去激活完成的通知;响应于接收到所述通知而指示所述第二应用实例激活;并且终止所述第一应用实例。4.根据权利要求2所述的系统,其中所述主控应用协调第三应用实例和包括所述第三应用实例的更新的第四应用实例之间的操作,其中所述第三应用实例和所述第四应用实例执行与所述第一应用实例和所述第二应用实例不同的服务。5.根据权利要求1所述的系统,其中所述第一应用实例定期针对所述第二用实例的存在而检查预定地址或端口。6.根据权利要求1所述的系统,其中所述第一状态信息集合包括以下的至少一个:已连接客户端的列表,共享存储器空间的位置,文件描述符,以及针对内核资源的访问。7.根据权利要求1所述的系统,其中所述第一状态信息集合被写为所述第一应用实例和所述第二应用实例都能够解释的中间格式。8.根据权利要求1所述的系统,其中:至少所述第一状态信息集合的子集与特定客户端相关联;并且所述子集经由串行化被传输至与用来服务特定客户端的形式不同的中间格式。9.根据权利要求1所述的系统,其中所述第二状态信息集合包括以下的至少一个:TCP拥塞窗口大小,传送中的任意分组的序列标识符,以及被接收但尚未确认的任意分组的序列标识符。10.根据权利要求1所述的系统,其中所述指令使得所述处理器:保持在开始对所述第一应用实例的去激活和完成对所述第二应用实例的激活之间的封锁时段,在所述封锁时段期间所述第一应用实例和所述第二...

【专利技术属性】
技术研发人员:马克·德克吕夫克里斯托弗·阿尔费尔德威廉·埃文斯迈克尔·马蒂
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1