跨应用生命周期的内存快照管理方法、装置、设备及介质转让专利
申请号 : CN202111339023.1
文献号 : CN113778695B
文献日 : 2022-04-29
发明人 : 林泽南 , 张天 , 王磊
申请人 : 深圳华锐分布式技术股份有限公司 , 华锐分布式技术(长沙)有限公司
摘要 :
权利要求 :
1.一种跨应用生命周期的内存快照管理方法,其特征在于,所述方法应用于集群服务器的内存管理器中,所述集群服务器中还包括多个处理服务器,所述内存管理器与每一所述处理服务器之间均建立网络连接以实现数据信息的传输,所述处理服务器用于运行应用程序,所述方法包括:
若接收到来自任一所述处理服务器的应用内存分配请求,在所述内存管理器的存储空间中分配与所述应用内存分配请求对应的存储单元;
为已被分配的所述存储单元添加数据锁以对所述存储单元进行锁定;
根据所述存储单元及所述应用内存分配请求生成对应的内存分配信息并存储至预置的管理空间;
根据预置的快照周期采集与所述管理空间中每一内存分配信息对应应用程序的运行数据并输入所述存储空间中对应的存储单元进行存储;每一所述存储单元单独存储每一所述应用程序对应的运行数据;
实时检测与每一所述处理服务器中所运行应用程序的运行状态是否出现异常;
若判断得到任一所述应用程序的运行状态出现异常,根据预存的应用框架数据表对与异常应用程序对应的存储单元进行数据解析,以得到与所述异常应用程序对应的应用运行解析数据;
根据所述管理空间中与所述异常应用程序对应的内存分配信息将所述应用运行解析数据恢复至任一其它未出现异常的处理服务器继续进行处理;
所述根据预存的应用框架数据表对与异常应用程序对应的存储单元进行数据解析,以得到与所述异常应用程序对应的应用运行解析数据,包括:从所述应用框架数据表中获取与所述异常应用程序对应的应用框架信息;
根据所述应用框架信息对所述存储空间与所述异常应用程序对应存储单元中所存储的运行数据进行数据结构解析,得到与所述异常应用程序对应的应用运行解析数据;
所述根据所述应用框架信息对所述存储空间与所述异常应用程序对应存储单元中所存储的运行数据进行数据结构解析包括:根据所述应用框架信息中的应用程序基本框架对所述运行数据进行结构划分得到多个数据段;根据所述应用框架信息中的数据类型分别对每一所述数据段进行数据解析,以将所述数据段中的数据信息转换为与所述数据类型对应的数据;
所述根据预置的快照周期采集与所述管理空间中每一内存分配信息对应应用程序的运行数据并输入所述存储空间中对应的存储单元进行存储,包括:若到达采集时间点,根据所述管理空间的管理数组中存储的内存分配信息确定与每一所述内存分配信息对应的数据采集锚点;所述采集时间点为与上一采集时间点之间间隔所述快照周期中周期时间的时间点;
根据所述数据采集锚点对每一所述内存分配信息对应应用程序中当前运行的数据进行采集,得到与每一所述内存分配信息对应的运行数据;
根据每一所述内存分配信息的运行数据分别对所述存储空间中与每一所述内存分配信息对应存储单元中所存储的数据进行更新;
所述根据所述存储单元及所述应用内存分配请求生成对应的内存分配信息并存储至预置的管理空间,包括:
获取所述存储单元中的单元管理信息及所述应用内存分配请求中的请求基础信息,进行组合以生成内存分配信息;
将所述内存分配信息存储至所述管理空间的管理数组中与所述单元管理信息对应的单元格。
2.根据权利要求1所述的跨应用生命周期的内存快照管理方法,其特征在于,所述根据所述管理空间中与所述异常应用程序对应的内存分配信息将所述应用运行解析数据恢复至任一其它未出现异常的处理服务器继续进行处理,包括:从所述管理空间与所述异常应用程序对应单元格中所存储的内存分配信息中获取与所述异常应用程序对应的恢复配置信息;
将所述应用运行解析数据发送至任一其它未出现异常的处理服务器,以使所述未出现异常的处理服务中的应用程序继续处理所述应用运行解析数据。
3.根据权利要求1所述的跨应用生命周期的内存快照管理方法,其特征在于,所述根据所述管理空间中与所述异常应用程序对应的内存分配信息将所述应用运行解析数据恢复至任一其它未出现异常的处理服务器继续进行处理之后,还包括:若接收到来自任一所述处理服务器的应用结束运行信息,获取所述管理空间的管理数组中与所述应用结束运行信息对应的内存分配信息作为目标内存分配信息;
删除所述存储空间中与所述目标内存分配信息对应的存储单元所添加的数据锁并清空所述存储单元中已存储的数据信息。
4.一种跨应用生命周期的内存快照管理装置,其特征在于,所述装置配置于集群服务器的内存管理器中,所述集群服务器中还包括多个处理服务器,所述内存管理器与每一所述处理服务器之间均建立网络连接以实现数据信息的传输,所述处理服务器用于运行应用程序,所述装置包括:
存储单元分配单元,用于若接收到来自任一所述处理服务器的应用内存分配请求,在所述内存管理器的存储空间中分配与所述应用内存分配请求对应的存储单元;
为已被分配的所述存储单元添加数据锁以对所述存储单元进行锁定;
内存分配信息存储单元,用于根据所述存储单元及所述应用内存分配请求生成对应的内存分配信息并存储至预置的管理空间;
运行数据存储单元,用于根据预置的快照周期采集与所述管理空间中每一内存分配信息对应应用程序的运行数据并输入所述存储空间中对应的存储单元进行存储;每一所述存储单元单独存储每一所述应用程序对应的运行数据;
运行状态异常检测单元,用于实时检测与每一所述处理服务器中所运行应用程序的运行状态是否出现异常;
应用运行解析数据获取单元,用于若判断得到任一所述应用程序的运行状态出现异常,根据预存的应用框架数据表对与异常应用程序对应的存储单元进行数据解析,以得到与所述异常应用程序对应的应用运行解析数据;
应用运行解析数据恢复单元,用于根据所述管理空间中与所述异常应用程序对应的内存分配信息将所述应用运行解析数据恢复至任一其它未出现异常的处理服务器继续进行处理;
所述应用运行解析数据获取单元包括子单元:应用框架信息获取单元,用于从所述应用框架数据表中获取与所述异常应用程序对应的应用框架信息;运行数据解析单元,用于根据所述应用框架信息对所述存储空间与所述异常应用程序对应存储单元中所存储的运行数据进行数据结构解析,得到与所述异常应用程序对应的应用运行解析数据;
所述根据所述应用框架信息对所述存储空间与所述异常应用程序对应存储单元中所存储的运行数据进行数据结构解析包括:根据所述应用框架信息中的应用程序基本框架对所述运行数据进行结构划分得到多个数据段;根据所述应用框架信息中的数据类型分别对每一所述数据段进行数据解析,以将所述数据段中的数据信息转换为与所述数据类型对应的数据;
所述运行数据存储单元包括子单元:数据采集锚点确定单元,用于若到达采集时间点,根据所述管理空间的管理数组中存储的内存分配信息确定与每一所述内存分配信息对应的数据采集锚点;所述采集时间点为与上一采集时间点之间间隔所述快照周期中周期时间的时间点;运行数据采集单元,用于根据所述数据采集锚点对每一所述内存分配信息对应应用程序中当前运行的数据进行采集,得到与每一所述内存分配信息对应的运行数据;存储数据更新单元,用于根据每一所述内存分配信息的运行数据分别对所述存储空间中与每一所述内存分配信息对应存储单元中所存储的数据进行更新;
所述根据所述存储单元及所述应用内存分配请求生成对应的内存分配信息并存储至预置的管理空间,包括:
获取所述存储单元中的单元管理信息及所述应用内存分配请求中的请求基础信息,进行组合以生成内存分配信息;
将所述内存分配信息存储至所述管理空间的管理数组中与所述单元管理信息对应的单元格。
5.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3中任一项所述的跨应用生命周期的内存快照管理方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时实现如权利要求1至3任一项所述的跨应用生命周期的内存快照管理方法。
说明书 :
跨应用生命周期的内存快照管理方法、装置、设备及介质
技术领域
背景技术
快速恢复应用程序的运行,最大程度地保存已运行的数据结果,提高数据的运行效率。然而
对于集群服务器中运行的多个应用程序而言,内存中各存储结构与集群服务器中所运行应
用程序之间关系错综复杂,导致从内存中获取到与异常应用程序对应的快照数据也无法顺
利恢复运行,这一技术方法对于高可用集群服务器的稳定性造成较大影响,现有技术方法
无法高效地获取异常应用程序在内存中对应的快照数据并恢复运行,导致快照数据恢复效
率低。因此,现有的技术方法中存在无法高效率获取快照数据并恢复运行的问题。
发明内容
内存管理器与每一所述处理服务器之间均建立网络连接以实现数据信息的传输,所述处理
服务器用于运行应用程序,方法包括:
运行解析数据;
到与所述异常应用程序对应的应用运行解析数据;
进行处理。
时实现上述第一方面所述的跨应用生命周期的内存快照管理方法。
第一方面所述的跨应用生命周期的内存快照管理方法。
对应的内存分配信息存储至管理空间,根据快照周期对管理空间中每一内存分配信息对应
应用程序的运行数据进行周期性采集并存储至对应存储单元中,实时检测应用程序运行状
态是否出现异常,若出现异常则根据应用框架数据表对异常应用程序对应的存储单元进行
数据解析得到应用运行解析数据后根据对应的内存分配信息恢复至其它处理服务器继续
进行处理。通过上述方法,可为不同应用分配存储单元以单独存储每一应用的运行数据,根
据所生成的内存分配信息对应用运行解析数据进行恢复处理,可高效获取内存中的快照数
据并恢复运行,大幅提高了对内存快照数据进行管理的效率。
附图说明
通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
具体实施方式
明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施
例,都属于本发明保护的范围。
体、步骤、操作、元素、组件和/或其集合的存在或添加。
下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
场景示意图;该跨应用生命周期的内存快照管理方法应用于集群服务器10的内存管理器11
中,该跨应用生命周期的内存快照管理方法通过安装于集群服务器10的内存管理器11中的
应用软件进行执行,集群服务器10中还包括多个处理服务器12,其中,集群服务器10构建的
多个处理服务器12互为备份,如可以是一个主处理服务器12与任意数量的备处理服务器组
合成集群服务器10,则处理服务器12基于相同的算法对相同的消息进行处理,内存管理器
11与每一所述处理服务器12之间均建立网络连接以实现数据信息的传输,所述处理服务器
12用于运行应用程序;集群服务器10即是用于执行跨应用生命周期的内存快照管理方法以
使应用程序稳定运行并为客户提供服务的服务器端,如企业或政府部门所构建的集群服务
器,内存管理器11即是用于对内存进行分配及管理的子服务器。如图1所示,该方法包括步
骤S110 S160。
~
可用于应用程序的运行信息进行存储;内存中还可配置有其他不可快照空间,不可快照空
间可用于数据库接口申请并使用。如处理服务器中应用程序启动时即需生成对应应用内存
分配请求并发送至内存管理器,内存管理器可接收任一处理服务器的应用内存分配请求,
并对应用内存分配请求分配对应的存储单元,存储空间中包含多个存储单元,存储单元即
可用于存储应用程序在处理数据过程中的运行数据。集群服务器中可配置主处理服务器及
一个或多个备处理服务器,处理服务器之间基于共识算法对相同的消息进行处理,每一个
运行了用户应用的处理服务器,有着各自的应用内存分配器实例。各自处理服务器的内存
分配器请求,由各自的内存分配器进行处理;当主处理服务器或备处理服务器接收到指定
的业务消息后,则会对对应业务消息进行处理的需求即会产生一个应用内存分配请求,应
用内存分配请求可以是应用在初始化过程中需要为该应用运行对内存区域进行初次分配
的请求,还可以是应用在处理消息时,根据业务处理流程的需求,需要重新调整所分配的内
存区域的请求。在整个集群中,由于 “状态机复制”的容错模型,因此每一个服务器的应用
状态应当大致相同。其中,内存管理器根据应用内存分配请求对存储单元进行分配可基于
lock inc操作实现,lock inc操作为内存管理器中处理单元(CPU单元)所提供的基于原子
操作的一个指令,基于该原子操作指令进行多线程处理时,即可保证对存储单元进行分配
的所有操作均是串行进行的。
息进行管理。
求基础信息,请求基础信息包含应用标识及请求时间等信息,可对获取到的单元管理信息
及请求基础信息并进行组合以生成内存分配信息。
存分配信息中单元编码相匹配的一个单元格,并将所生成的单元管理信息输入至与单元编
码相匹配的单元格中进行存储。
储。其中,快照周期即为对应用程序中运行数据进行采集的周期信息,快照周期中配置有周
期时间,如周期时间可以是5秒,则每隔5秒对每一内存分配信息对应的应用程序中的运行
数据进行一次采集。
之间间隔所述快照周期中周期时间的时间点。
一内存分配信息中应用程序各项数据进行采集的锚点,锚点可以是应用的与数据或消息处
理进度相关的一个位置信息,对每一应用程序需要采集对应的一项或多项数据,可根据内
存分配信息中应用标识确定对应的一个或多个项目标识,将项目标识与对应内存分配信息
中的处理服务器地址进行组合,以生成与该内存分配信息对应的数据采集锚点。
.132.44:801_ key1、115.**.132.44:801_ key4及115.**.132.44:801_ key9作为与该内
存分配信息对应的数据采集锚点。
序,则根据每一应用程序对应的数据采集锚点可分别采集得到每一应用程序对应的运行数
据。
元中已存储的数据进行更新,则此时存储单元内存储有对应应用程序最新的一组运行数
据。
相匹配,以判断应用程序的运行状态是否出现异常。
的应用运行解析数据。
的应用框架信息,应用框架信息即为对应用程序基本框架、数据类型进行描述的信息,根据
应用框架数据表即可对异常应用程序对应存储单元中所存储的运行数据进行数据解析,从
而得到对应的应用运行解析数据。
行信息进行解析。可根据异常应用程序的应用标识从应用框架数据表中获取与该应用标识
相匹配的应用框架信息。
据。
应用程序基本框架对运行数据进行结构划分得到多个数据段,并根据应用框架信息中的数
据类型分别对每一数据段进行数据解析,也即是将以二进制表示的数据转换为对应数据类
型(如数字类型、字母类型、汉字类型等)进行表示的数据,从而获取到每一数据段对应的解
析数据得到应用运行解析数据。
据继续进行处理,也即是对最新一次采集并保存的运行数据继续进行处理,提高对数据进
行处理的效率。也即是当前应用程序发生了崩溃等异常问题,因此未出现异常的处理服务
器可以将其它出现异常的处理服务器对应的内存快照信息复制过来,进行加载后继续进行
处理,这一过程也即实现了跨应用生命周期的数据处理,此处的应用程序生命周期,指的是
一个应用程序从开始运行到结束运行的整个过程。
分配信息中处理服务器地址、应用标识等配置信息。
次采集并保存的运行数据继续进行处理。
已存储的数据信息。通过这一处理过程,即可对已加锁的存储单元进行解锁,并释放存储单
元中的存储资源,之后其它应用程序可再次使用已解锁且已释放存储资源的存储单元。
信息存储至管理空间,根据快照周期对管理空间中每一内存分配信息对应应用程序的运行
数据进行周期性采集并存储至对应存储单元中,实时检测应用程序运行状态是否出现异
常,若出现异常则根据应用框架数据表对异常应用程序对应的存储单元进行数据解析得到
应用运行解析数据后根据对应的内存分配信息恢复至其它处理服务器继续进行处理。通过
上述方法,可为不同应用分配存储单元以单独存储每一应用的运行数据,根据所生成的内
存分配信息对应用运行解析数据进行恢复处理,可高效获取内存中的快照数据并恢复运
行,大幅提高了对内存快照数据进行管理的效率。
照管理装置用于执行前述的跨应用生命周期的内存快照管理方法的任一实施例。具体地,
请参阅图9,图9为本发明实施例提供的跨应用生命周期的内存快照管理装置的示意性框
图。
解析数据获取单元150和应用运行解析数据恢复单元160。
定。
信息进行组合以生成内存分配信息;存储单元,用于将所述内存分配信息存储至所述管理
空间的管理数组中与所述单元管理信息对应的单元格。
每一所述内存分配信息对应的数据采集锚点;所述采集时间点为与上一采集时间点之间间
隔所述快照周期中周期时间的时间点;运行数据采集单元,用于根据所述数据采集锚点对
每一所述内存分配信息对应应用程序中当前运行的数据进行采集,得到与每一所述内存分
配信息对应的运行数据;存储数据更新单元,用于根据每一所述内存分配信息的运行数据
分别对所述存储空间中与每一所述内存分配信息对应存储单元中所存储的数据进行更新。
以得到与所述异常应用程序对应的应用运行解析数据。
息;运行数据解析单元,用于根据所述应用框架信息对所述存储空间与所述异常应用程序
对应存储单元中所存储的运行数据进行数据结构解析,得到与所述异常应用程序对应的应
用运行解析数据。
继续进行处理。
息中获取与所述异常应用程序对应的恢复配置信息;应用运行解析数据发送单元,用于将
所述应用运行解析数据发送至任一其它未出现异常的处理服务器,以使所述未出现异常的
处理服务中的应用程序继续处理所述应用运行解析数据。
息,获取所述管理空间的管理数组中与所述应用结束运行信息对应的内存分配信息作为目
标内存分配信息;数据锁删除单元,用于删除所述存储空间中与所述目标内存分配信息对
应的存储单元所添加的数据锁并清空所述存储单元中已存储的数据信息。
分配对应的存储单元并生成对应的内存分配信息存储至管理空间,根据快照周期对管理空
间中每一内存分配信息对应应用程序的运行数据进行周期性采集并存储至对应存储单元
中,实时检测应用程序运行状态是否出现异常,若出现异常则根据应用框架数据表对异常
应用程序对应的存储单元进行数据解析得到应用运行解析数据后根据对应的内存分配信
息恢复至其它处理服务器继续进行处理。通过上述方法,可为不同应用分配存储单元以单
独存储每一应用的运行数据,根据所生成的内存分配信息对应用运行解析数据进行恢复处
理,可高效获取内存中的快照数据并恢复运行,大幅提高了对内存快照数据进行管理的效
率。
提供服务的集群服务器10。
为易失性的存储介质或非易失性的存储介质。
明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示
更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存
储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图10所示实施例一致,
在此不再赘述。
(Digital Signal Processor,DSP)、专用集成电路 (Application Specific Integrated
Circuit,ASIC)、现成可编程门阵列 (Field‑Programmable Gate Array,FPGA) 或者其它
可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是
微处理器或者该处理器也可以是任何常规的处理器等。
其中计算机程序被处理器执行时实现上述的跨应用生命周期的内存快照管理方法中所包
含的步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法
步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的
可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究
竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员
可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出
本发明的范围。
划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的
单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些
特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可
以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形
式连接。
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案
的目的。
单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体
现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一
台计算机设备 ( 可以是个人计算机,服务器,或者网络设备等 ) 执行本发明各个实施例
所述方法的全部或部分步骤。而前述的计算机可读存储介质包括:U 盘、移动硬盘、只读存
储器 (ROM,Read‑Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利
要求的保护范围为准。