CN111435302A - 一种应用程序的处理方法及装置 - Google Patents
一种应用程序的处理方法及装置 Download PDFInfo
- Publication number
- CN111435302A CN111435302A CN201910032907.9A CN201910032907A CN111435302A CN 111435302 A CN111435302 A CN 111435302A CN 201910032907 A CN201910032907 A CN 201910032907A CN 111435302 A CN111435302 A CN 111435302A
- Authority
- CN
- China
- Prior art keywords
- target application
- application program
- memory
- running
- copy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用程序的处理方法及装置,该方法包括如下步骤:获得恢复运行态的目标应用程序的指示信息;根据该指示信息,获得用于恢复目标应用程序的资源信息;根据资源信息恢复目标应用程序,获得运行态的目标应用程序副本;获取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中。通过使用该方法,可大幅缩短获得运行态的目标应用程序副本的时间,提高了针对目标应用程序进行扩容处理的时效性和稳定性,有效降低了扩容处理的复杂程度。
Description
技术领域
本申请涉及应用程序服务技术领域,具体涉及一种应用程序的处理方法。本申请同时涉及一种应用程序的处理装置以及一种电子设备。本申请还涉及一种应用程序的弹性运行方法、一种应用程序的弹性运行装置以及一种电子设备。本申请还涉及一种用于响应应用程序扩容的方法、一种用于响应应用程序扩容的装置以及一种电子设备。
背景技术
在云计算等应用服务场景中,需要根据业务流量对应用程序进行扩容或缩容等弹性处理,对应用程序进行扩容处理是指当业务流量处于高峰时,将一个应用程序副本复制为多个应用程序副本,并且使该多个应用程序副本处于运行状态;对应用程序进行缩容是指在业务流量处于低谷时,将多个应用程序副本缩减为满足服务要求的少量应用程序副本,通过该种方式动态调整应用程序的运行,实现计算资源的按需分配。
现有对应用程序进行弹性处理的方法为在需要进行扩容的设备上对应用程序进行冷启动,并且采用微服务和函数计算等方式对应用程序进行逻辑拆分部署,例如将大的应用程序拆分为多个小的应用程序。
上述对应用程序进行弹性处理的方法存在以下不足:
1、对应用程序进行冷启动的过程包含应用的加载,启动,初始化,预热等阶段,其所消耗的时间至少为分钟级,影响对应用程序进行扩容或缩容的效率,无法按照业务流量及时对应用程序进行扩容或缩容等弹性处理;
2、对应用进行逻辑拆分部署的过程需要业务配合,并且对业务的侵入性较强,某些方案需要对应用程序的代码进行变更或拆分处理,增加了上述弹性处理的复杂度,并且对上述弹性处理的稳定性造成影响。
发明内容
本申请提供一种应用程序的处理方法,以解决现有的对应用程序进行弹性处理的过程中出现的消耗时间长以及弹性处理过程复杂度高的问题。本申请另外提供一种应用程序的弹性运行方法、一种应用程序的弹性运行装置以及一种电子设备。本申请还提供一种用于响应应用程序扩容的方法、一种用于响应应用程序扩容的装置以及一种电子设备。
本申请提供一种应用程序的处理方法,包括:
获得恢复运行态的目标应用程序的指示信息;
根据指示信息,获得用于恢复目标应用程序的资源信息,资源信息不包含目标应用程序的内存数据;
根据资源信息恢复目标应用程序,获得运行态的目标应用程序副本;
获取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中。
可选的,获得恢复运行态的目标应用程序的指示信息,包括:获得恢复运行态的目标应用程序对应的进程的指示信息;
根据指示信息,获得用于恢复目标应用程序的资源信息,包括:根据指示信息,获得用于恢复目标应用程序对应的进程的资源信息;
根据资源信息恢复目标应用程序,获得运行态的目标应用程序副本,包括:根据资源信息恢复目标应用程序对应的进程,获得运行态的进程副本;
获取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中,包括:获取与运行态的进程副本的运行需求相对应的内存数据,并将内存数据写入进程副本的地址空间中。
可选的,获取与运行态的进程副本的运行需求相对应的内存数据,并将内存数据写入进程副本的地址空间中,包括:
获得进程副本运行时针对地址空间的访问请求所触发的页错误信息;通过文件描述符管理页错误信息,并获得文件描述符的缺页事件;根据缺页事件,确定与内存访问请求相对应的、具有内存数据的第一内存页;读取第一内存页的内存数据,并将读取的第一内存页的内存数据写入进程副本的地址空间中。
可选的,获取与运行态的进程副本的运行需求相对应的内存数据,包括:
获取与进程副本的运行需求相对应的第一内存页的内存数据以及与第一内存页相关联的第二内存页的内存数据。
可选的,与第一内存页相关联的第二内存页包括如下中的至少一种:
与第一内存页相邻的第二内存页;
在第一内存页被访问之后的后续访问路径中,被访问的频率达到或超过预定访问频率阈值的第二内存页;
在第一内存页被访问之后的后续访问路径中,被访问的概率达到或超过预定访问概率阈值的第二内存页。
可选的,被访问的频率达到或超过预定访问频率阈值的第二内存页通过如下方式获得:
对在访问第一内存页之后针对其它内存页的访问次数进行计数;
将其它内存页中被访问次数达到或超过预定访问次数阈值的内存页确定为被访问的频率达到或超过预定访问频率阈值的第二内存页。
可选的,被访问的概率达到或超过预定访问概率阈值的第二内存页通过如下方式获得:
通过用于预测内存页访问概率的内存访问模型对在访问第一内存页之后访问的其它内存页进行访问概率预测,获得其它内存页的访问概率预测结果;
根据访问概率预测结果,从其它内存页中获得被访问的概率达到或超过预定访问概率阈值的第二内存页。
可选的,资源信息包括:进程的线程信息以及除内存数据之外的进程资源;根据资源信息恢复目标应用程序对应的进程,获得运行态的进程副本,包括:
提供用于恢复目标应用程序对应的进程的隔离环境;
在隔离环境中,根据线程信息创建进程树;
基于进程树恢复除内存数据之外的进程资源,获得初始进程副本;
将初始进程副本的运行状态切换为运行态,获得进程副本。
可选的,提供用于恢复目标应用程序对应的进程的隔离环境,包括:
创建用于恢复目标应用程序对应的进程的特定命名空间。
可选的,还包括:接收删除目标应用程序副本的指示信息;按照所示指示信息删除目标应用程序副本。
可选的,删除目标应用程序副本包括:删除预定数量的目标应用程序副本。
可选的,删除目标应用程序副本包括:按照预定时间删除预定数量的目标应用程序副本。
可选的,获得恢复运行态的目标应用程序的指示信息,包括:获得根据预定的快照文件存放设备中存放的运行态的目标应用程序的快照文件恢复运行态的目标应用程序的指示信息;根据指示信息,获得用于恢复目标应用程序的资源信息,包括:根据指示信息,从存放运行态的目标应用程序的快照文件的存放设备中获得用于恢复目标应用程序的资源信息;获取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中,包括:从存放运行态的目标应用程序的快照文件的存放设备中,读取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中。
本申请还提供一种应用程序的弹性运行方法,其特征在于,包括:
获得运行态的目标应用程序在内核中的数据;
将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件;
将运行态的目标应用程序的快照文件发送至预定的快照文件存放设备;
指示目标扩容设备根据快照文件存放设备中存放的运行态的目标应用程序的快照文件恢复目标应用程序。
可选的,将运行态的目标应用程序在内核中的数据存储至预定文件中,包括:将运行态的目标应用程序的文件句柄转储到预定文件中;将运行态的目标应用程序的线程信息转储到预定文件中;将运行态的目标应用程序地址空间转储到预定文件中;将运行态的目标应用程序在运行过程中所修改或创建的文件信息转储到预定文件中。
可选的,将运行态的目标应用程序地址空间转储到预定文件中,包括:将分配给运行态的目标应用程序的匿名内存数据以及匿名文件映射的内存区域所对应的内存数据转储到预定文件中。
可选的,获得运行态的目标应用程序在内核中的数据,包括:
采用冷启动的方式启动目标应用程序,获取处于可服务状态的运行态的目标应用程序在内核的数据结构。
可选的,在采用冷启动的方式启动目标应用程序之后,还包括:
预先将运行态的目标应用程序所需要的运行资源分配至预定位置处。
可选的,在将将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件之前,还包括:
回收未被运行态的目标应用程序使用的内存数据所占用的内存。
可选的,还包括:发出删除目标应用程序副本的指示信息。
可选的,发出删除目标应用程序副本的指示信息,包括:
发出删除预定数量的目标应用程序副本的指示信息。
可选的,发出删除运行态的目标应用程序副本的指示信息,包括:
发出按照预定时间删除预定数量的目标应用程序副本的指示信息。
本申请还提供一种用于响应应用程序扩容的方法,其特征在于,包括:
获得运行态的目标应用程序的快照文件;
获得目标扩容设备为获得资源信息发出的第一请求信息,资源信息用于恢复目标应用程序;
根据第一请求信息,从快照文件中获得资源信息,其中,资源信息不包含目标应用程序的内存数据;
向目标扩容设备返回资源信息;
获得目标扩容设备为获得内存数据发出的第二请求信息,内存数据是与运行态的目标应用程序副本的运行需求相对应的内存数据;
根据第二请求信息,向目标扩容设备返回内存数据。
本申请还提供一种应用程序的处理装置,其特征在于,包括:
指示信息获得单元,用于获得恢复运行态的目标应用程序的指示信息;
资源信息获得单元,用于根据指示信息,获得用于恢复目标应用程序的资源信息,资源信息不包含目标应用程序的内存数据;
副本获得单元,用于根据资源信息恢复目标应用程序,获得运行态的目标应用程序副本;
内存数据写入单元,用于获取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中。
本申请还提供一种电子设备,其特征在于,包括:
处理器;存储器,用于存储应用程序的处理程序,程序在被处理器读取执行时,执行如下操作:
获得恢复运行态的目标应用程序的指示信息;根据指示信息,获得用于恢复目标应用程序的资源信息,资源信息不包含目标应用程序的内存数据;根据资源信息恢复目标应用程序,获得运行态的目标应用程序副本;获取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中。
本申请还提供一种应用程序的弹性运行装置,其特征在于,包括:
数据获得单元,用于获得运行态的目标应用程序在内核中的数据;
快照文件生成单元,用于将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件;
快照文件发送单元,用于将运行态的目标应用程序的快照文件发送至预定的快照文件存放设备;
指示单元,用于指示目标扩容设备根据快照文件存放设备中存放的运行态的目标应用程序的快照文件恢复目标应用程序。
本申请还提供一种电子设备,其特征在于,包括:
处理器;存储器,用于存储应用程序的弹性运行程序,程序在被处理器读取执行时,执行如下操作:
获得运行态的目标应用程序在内核中的数据;
将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件;
将运行态的目标应用程序的快照文件发送至预定的快照文件存放设备;
指示目标扩容设备根据快照文件存放设备中存放的运行态的目标应用程序的快照文件恢复目标应用程序。
本申请还提供一种用于响应应用程序扩容的装置,其特征在于,包括:
快照文件获得单元,用于获得运行态的目标应用程序的快照文件;
第一请求信息获得单元,用于获得目标扩容设备为获得资源信息发出的第一请求信息,资源信息用于恢复目标应用程序;
资源信息获得单元,用于根据第一请求信息,从快照文件中获得资源信息,其中,资源信息不包含目标应用程序的内存数据;
资源信息返回单元,用于向目标扩容设备返回资源信息;
第二请求信息获得单元,用于获得目标扩容设备为获得内存数据发出的第二请求信息,内存数据是与运行态的目标应用程序副本的运行需求相对应的内存数据;
内存数据返回单元,用于根据第二请求信息,向目标扩容设备返回内存数据。
本申请还提供一种电子设备,其特征在于,包括:
处理器;存储器,用于存储响应应用程序扩容的程序,程序在被处理器读取执行时,执行如下操作:
获得运行态的目标应用程序的快照文件;
获得目标扩容设备为获得资源信息发出的第一请求信息,资源信息用于恢复目标应用程序;
根据第一请求信息,从快照文件中获得资源信息,其中,资源信息不包含目标应用程序的内存数据;
向目标扩容设备返回资源信息;
获得目标扩容设备为获得内存数据发出的第二请求信息,内存数据是与运行态的目标应用程序副本的运行需求相对应的内存数据;
根据第二请求信息,向目标扩容设备返回内存数据。
与现有技术相比,本申请具有以下优点:
本申请提供的应用程序的处理方法,在获得恢复运行态的目标应用程序的指示信息后,根据该指示信息获得用于恢复目标应用程序的、不包含内存数据的资源信息,然后根据资源信息恢复目标应用程序,获得运行态的目标应用程序副本,并且在后续运行过程中逐步获取与目标应用程序副本的运行需求相对应的内存数据,并将获取的内存数据写入目标应用程序副本的地址空间中。上述过程中,由于恢复目标应用程序时所需的资源信息不包含内存数据,因此可大幅缩短获得运行态的目标应用程序副本的时间,提高了针对目标应用程序进行扩容处理的时效性和稳定性,有效降低了扩容处理的复杂程度。
附图说明
图1是本申请实施例提供的示意图;
图2是本申请第一实施例提供的方法流程图;
图3是本申请第二实施例提供的方法流程图;
图4是本申请第三实施例提供的方法流程图;
图5是本申请第四实施例提供的装置单元框图;
图6是本申请第五实施例提供的电子设备示意图;
图7是本申请第六实施例提供的装置单元框图;
图8是本申请第七实施例提供的电子设备示意图;
图9是本申请第八实施例提供的装置单元框图;
图10是本申请第九实施例提供的电子设备示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在应用服务场景中,由于业务流量波动剧烈,因此需要对应用程序进行弹性处理,具体指的是根据业务流量的需求对应用程序进行扩容或缩容处理,扩容指的是将应用程序的副本复制为两个或多个副本,并使该两个或多个应用程序副本运行于具有扩容需求的设备上,该过程可满足业务流量增大时的应用运行需求;缩容指的是将应用程序的两个或多个副本收缩为一个副本,该过程可实现在业务流量萎缩时对未处于运行状态的应用程序进行资源释放,节约计算资源。
上述对应用程序进行扩容或缩容处理等弹性处理过程可分为垂直弹性处理和水平弹性处理。垂直弹性处理指的是对应用程序的扩容处理或缩容处理发生在同一个主机上,例如在同一主机上同时运行多个具有相同功能的应用程序;水平弹性处理指对应用程序的扩容处理或缩容处理发生在不同主机之间,该种跨主机的弹性处理适用于分布式集群中,如集群服务器。
在无服务器应用(Serverless)构架中的自动扩/缩容场景中,可以通过对应用程序的扩/缩容过程进行监控和管理的弹性调度平台提供应用程序的扩/缩容服务。现有的扩容过程大多采用冷启动的方式启动需要扩容的应用程序,该过程需要完整经历程序代码加载、启动应用程序、分配应用程序的运行资源以及对应用程序进行初始化等环节,所消耗的时间较长,极大地阻碍了上述弹性调度平台对应用程序的弹性处理能力,例如,应用程序的扩/缩容时间过长,则上述弹性调度平台需要提前较长时间在主机上部署大批应用程序副本,以此应对激增的业务流量,并且上述弹性调度平台无法在业务流量陷入低谷时及时对应用程序进行缩容,无法及时释放资源,将导致计算资源被浪费。
针对上述应用服务场景,为了提高应用程序的扩容或缩容等弹性处理效率,缩短弹性处理时间,本申请提供了一种应用程序的处理方法、与该方法相对应的应用程序的处理装置以及电子设备;本申请还提供一种应用程序的弹性运行方法、与该方法相对应的应用程序的弹性运行装置以及电子设备;本申请还提供一种用于响应应用程序扩容的方法、与该方法相对应的用于响应应用程序扩容的装置以及电子设备。以下提供实施例对所述方法、装置以及电子设备进行详细说明。
本申请第一实施例提供一种应用程序的处理方法,该方法的应用主体可以为针对应用程序具有扩容需求的目标扩容设备,例如集群服务器中的主机,图2为本申请第一实施例提供的应用程序的处理方法流程图,以下结合图2对本实施例提供的方法进行详细描述。以下描述所涉及的实施例是用来解释说明方法原理,不是实际使用的限定。
如图2所示,本实施例提供的应用程序的处理方法包括如下步骤:
S101,获得恢复运行态的目标应用程序的指示信息。
目标应用程序指的是与预定的业务流量需求相对应的、可用于进行扩容或缩容处理的应用程序;运行态的目标应用程序指的是处于运行状态的上述应用程序。本步骤用于获得恢复运行态的目标应用程序的指示信息,具体为目标扩容设备接收到对目标应用程序的扩容过程或缩容过程进行监控和管理的弹性调度平台所发出的指示信息,该指示信息的内容为:对目标应用程序进行恢复,以获得处于运行状态的目标应用程序。
在本实施例中,恢复运行态的目标应用程序的过程需要根据预定的快照文件存放设备中存放的运行态的目标应用程序的快照文件进行实现,因此,该指示信息的内容可以为:根据预定的快照文件存放设备中存放的运行态的目标应用程序的快照文件恢复运行态的目标应用程序。本实施例中,恢复运行态的目标应用程序,其实质为恢复运行态的目标应用程序对应的进程。
S102,根据上述指示信息,获得用于恢复目标应用程序的资源信息。
在上述步骤获得恢复运行态的目标应用程序的指示信息之后,本步骤用于根据上述指示信息,获得用于恢复目标应用程序的资源信息,该资源信息不包含目标应用程序的内存数据。
在本实施例中,获得用于恢复目标应用程序的资源信息的实质为获得用于恢复该目标应用程序对应的进程的资源信息,具体可以从存放所述运行态的目标应用程序对应的进程的快照文件的存放设备中获得用于恢复所述目标应用程序对应的进程的资源信息。例如,该存放设备可以为用于对上述目标应用程序对应的进程的快照文件进行远程管理的服务器,可向该服务器发出用于获得上述进程的除内存数据之外的资源信息的请求信息,并获得该服务器根据该请求信息而从上述快照文件中获取并返回的资源信息,该资源信息为目标应用程序对应的进程的线程信息以及除内存数据之外的进程资源,例如该进程在内核中的文件句柄以及进程在内核的其它兜底数据,文件句柄包含普通文件、套接字、eventfd、signalfd、pipe等系统调用函数以及用于数据传输的文件队列等多种文件形式;进程的线程信息包括线程的数据结构以及寄存器信息等,如果该进程的快照文件是对上述目标应用程序进行冷启动之后所创建的快照文件,则该进程资源还包括对应用程序进行冷启动和引流预热的过程中修改或创建的文件信息。
S103,根据上述资源信息恢复目标应用程序,获得运行态的目标应用程序副本。
在通过上述步骤获得用于恢复目标应用程序的资源信息之后,本步骤用于根据上资源信息恢复目标应用程序,获得运行态的目标应用程序副本,在本实施例中,其为根据目标应用程序对应的进程的线程信息以及除内存数据之外的进程资源恢复目标应用程序对应的进程,获得运行态的进程副本,该进程副本的地址空间仅包含虚拟内存地址,不包含真实内存数据。
上述根据资源信息恢复目标应用程序对应的进程,获得运行态的进程副本的过程具体包括如下内容:
首先,提供用于恢复目标应用程序对应的进程的隔离环境,具体为:在本地创建用于对目标应用程序对应的进程进行恢复的特定命名空间,隔离环境的数量与预生成的进程副本的数量一致,该过程可通过容器技术、虚拟机技术以及Unikernel技术等应用虚拟化技术中的一种来实现,Unikernel是通过使用专门的库操作系统来构建的单地址空间机器镜像。其中,在容器技术中,与目标应用程序相对应的版本的容器镜像可提供该目标应用程序运行时所需的各类文件,该版本的容器镜像可作为恢复多个目标应用程序的运行时所利用的隔离环境。
其次,在上述隔离环境中,根据线程信息创建进程树,获得进程的数据结构和虚拟地址空间。该过程中,进程的所有线程的PID需要保持一致,不能与其它进程发生冲突,具体可采用对创建进程的函数进行系统调用的方式创建进程树。
再次,基于进程树恢复除内存数据之外的进程资源,获得初始进程副本;例如,基于该进程树打开进程在内核中的文件句柄以及进程在内核的其它兜底数据,该文件句柄为目标应用程序运行时所需要的代码文件以及数据文件等,该代码文件以及数据文件需要放置在与运行态的目标应用程序相同的路径上。
最后,将初始进程副本的运行状态切换为运行态,获得运行态的进程副本。
由于上述获得运行态的进程副本的过程仅需要启动进程时所必需的进程树和文件句柄等少量数据结构信息,不需要解析地址空间的真实内存数据,因此,可在毫秒等级的时间内获得上述运行态的进程副本。
S104,获取与目标应用程序副本的运行需求相对应的内存数据,并将该内存数据写入目标应用程序副本的地址空间中。
在上述步骤获得运行态的目标应用程序副本之后,本步骤用于获取与目标应用程序副本的运行需求相对应的内存数据,并将该内存数据写入目标应用程序副本的地址空间中。在本实施例中,该过程实质为:获取与运行态的进程副本的运行需求相对应的内存数据,并将该内存数据写入进程副本的地址空间中,获取内存数据具体可通过从存放运行态的目标应用程序所对应的进程的快照文件的存放设备中读取与进程副本的运行需求相对应的内存数据,如图1所示,该快照文件的存放设备可以是为进程的快照文件提供远程服务的快照服务器。
本实施例中,通过页错误机制实现上述获取内存数据的过程,其包括如下内容:
首先,获得该进程副本运行时针对其地址空间的访问请求所触发的页错误信息,在进程副本恢复至运行态后,由于该进程副本的地址空间仅包含虚拟内存地址,不包含真正的内存数据,在对该进程副本的地址空间进行访问时,会不断访问该虚拟内存地址,该过程将触发页错误,获得页错误信息。
其次,通过文件描述符管理上述触发的页错误信息,并获得上述文件描述符的缺页事件,该过程可通过userfaultfd功能实现,userfaultfd功能提供了一种将内核触发的页错误信息交付给用户态进行处理的机制,通过文件描述符在内核态和用户态之间进行通信,即,将触发的页错误信息传递给文件描述符,通过该文件描述符对页错误信息进行管理,并且,可通过读取该文件描述符的内容获得该文件描述符的缺页事件。
根据上述读取的文件描述符的缺页事件,确定与内存访问请求相对应的、具有内存数据的第一内存页,即文件描述符中的缺页事件所对应的内存页即为具有真实内存数据的第一内存页。
最后,在存储有真实内存数据的存放设备中读取上述第一内存页的内存数据,并将读取的第一内存页的内存数据写入上述进程副本的地址空间中,该存储有真实内存数据的存放设备为存放运行态的目标应用程序所对应的进程的快照文件的存放设备。
在本实施例中,当获得运行态的进程副本后,在处理第一个业务请求时,为了服务该业务请求,会触发大量的页错误信息,因此会增加内存访问请求的响应时间,因此,上述获取与运行态的进程副本的运行需求相对应的内存数据的过程为:获取与进程副本的运行需求相对应的第一内存页的内存数据以及与第一内存页相关联的第二内存页的内存数据,与第一内存页相关联的第二内存页可以为如下中的至少一种:
一、在进程的地址空间中与上述第一内存页相邻的第二内存页,进程在访问第一内存页后,连续访问与第一内存页相邻的内存页的可能性较大,因此,在获取第一内存页时同时获取与其相邻的第二内存页可以减少页错误信息的数量,缩短内存访问请求的响应时间。
二、在第一内存页被访问之后的后续访问路径中,被访问的频率达到或超过预定访问频率阈值的第二内存页,例如,用于为进程的快照文件提供远程服务的快照服务器可以为大量针对目标应用程序的扩容任务提供服务,其可维护访问某内存页之后的后续访问路径,具体方法为:对在访问所述第一内存页之后针对其它内存页的访问次数进行计数;将其它内存页中被访问次数达到或超过预定访问次数阈值的内存页确定为被访问的频率达到或超过预定访问频率阈值的第二内存页。
三、在第一内存页被访问之后的后续访问路径中,被访问的概率达到或超过预定访问概率阈值的第二内存页。例如,上述快照服务器对内存页面访问记录进行训练建模,获得用于预测内存页访问概率的内存访问模型,通过该内存访问模型对在访问第一内存页之后访问的其它内存页进行访问概率预测,获得其它内存页的访问概率预测结果;根据该访问概率预测结果,从其它内存页中获得被访问的概率达到或超过预定访问概率阈值的第二内存页。
在本实施例中,目标扩容设备还可接收删除该运行态的目标应用程序副本的指示信息,并且按照该指示信息删除所述运行态的目标应用程序副本。删除该运行态的目标应用程序副本的过程可以为:删除预定数量的运行态的目标应用程序副本,进一步的,还可以为按照预定时间删除预定数量的运行态的目标应用程序副本。例如,当集群服务器的业务流量降低时,相应的针对目标应用程序的运行需求下降,因此目标扩容设备可接收到来自弹性调度平台发出的在预定时间删除预定数量的运行态的目标应用程序副本的指示信息,并且按照该指示信息执行相应的删除操作。通过该种方式,在业务流量陷入低谷时可及时对目标扩容设备上的目标应用程序进行缩容处理,及时释放资源,避免集群服务器的主机的计算资源被浪费。
本实施例提供的应用程序的处理方法,在获得恢复运行态的目标应用程序的指示信息后,根据该指示信息获得用于恢复目标应用程序的、不包含内存数据的资源信息,然后根据资源信息恢复目标应用程序,获得运行态的目标应用程序副本,并且在后续运行过程中逐步获取与目标应用程序副本的运行需求相对应的内存数据,并将获取的内存数据写入目标应用程序副本的地址空间中。上述过程如图1中所示,由于恢复目标应用程序时所需的资源信息不包含内存数据,因此可大幅缩短获得运行态的目标应用程序副本的时间,提高了针对目标应用程序进行扩容处理的时效性和稳定性,有效降低了扩容处理的复杂程度。
本申请第二实施例提供一种应用程序的弹性运行方法,该方法的实施主体可以为对应用程序的扩容或缩容过程进行管理的弹性调度平台,如图3所示,该方法包括如下步骤:
S201,获得运行态的目标应用程序的快照文件。
本步骤用于获得处于运行态的目标应用程序的快照文件,可通过如下两个阶段实现该步骤:首先,获得运行态的目标应用程序在内核中的数据;其次,将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件。上述两个阶段可通过不同的应用节点分别实施,例如,可以由第一应用节点获得运行态的目标应用程序在内核中的数据,并将获得的内容传输至第二应用节点,由该第二应用节点生成上述快照文件;或者在同一应用节点中实现上述两个阶段。
上述获得运行态的目标应用程序在内核中的数据,具体可采用冷启动的方式启动所述目标应用程序,使该目标应用程序处于可服务状态之后,获取处于可服务状态的该目标应用程序在内核的数据结构。冷启动的过程实质为对目标应用程序进行的代码加载、启动、分配运行资源以及初始化等环节。在冷启动目标应用程序之后,为了使该目标应用程序在短时间内处于最佳运行状态,需要对其进行引流预热,具体为预先将上述处于运行状态的目标应用程序所需要的运行资源分配至预定位置处。
在本实施例中,上述处于运行状态的目标应用程序在内核中的数据为处于运行状态的目标应用程序对应的进程在内核中的数据,该进程在内核中的数据包括进程的文件句柄、进程的线程信息、进程的地址空间、进程在运行过程中修改或创建的文件信息以及进程在内核的其它兜底数据。文件句柄为目标应用程序的核心数据结构,应用程序文件句柄包含普通文件、套接字、Eventfd、signalfd、pipe等系统调用函数以及用于数据传输的文件队列等多种文件形式,其与应用程序的执行功能相对应,例如,当应用程序需要执行发送数据至其它服务器时,需打开网络文件句柄;进程的线程信息包括线程的数据结构以及寄存器信息等;进程的地址空间为进程的主要数据内容,其包含代码段、数据段、内存映射文件、共享内存段以及匿名内存映射数据等;进程在运行过程中修改或创建的文件信息指的是在对应用程序进行冷启动和引流预热的过程中所修改或创建的文件信息,可通过分层文件系统技术查找该文件信息。
上述将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件,可以是指将上述获得的运行态的目标应用程序对应的进程在内核中的数据存储至预定文件中,生成目标应用程序对应的进程的快照文件,该快照文件用于对进程的运行态信息进行记录。
上述将运行态的目标应用程序对应的进程在内核中的数据存储至预定文件中的过程具体包括:将运行态的目标应用程序对应的进程的文件句柄转储到预定文件中;将运行态的目标应用程序对应的进程的线程信息转储到预定文件中;将运行态的目标应用程序对应的进程的地址空间转储到预定文件中;将运行态的目标应用程序对应的进程在运行过程中所修改或创建的文件信息转储到预定文件中;将运行态的目标应用程序对应的进程在内核的其它兜底数据转储到预定文件中。
为了避免生成的快照文件过大,需要将运行态的目标应用程序对应的进程的地址空间选择性地转储到预定文件中,主要将分配给所述运行态的目标应用程序对应的进程的匿名内存数据以及匿名文件映射的内存区域所对应的内存数据转储到预定文件中,该过程可采用将用于导出内存数据的寄生虫代码注入到运行态的目标应用程序对应的进程的地址空间中的方法实现,对于非匿名的内存区域所对应的内存数据,则不进行转储。
为了进一步缩减上述快照文件的大小,在生成所述运行态的目标应用程序的快照文件之前,还可通过内存回收功能回收未被运行态的目标应用程序对应的进程所使用的内存数据所占用的内存,即回收掉无效内存。
S202,将运行态的目标应用程序的快照文件发送至预定的快照文件存放设备。
上述步骤生成运行态的目标应用程序的快照文件之后,本步骤用于将上述步骤生成的快照文件发送至预定的快照文件存放设备。快照文件存放设备指的是用于存放运行态的目标应用程序的快照文件、且能够根据外界对该快照文件的需求而提供相应服务的设备,在本实施例中如图1所示,该快照文件存放设备为用于对上述目标应用程序对应的进程的快照文件进行远程管理的服务器。
S203,指示目标扩容设备根据快照文件存放设备中存放的运行态的目标应用程序的快照文件恢复目标应用程序。
在上述步骤将运行态的目标应用程序的快照文件发送至预定的快照文件存放设备之后,本步骤用于指示针对上述目标应用程序具有运行需求的目标扩容设备根据上述快照文件恢复目标应用程序,恢复目标应用程序的过程即为生成与运行态的目标应用程序具有相同功能的运行态的应用程序副本,在本实施例中,该过程为指示目标扩容设备根据运行态的目标应用程序对应的进程的快照文件,生成与该进程具有相同功能的运行态的进程副本。具体可指示目标扩容设备根据上述快照文件生成指定数量的运行态进程副本,还可指示目标扩容设备在指定时间、根据上述快照文件生成指定数量的运行态进程副本。
在本实施例中,在对目标应用程序的运行需求下降时,还可指示目标扩容设备删除经上述过程恢复的应用程序副本,例如,根据实际业务流量判断需要删除的目标应用程序的数量,并指示目标扩容设备删除该数量的目标应用程序;并且,还可预先确定删除应用程序副本的时间,并指示目标扩容设备按照该预定时间删除预定数量的应用程序副本。
本申请第三实施例提供一种用于响应应用程序扩容的方法,该实施例的实施主体可以为用于存放上述目标应用程序的快照文件的存放设备,例如对上述目标应用程序的快照文件提供远程服务的快照服务器,如图4所示,该方法包括如下步骤:
S301,获得运行态的目标应用程序的快照文件。
该步骤用于获得运行态的目标应用程序的快照文件,该快照文件通过对处于运行状态的目标应用程序在内核中的数据进行转储而生成。在本实施例中,获得运行态的目标应用程序的快照文件指的是接收运行态的目标应用程序所对应的进程的快照文件。
S302,获得目标扩容设备为获得资源信息发出的第一请求信息,该资源信息用于恢复上述目标应用程序。该资源信息为目标应用程序对应的进程的线程信息以及除内存数据之外的进程资源,例如该进程在内核中的文件句柄以及进程在内核的其它兜底数据,文件句柄包含普通文件、套接字、Eventfd、signalfd、pipe等系统调用函数以及用于数据传输的文件队列等多种文件形式;进程的线程信息包括线程的数据结构以及寄存器信息等,如果该进程的快照文件是对上述目标应用程序进行冷启动之后所创建的快照文件,则该进程资源还包括对应用程序进行冷启动和引流预热的过程中修改或创建的文件信息。
S303,根据第一请求信息,从快照文件中获得上述资源信息,其中,该资源信息不包含目标应用程序的内存数据。
S304,向目标扩容设备返回上述资源信息。
S305,获得目标扩容设备为获得内存数据发出的第二请求信息,该内存数据是与运行态的目标应用程序副本的运行需求相对应的内存数据。
S306,根据第二请求信息,向目标扩容设备返回上述内存数据。
在向目标扩容设备返回上述内存数据时,还需返回与上述内存数据相关联的内存数据,例如,上述内存数据为第一内存页中的内存数据,则与该第一内存页的内存数据相关联的内存数据为如下中的至少一种:
一、在进程的地址空间中与上述第一内存页相邻的第二内存页,进程在访问第一内存页后,连续访问与第一内存页相邻的内存页的可能性较大,因此,在获取第一内存页时同时获取与其相邻的第二内存页可以减少页错误信息的数量,缩短内存访问请求的响应时间。
二、在第一内存页被访问之后的后续访问路径中,被访问的频率达到或超过预定访问频率阈值的第二内存页,例如,用于为进程的快照文件提供远程服务的快照服务器可以为大量针对目标应用程序的扩容任务提供服务,其可维护访问某内存页之后的后续访问路径,具体方法为:对在访问所述第一内存页之后针对其它内存页的访问次数进行计数;将其它内存页中被访问次数达到或超过预定访问次数阈值的内存页确定为被访问的频率达到或超过预定访问频率阈值的第二内存页。
三、在第一内存页被访问之后的后续访问路径中,被访问的概率达到或超过预定访问概率阈值的第二内存页。例如,上述快照服务器对内存页面访问记录进行训练建模,获得用于预测内存页访问概率的内存访问模型,通过该内存访问模型对在访问第一内存页之后访问的其它内存页进行访问概率预测,获得其它内存页的访问概率预测结果;根据该访问概率预测结果,从其它内存页中获得被访问的概率达到或超过预定访问概率阈值的第二内存页。
上述第一实施例提供了一种应用程序的处理方法,与之相对应的,本申请第实施例还提供了一种应用程序的处理装置,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的技术特征的细节部分请参见上述提供的方法实施例的对应说明即可,下述对装置实施例的描述仅仅是示意性的。
请参考图5理解该实施例,图5为本实施例提供的装置的单元框图,如图5所示,本实施例提供的装置包括:
指示信息获得单元401,用于获得恢复运行态的目标应用程序的指示信息;
资源信息获得单元402,用于根据指示信息,获得用于恢复目标应用程序的资源信息,资源信息不包含目标应用程序的内存数据;
副本获得单元403,用于根据资源信息恢复目标应用程序,获得运行态的目标应用程序副本;
内存数据写入单元404,用于获取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中。
可选的,获得恢复运行态的目标应用程序的指示信息,包括:获得恢复运行态的目标应用程序对应的进程的指示信息;
根据指示信息,获得用于恢复目标应用程序的资源信息,包括:根据指示信息,获得用于恢复目标应用程序对应的进程的资源信息;
根据资源信息恢复目标应用程序,获得运行态的目标应用程序副本,包括:根据资源信息恢复目标应用程序对应的进程,获得运行态的进程副本;
获取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中,包括:获取与运行态的进程副本的运行需求相对应的内存数据,并将内存数据写入进程副本的地址空间中。
可选的,获取与运行态的进程副本的运行需求相对应的内存数据,并将内存数据写入进程副本的地址空间中,包括:
获得进程副本运行时针对地址空间的访问请求所触发的页错误信息;通过文件描述符管理页错误信息,并获得文件描述符的缺页事件;根据缺页事件,确定与内存访问请求相对应的、具有内存数据的第一内存页;读取第一内存页的内存数据,并将读取的第一内存页的内存数据写入进程副本的地址空间中。
可选的,获取与运行态的进程副本的运行需求相对应的内存数据,包括:获取与进程副本的运行需求相对应的第一内存页的内存数据以及与第一内存页相关联的第二内存页的内存数据。
可选的,与第一内存页相关联的第二内存页包括如下中的至少一种:与第一内存页相邻的第二内存页;在第一内存页被访问之后的后续访问路径中,被访问的频率达到或超过预定访问频率阈值的第二内存页;在第一内存页被访问之后的后续访问路径中,被访问的概率达到或超过预定访问概率阈值的第二内存页。
可选的,被访问的频率达到或超过预定访问频率阈值的第二内存页通过如下方式获得:对在访问第一内存页之后针对其它内存页的访问次数进行计数;将其它内存页中被访问次数达到或超过预定访问次数阈值的内存页确定为被访问的频率达到或超过预定访问频率阈值的第二内存页。
可选的,被访问的概率达到或超过预定访问概率阈值的第二内存页通过如下方式获得:
通过用于预测内存页访问概率的内存访问模型对在访问第一内存页之后访问的其它内存页进行访问概率预测,获得其它内存页的访问概率预测结果;根据访问概率预测结果,从其它内存页中获得被访问的概率达到或超过预定访问概率阈值的第二内存页。
可选的,资源信息包括:进程的线程信息以及除内存数据之外的进程资源;根据资源信息恢复目标应用程序对应的进程,获得运行态的进程副本,包括:提供用于恢复目标应用程序对应的进程的隔离环境;在隔离环境中,根据线程信息创建进程树;基于进程树恢复除内存数据之外的进程资源,获得初始进程副本;将初始进程副本的运行状态切换为运行态,获得进程副本。
可选的,提供用于恢复目标应用程序对应的进程的隔离环境,包括:创建用于恢复目标应用程序对应的进程的特定命名空间。
可选的,还包括:接收删除目标应用程序副本的指示信息;按照所示指示信息删除目标应用程序副本。可选的,删除目标应用程序副本包括:删除预定数量的目标应用程序副本。可选的,删除目标应用程序副本包括:按照预定时间删除预定数量的目标应用程序副本。
可选的,获得恢复运行态的目标应用程序的指示信息,包括:获得根据预定的快照文件存放设备中存放的运行态的目标应用程序的快照文件恢复运行态的目标应用程序的指示信息;
根据指示信息,获得用于恢复目标应用程序的资源信息,包括:根据指示信息,从存放运行态的目标应用程序的快照文件的存放设备中获得用于恢复目标应用程序的资源信息;
获取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中,包括:从存放运行态的目标应用程序的快照文件的存放设备中,读取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中。
在上述的实施例中,提供了一种应用程序的处理方法以及一种应用程序的处理装置,此外,本申请第五实施例还提供一种电子设备,该电子设备实施例如下:请参考图6理解本实施例,图6为本实施例提供的电子设备的示意图。
如图6所示,电子设备包括:处理器501;存储器502;
存储器502,用于存储应用程序的处理程序,程序在被处理器读取执行时,执行如下操作:获得恢复运行态的目标应用程序的指示信息;根据指示信息,获得用于恢复目标应用程序的资源信息,资源信息不包含目标应用程序的内存数据;根据资源信息恢复目标应用程序,获得运行态的目标应用程序副本;获取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中。
可选的,获得恢复运行态的目标应用程序的指示信息,包括:获得恢复运行态的目标应用程序对应的进程的指示信息;
根据指示信息,获得用于恢复目标应用程序的资源信息,包括:根据指示信息,获得用于恢复目标应用程序对应的进程的资源信息;
根据资源信息恢复目标应用程序,获得运行态的目标应用程序副本,包括:根据资源信息恢复目标应用程序对应的进程,获得运行态的进程副本;
获取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中,包括:获取与运行态的进程副本的运行需求相对应的内存数据,并将内存数据写入进程副本的地址空间中。
可选的,获取与运行态的进程副本的运行需求相对应的内存数据,并将内存数据写入进程副本的地址空间中,包括:
获得进程副本运行时针对地址空间的访问请求所触发的页错误信息;通过文件描述符管理页错误信息,并获得文件描述符的缺页事件;根据缺页事件,确定与内存访问请求相对应的、具有内存数据的第一内存页;读取第一内存页的内存数据,并将读取的第一内存页的内存数据写入进程副本的地址空间中。
可选的,获取与运行态的进程副本的运行需求相对应的内存数据,包括:获取与进程副本的运行需求相对应的第一内存页的内存数据以及与第一内存页相关联的第二内存页的内存数据。
可选的,与第一内存页相关联的第二内存页包括如下中的至少一种:与第一内存页相邻的第二内存页;在第一内存页被访问之后的后续访问路径中,被访问的频率达到或超过预定访问频率阈值的第二内存页;在第一内存页被访问之后的后续访问路径中,被访问的概率达到或超过预定访问概率阈值的第二内存页。
可选的,被访问的频率达到或超过预定访问频率阈值的第二内存页通过如下方式获得:
对在访问第一内存页之后针对其它内存页的访问次数进行计数;
将其它内存页中被访问次数达到或超过预定访问次数阈值的内存页确定为被访问的频率达到或超过预定访问频率阈值的第二内存页。
可选的,被访问的概率达到或超过预定访问概率阈值的第二内存页通过如下方式获得:
通过用于预测内存页访问概率的内存访问模型对在访问第一内存页之后访问的其它内存页进行访问概率预测,获得其它内存页的访问概率预测结果;
根据访问概率预测结果,从其它内存页中获得被访问的概率达到或超过预定访问概率阈值的第二内存页。
可选的,资源信息包括:进程的线程信息以及除内存数据之外的进程资源;根据资源信息恢复目标应用程序对应的进程,获得运行态的进程副本,包括:
提供用于恢复目标应用程序对应的进程的隔离环境;
在隔离环境中,根据线程信息创建进程树;
基于进程树恢复除内存数据之外的进程资源,获得初始进程副本;
将初始进程副本的运行状态切换为运行态,获得进程副本。
可选的,提供用于恢复目标应用程序对应的进程的隔离环境,包括:创建用于恢复目标应用程序对应的进程的特定命名空间。
可选的,还包括:接收删除目标应用程序副本的指示信息;按照所示指示信息删除目标应用程序副本。
可选的,删除目标应用程序副本包括:删除预定数量的目标应用程序副本。可选的,删除目标应用程序副本包括:按照预定时间删除预定数量的目标应用程序副本。
可选的,获得恢复运行态的目标应用程序的指示信息,包括:获得根据预定的快照文件存放设备中存放的运行态的目标应用程序的快照文件恢复运行态的目标应用程序的指示信息;
根据指示信息,获得用于恢复目标应用程序的资源信息,包括:根据指示信息,从存放运行态的目标应用程序的快照文件的存放设备中获得用于恢复目标应用程序的资源信息;
获取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中,包括:从存放运行态的目标应用程序的快照文件的存放设备中,读取与目标应用程序副本的运行需求相对应的内存数据,并将内存数据写入目标应用程序副本的地址空间中。
上述第二实施例提供了一种应用程序的弹性运行方法,与之相对应的,本申请第六实施例还提供了一种应用程序的弹性运行装置,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的技术特征的细节部分请参见上述提供的方法实施例的对应说明即可,下述对装置实施例的描述仅仅是示意性的。
请参考图7理解该实施例,图7为本实施例提供的装置的单元框图,如图7所示,本实施例提供的装置包括:
快照文件获得单元601,用于获得运行态的目标应用程序的快照文件;
快照文件发送单元602,用于将运行态的目标应用程序的快照文件发送至预定的快照文件存放设备;
指示单元603,用于指示目标扩容设备根据快照文件存放设备中存放的运行态的目标应用程序的快照文件恢复目标应用程序。
可选的,快照文件获得单元601包括:数据获得子单元和快照文件生成子单元,数据获得子单元用于获得运行态的目标应用程序在内核中的数据;快照文件生成子单元用于将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件。
可选的,将运行态的目标应用程序在内核中的数据存储至预定文件中,包括:将运行态的目标应用程序的文件句柄转储到预定文件中;将运行态的目标应用程序的线程信息转储到预定文件中;将运行态的目标应用程序地址空间转储到预定文件中;将运行态的目标应用程序在运行过程中所修改或创建的文件信息转储到预定文件中。
可选的,将运行态的目标应用程序地址空间转储到预定文件中,包括:将分配给运行态的目标应用程序的匿名内存数据以及匿名文件映射的内存区域所对应的内存数据转储到预定文件中。
可选的,获得运行态的目标应用程序在内核中的数据,包括:
采用冷启动的方式启动目标应用程序,获取处于可服务状态的运行态的目标应用程序在内核的数据结构。
可选的,在采用冷启动的方式启动目标应用程序之后,还包括:
预先将运行态的目标应用程序所需要的运行资源分配至预定位置处。
可选的,在将将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件之前,还包括:
回收未被运行态的目标应用程序使用的内存数据所占用的内存。
可选的,还包括:发出删除目标应用程序副本的指示信息。
可选的,发出删除目标应用程序副本的指示信息,包括:
发出删除预定数量的目标应用程序副本的指示信息。
可选的,发出删除运行态的目标应用程序副本的指示信息,包括:
发出按照预定时间删除预定数量的目标应用程序副本的指示信息。
在上述的实施例中,提供了一种应用程序的弹性运行方法以及一种应用程序的弹性运行装置,此外,本申请第七实施例还提供一种电子设备,该电子设备实施例如下:请参考图8理解本实施例,图8为本实施例提供的电子设备的示意图。如图8所示,电子设备包括:处理器701;存储器702;
存储器702,用于存储应用程序的弹性运行程序,程序在被处理器读取执行时,执行如下操作:获得运行态的目标应用程序的快照文件;将运行态的目标应用程序的快照文件发送至预定的快照文件存放设备;指示目标扩容设备根据快照文件存放设备中存放的运行态的目标应用程序的快照文件恢复目标应用程序。
可选的,获得运行态的目标应用程序的快照文件,包括:
获得运行态的目标应用程序在内核中的数据;将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件;
可选的,将运行态的目标应用程序在内核中的数据存储至预定文件中,包括:将运行态的目标应用程序的文件句柄转储到预定文件中;将运行态的目标应用程序的线程信息转储到预定文件中;将运行态的目标应用程序地址空间转储到预定文件中;将运行态的目标应用程序在运行过程中所修改或创建的文件信息转储到预定文件中。
可选的,将运行态的目标应用程序地址空间转储到预定文件中,包括:将分配给运行态的目标应用程序的匿名内存数据以及匿名文件映射的内存区域所对应的内存数据转储到预定文件中。
可选的,获得运行态的目标应用程序在内核中的数据,包括:采用冷启动的方式启动目标应用程序,获取处于可服务状态的运行态的目标应用程序在内核的数据结构。
可选的,在采用冷启动的方式启动目标应用程序之后,还包括:
预先将运行态的目标应用程序所需要的运行资源分配至预定位置处。
可选的,在将将运行态的目标应用程序在内核中的数据存储至预定文件中,生成运行态的目标应用程序的快照文件之前,还包括:
回收未被运行态的目标应用程序使用的内存数据所占用的内存。
可选的,还包括:发出删除目标应用程序副本的指示信息。
可选的,发出删除目标应用程序副本的指示信息,包括:发出删除预定数量的目标应用程序副本的指示信息。
可选的,发出删除运行态的目标应用程序副本的指示信息,包括:
发出按照预定时间删除预定数量的目标应用程序副本的指示信息。
上述第三实施例提供了一种用于响应应用程序扩容的方法,与之相对应的,本申请第八实施例还提供了一种用于响应应用程序扩容的装置,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的技术特征的细节部分请参见上述提供的方法实施例的对应说明即可,下述对装置实施例的描述仅仅是示意性的。
请参考图9理解该实施例,图9为本实施例提供的装置的单元框图,如图9所示,本实施例提供的装置包括:
快照文件获得单元801,用于获得运行态的目标应用程序的快照文件;
第一请求信息获得单元802,用于获得目标扩容设备为获得资源信息发出的第一请求信息,资源信息用于恢复目标应用程序;
资源信息获得单元803,用于根据第一请求信息,从快照文件中获得资源信息,其中,资源信息不包含目标应用程序的内存数据;
资源信息返回单元804,用于向目标扩容设备返回资源信息;
第二请求信息获得单元805,用于获得目标扩容设备为获得内存数据发出的第二请求信息,内存数据是与运行态的目标应用程序副本的运行需求相对应的内存数据;
内存数据返回单元806,用于根据第二请求信息,向目标扩容设备返回内存数据。
在上述的实施例中,提供了一种用于响应应用程序扩容的方法以及一种用于响应应用程序扩容的装置,此外,本申请第九实施例还提供一种电子设备,该电子设备实施例如下:
请参考图10理解本实施例,图10为本实施例提供的电子设备的示意图。
如图10所示,电子设备包括:处理器901;存储器902;
存储器902,用于存储用于响应应用程序扩容的程序,程序在被处理器读取执行时,执行如下操作:
获得运行态的目标应用程序的快照文件;
获得目标扩容设备为获得资源信息发出的第一请求信息,资源信息用于恢复目标应用程序;
根据第一请求信息,从快照文件中获得资源信息,其中,资源信息不包含目标应用程序的内存数据;
向目标扩容设备返回资源信息;
获得目标扩容设备为获得内存数据发出的第二请求信息,内存数据是与运行态的目标应用程序副本的运行需求相对应的内存数据;
根据第二请求信息,向目标扩容设备返回内存数据。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
Claims (30)
1.一种应用程序的处理方法,其特征在于,包括:
获得恢复运行态的目标应用程序的指示信息;
根据所述指示信息,获得用于恢复所述目标应用程序的资源信息;
根据所述资源信息恢复所述目标应用程序,获得运行态的目标应用程序副本;
获取与所述目标应用程序副本的运行需求相对应的内存数据,并将所述内存数据写入所述目标应用程序副本的地址空间中。
2.根据权利要求1所述的方法,其特征在于,所述获得恢复运行态的目标应用程序的指示信息,包括:获得恢复运行态的目标应用程序对应的进程的指示信息;
所述根据所述指示信息,获得用于恢复所述目标应用程序的资源信息,包括:根据所述指示信息,获得用于恢复所述目标应用程序对应的进程的资源信息;
所述根据所述资源信息恢复所述目标应用程序,获得运行态的目标应用程序副本,包括:根据所述资源信息恢复所述目标应用程序对应的进程,获得运行态的进程副本;
所述获取与所述目标应用程序副本的运行需求相对应的内存数据,并将所述内存数据写入所述目标应用程序副本的地址空间中,包括:获取与所述运行态的进程副本的运行需求相对应的内存数据,并将所述内存数据写入所述进程副本的地址空间中。
3.根据权利要求2所述的方法,其特征在于,所述获取与所述运行态的进程副本的运行需求相对应的内存数据,并将所述内存数据写入所述进程副本的地址空间中,包括:
获得所述进程副本运行时针对所述地址空间的访问请求所触发的页错误信息;
通过文件描述符管理所述页错误信息,并获得所述文件描述符的缺页事件;
根据所述缺页事件,确定与所述内存访问请求相对应的、具有内存数据的第一内存页;
读取所述第一内存页的内存数据,并将读取的所述第一内存页的内存数据写入所述进程副本的地址空间中。
4.根据权利要求2所述的方法,其特征在于,所述获取与所述运行态的进程副本的运行需求相对应的内存数据,包括:
获取与所述进程副本的运行需求相对应的第一内存页的内存数据以及与所述第一内存页相关联的第二内存页的内存数据。
5.根据权利要求4所述的方法,其特征在于,所述与所述第一内存页相关联的第二内存页包括如下中的至少一种:
与所述第一内存页相邻的第二内存页;
在所述第一内存页被访问之后的后续访问路径中,被访问的频率达到或超过预定访问频率阈值的第二内存页;
在所述第一内存页被访问之后的后续访问路径中,被访问的概率达到或超过预定访问概率阈值的第二内存页。
6.根据权利要求5所述的方法,其特征在于,所述被访问的频率达到或超过预定访问频率阈值的第二内存页通过如下方式获得:
对在访问所述第一内存页之后针对其它内存页的访问次数进行计数;
将所述其它内存页中被访问次数达到或超过预定访问次数阈值的内存页确定为被访问的频率达到或超过预定访问频率阈值的第二内存页。
7.根据权利要求5所述的方法,其特征在于,所述被访问的概率达到或超过预定访问概率阈值的第二内存页通过如下方式获得:
通过用于预测内存页访问概率的内存访问模型对在访问所述第一内存页之后访问的其它内存页进行访问概率预测,获得所述其它内存页的访问概率预测结果;
根据访问概率预测结果,从所述其它内存页中获得所述被访问的概率达到或超过预定访问概率阈值的第二内存页。
8.根据权利要求2所述的方法,其特征在于,所述资源信息包括:所述进程的线程信息以及除内存数据之外的进程资源;所述根据所述资源信息恢复所述目标应用程序对应的进程,获得运行态的进程副本,包括:
提供用于恢复所述目标应用程序对应的进程的隔离环境;
在所述隔离环境中,根据所述线程信息创建进程树;
基于所述进程树恢复所述除内存数据之外的进程资源,获得初始进程副本;
将所述初始进程副本的运行状态切换为运行态,获得进程副本。
9.根据权利要求8所述的方法,其特征在于,所述提供用于恢复所述目标应用程序对应的进程的隔离环境,包括:
创建用于恢复所述目标应用程序对应的进程的特定命名空间。
10.根据权利要求1所述的方法,其特征在于,还包括:
接收删除所述目标应用程序副本的指示信息;
按照所示指示信息删除所述目标应用程序副本。
11.根据权利要求10所述的方法,其特征在于,所述删除所述目标应用程序副本包括:
删除预定数量的目标应用程序副本。
12.根据权利要求10所述的方法,其特征在于,所述删除所述目标应用程序副本包括:
按照预定时间删除预定数量的目标应用程序副本。
13.根据权利要求1-12任一项所述的方法,其特征在于,所述获得恢复运行态的目标应用程序的指示信息,包括:获得根据预定的快照文件存放设备中存放的运行态的目标应用程序的快照文件恢复所述运行态的目标应用程序的指示信息;
所述根据所述指示信息,获得用于恢复所述目标应用程序的资源信息,包括:根据所述指示信息,从存放所述运行态的目标应用程序的快照文件的存放设备中获得用于恢复所述目标应用程序的资源信息;
所述获取与所述目标应用程序副本的运行需求相对应的内存数据,并将所述内存数据写入所述目标应用程序副本的地址空间中,包括:从存放所述运行态的目标应用程序的快照文件的存放设备中,读取与所述目标应用程序副本的运行需求相对应的内存数据,并将所述内存数据写入所述目标应用程序副本的地址空间中。
14.一种应用程序的弹性运行方法,其特征在于,包括:
获得运行态的目标应用程序的快照文件;
将所述运行态的目标应用程序的快照文件发送至预定的快照文件存放设备;
指示目标扩容设备根据所述快照文件存放设备中存放的所述运行态的目标应用程序的快照文件恢复所述目标应用程序。
15.根据权利要求14所述的方法,其特征在于,所述获得运行态的目标应用程序的快照文件,包括:
获得运行态的目标应用程序在内核中的数据;
将所述运行态的目标应用程序在内核中的数据存储至预定文件中,生成所述运行态的目标应用程序的快照文件。
16.根据权利要求15所述的方法,其特征在于,所述将所述运行态的目标应用程序在内核中的数据存储至预定文件中,包括:
将所述运行态的目标应用程序的文件句柄转储到预定文件中;
将所述运行态的目标应用程序的线程信息转储到预定文件中;
将所述运行态的目标应用程序地址空间转储到预定文件中;
将所述运行态的目标应用程序在运行过程中所修改或创建的文件信息转储到预定文件中。
17.根据权利要求16所述的方法,其特征在于,所述将所述运行态的目标应用程序地址空间转储到预定文件中,包括:
将分配给所述运行态的目标应用程序的匿名内存数据以及匿名文件映射的内存区域所对应的内存数据转储到预定文件中。
18.根据权利要求15所述的方法,其特征在于,所述获得运行态的目标应用程序在内核中的数据,包括:
采用冷启动的方式启动所述目标应用程序,获取处于可服务状态的运行态的目标应用程序在内核的数据结构。
19.根据权利要求18所述的方法,其特征在于,在采用冷启动的方式启动所述目标应用程序之后,还包括:
预先将所述运行态的目标应用程序所需要的运行资源分配至预定位置处。
20.根据权利要求15所述的方法,其特征在于,在将所述运行态的目标应用程序在内核中的数据存储至预定文件中,生成所述运行态的目标应用程序的快照文件之前,还包括:
回收未被所述运行态的目标应用程序使用的内存数据所占用的内存。
21.根据权利要求14所述的方法,其特征在于,还包括:
发出删除目标应用程序副本的指示信息。
22.根据权利要求21所述的方法,其特征在于,所述发出删除目标应用程序副本的指示信息,包括:
发出删除预定数量的目标应用程序副本的指示信息。
23.根据权利要求21所述的方法,其特征在于,所述发出删除运行态的目标应用程序副本的指示信息,包括:
发出按照预定时间删除预定数量的目标应用程序副本的指示信息。
24.一种用于响应应用程序扩容的方法,其特征在于,包括:
获得运行态的目标应用程序的快照文件;
获得目标扩容设备为获得资源信息所发出的第一请求信息,所述资源信息用于恢复所述目标应用程序;
根据所述第一请求信息,从所述快照文件中获得所述资源信息;
向所述目标扩容设备返回所述资源信息;
获得所述目标扩容设备为获得内存数据发出的第二请求信息,所述内存数据是与运行态的目标应用程序副本的运行需求相对应的内存数据;
根据所述第二请求信息,向所述目标扩容设备返回所述内存数据。
25.一种应用程序的处理装置,其特征在于,包括:
指示信息获得单元,用于获得恢复运行态的目标应用程序的指示信息;
资源信息获得单元,用于根据所述指示信息,获得用于恢复所述目标应用程序的资源信息;
副本获得单元,用于根据所述资源信息恢复所述目标应用程序,获得运行态的目标应用程序副本;
内存数据写入单元,用于获取与所述目标应用程序副本的运行需求相对应的内存数据,并将所述内存数据写入所述目标应用程序副本的地址空间中。
26.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储应用程序的处理程序,所述程序在被所述处理器读取执行时,执行如下操作:
获得恢复运行态的目标应用程序的指示信息;
根据所述指示信息,获得用于恢复所述目标应用程序的资源信息;
根据所述资源信息恢复所述目标应用程序,获得运行态的目标应用程序副本;
获取与所述目标应用程序副本的运行需求相对应的内存数据,并将所述内存数据写入所述目标应用程序副本的地址空间中。
27.一种应用程序的弹性运行装置,其特征在于,包括:
快照文件获得单元,用于获得运行态的目标应用程序的快照文件;
快照文件发送单元,用于将所述运行态的目标应用程序的快照文件发送至预定的快照文件存放设备;
指示单元,用于指示目标扩容设备根据所述快照文件存放设备中存放的所述运行态的目标应用程序的快照文件恢复所述目标应用程序。
28.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储应用程序的弹性运行程序,所述程序在被所述处理器读取执行时,执行如下操作:
获得运行态的目标应用程序的快照文件;
将所述运行态的目标应用程序的快照文件发送至预定的快照文件存放设备;
指示目标扩容设备根据所述快照文件存放设备中存放的所述运行态的目标应用程序的快照文件恢复所述目标应用程序。
29.一种用于响应应用程序扩容的装置,其特征在于,包括:
快照文件获得单元,用于获得运行态的目标应用程序的快照文件;
第一请求信息获得单元,用于获得目标扩容设备为获得资源信息发出的第一请求信息,所述资源信息用于恢复所述目标应用程序;
资源信息获得单元,用于根据所述第一请求信息,从所述快照文件中获得所述资源信息;
资源信息返回单元,用于向所述目标扩容设备返回所述资源信息;
第二请求信息获得单元,用于获得所述目标扩容设备为获得内存数据发出的第二请求信息,所述内存数据是与运行态的目标应用程序副本的运行需求相对应的内存数据;
内存数据返回单元,用于根据所述第二请求信息,向所述目标扩容设备返回所述内存数据。
30.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储响应应用程序扩容的程序,所述程序在被所述处理器读取执行时,执行如下操作:
获得运行态的目标应用程序的快照文件;
获得目标扩容设备为获得资源信息发出的第一请求信息,所述资源信息用于恢复所述目标应用程序;
根据所述第一请求信息,从所述快照文件中获得所述资源信息;
向所述目标扩容设备返回所述资源信息;
获得所述目标扩容设备为获得内存数据发出的第二请求信息,所述内存数据是与运行态的目标应用程序副本的运行需求相对应的内存数据;
根据所述第二请求信息,向所述目标扩容设备返回所述内存数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910032907.9A CN111435302B (zh) | 2019-01-14 | 2019-01-14 | 一种应用程序的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910032907.9A CN111435302B (zh) | 2019-01-14 | 2019-01-14 | 一种应用程序的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111435302A true CN111435302A (zh) | 2020-07-21 |
CN111435302B CN111435302B (zh) | 2023-06-20 |
Family
ID=71579955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910032907.9A Active CN111435302B (zh) | 2019-01-14 | 2019-01-14 | 一种应用程序的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111435302B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117407326A (zh) * | 2022-07-25 | 2024-01-16 | 华为技术有限公司 | 内存访问方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050005200A1 (en) * | 2003-03-12 | 2005-01-06 | Vladimir Matena | Method and apparatus for executing applications on a distributed computer system |
CN102736946A (zh) * | 2011-04-11 | 2012-10-17 | 阿里巴巴集团控股有限公司 | 一种应用节点的批量部署方法及装置 |
CN103327117A (zh) * | 2013-07-05 | 2013-09-25 | 百度在线网络技术(北京)有限公司 | 应用程序的跨系统运行方法和装置 |
US20130262387A1 (en) * | 2009-09-03 | 2013-10-03 | Commvault Systems, Inc. | Utilizing snapshots for access to databases and other applications |
CN104618164A (zh) * | 2015-02-12 | 2015-05-13 | 北京航空航天大学 | 云计算平台应用快速部署的管理方法 |
CN107908460A (zh) * | 2017-11-23 | 2018-04-13 | 平安科技(深圳)有限公司 | 虚拟机快速扩容方法、装置、设备以及存储介质 |
CN108009017A (zh) * | 2016-11-01 | 2018-05-08 | 阿里巴巴集团控股有限公司 | 一种应用链路的扩容方法、装置和系统 |
CN108023742A (zh) * | 2016-10-31 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 一种应用的扩容方法、装置和系统 |
US10169065B1 (en) * | 2016-06-29 | 2019-01-01 | Altera Corporation | Live migration of hardware accelerated applications |
-
2019
- 2019-01-14 CN CN201910032907.9A patent/CN111435302B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050005200A1 (en) * | 2003-03-12 | 2005-01-06 | Vladimir Matena | Method and apparatus for executing applications on a distributed computer system |
US20130262387A1 (en) * | 2009-09-03 | 2013-10-03 | Commvault Systems, Inc. | Utilizing snapshots for access to databases and other applications |
CN102736946A (zh) * | 2011-04-11 | 2012-10-17 | 阿里巴巴集团控股有限公司 | 一种应用节点的批量部署方法及装置 |
CN103327117A (zh) * | 2013-07-05 | 2013-09-25 | 百度在线网络技术(北京)有限公司 | 应用程序的跨系统运行方法和装置 |
CN104618164A (zh) * | 2015-02-12 | 2015-05-13 | 北京航空航天大学 | 云计算平台应用快速部署的管理方法 |
US10169065B1 (en) * | 2016-06-29 | 2019-01-01 | Altera Corporation | Live migration of hardware accelerated applications |
CN108023742A (zh) * | 2016-10-31 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 一种应用的扩容方法、装置和系统 |
CN108009017A (zh) * | 2016-11-01 | 2018-05-08 | 阿里巴巴集团控股有限公司 | 一种应用链路的扩容方法、装置和系统 |
CN107908460A (zh) * | 2017-11-23 | 2018-04-13 | 平安科技(深圳)有限公司 | 虚拟机快速扩容方法、装置、设备以及存储介质 |
Non-Patent Citations (2)
Title |
---|
王岩;汪晋宽;: "云存储中动态副本放置机制研究" * |
赵春扬;肖冰;郭进伟;钱卫宁;: "一致性协议在分布式数据库系统中的应用" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117407326A (zh) * | 2022-07-25 | 2024-01-16 | 华为技术有限公司 | 内存访问方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111435302B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10126946B1 (en) | Data protection object store | |
CN108701048B (zh) | 数据加载方法及装置 | |
US8805902B2 (en) | Managing snapshot storage pools | |
CN102594849B (zh) | 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置 | |
US8209290B1 (en) | Generic granular restore of application data from a volume image backup | |
US9354907B1 (en) | Optimized restore of virtual machine and virtual disk data | |
JP6882662B2 (ja) | マイグレーションプログラム、情報処理装置およびマイグレーション方法 | |
US20060136779A1 (en) | Object-based storage device with low process load and control method thereof | |
CN111221678B (zh) | Hbase数据备份/恢复系统、方法、装置及电子设备 | |
CN112000287B (zh) | 一种io请求处理装置、方法、设备及可读存储介质 | |
CN113220729B (zh) | 数据存储方法、装置、电子设备及计算机可读存储介质 | |
CN107533508B (zh) | 用于减少压缩存储器时的存储器承诺用量的方法和系统 | |
CN110704161B (zh) | 虚拟机创建方法、装置及计算机设备 | |
JP4225206B2 (ja) | 記憶装置の複製データ格納システムと複製データ格納プログラム | |
US20110307674A1 (en) | Apparatus and method for synchronizing a snapshot image | |
CN115098299B (zh) | 一种虚拟机的备份方法、容灾方法、装置及设备 | |
CN109324893B (zh) | 分配内存的方法和装置 | |
US20120047108A1 (en) | Point-in-time (pit) based thin reclamation support for systems with a storage usage map api | |
CN114265670A (zh) | 一种内存块整理方法、介质及计算设备 | |
US20060053260A1 (en) | Computing system with memory mirroring and snapshot reliability | |
CN111078127B (zh) | 数据迁移方法、系统及装置 | |
CN107832097B (zh) | 数据加载方法及装置 | |
US10853314B1 (en) | Overlay snaps | |
US20230376357A1 (en) | Scaling virtualization resource units of applications | |
CN111435302B (zh) | 一种应用程序的处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40033298 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |