进程更新方法和装置制造方法及图纸

技术编号:14850252 阅读:40 留言:0更新日期:2017-03-18 12:46
本发明专利技术公开了一种进程更新方法和装置。其中,进程更新方法包括:获取共享内存组的状态信息,其中,共享内存组包括至少两个共享内存块,每个共享内存块均存储有进程的键-值数据;根据状态信息确定共享内存组中每个共享内存块的调用状态,以确定处于被调用状态的第一共享内存块和处于未被调用状态的第二共享内存块;以及在第一共享内存块处于被调用状态时更新第二共享内存块中的键-值数据。通过本发明专利技术,解决了现有技术中键-值数据的加载方式导致进程更新不灵活的问题,进而达到了提高进程更新灵活性的效果。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,具体而言,涉及一种进程更新方法和装置
技术介绍
一般而言,进程的运行过程都需要加载一定数量的键-值(key-value)数据。例如:游戏进程会加载各个道具的价格、搜索引擎进程会加载离线挖掘的词典等等。当一个进程需要加载key-value数据时,通常的方法是:1)进程启动时从数据源读取数据,然后在进程内部进行转换并构建自己的私有数据结构;2)源数据更新时,进程销毁旧的数据结构,并重新执行构建程序。受key-value数据存储方式的限定,按照上述方式加载key-value数据的过程,每次进程启动都需要重新构建数据,更新线程和服务线程的相互影响,导致进程启动慢,恢复慢,进而造成进程更新不灵活。针对相关技术中键-值数据的加载方式导致进程更新不灵活的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种进程更新方法和装置,以至少解决键-值数据的加载方式导致进程更新不灵活的技术问题。根据本专利技术实施例的一个方面,提供了一种进程更新方法。根据本专利技术实施例的进程更新方法包括:获取共享内存组的状态信息,其中,所述共享内存组包括至少两个共享内存块,每个所述共享内存块均存储有所述进程的键-值数据;根据所述状态信息确定所述共享内存组中每个所述共享内存块的调用状态,以确定处于被调用状态的第一共享内存块和处于未被调用状态的第二共享内存块;以及在所述第一共享内存块处于被调用状态时更新所述第二共享内存块中的所述键-值数据。根据本专利技术实施例的另一方面,还提供了一种进程更新装置。根据本专利技术实施例的进程更新装置包括:第一获取单元,用于获取共享内存组的状态信息,其中,所述共享内存组包括至少两个共享内存块,每个所述共享内存块均存储有所述进程的键-值数据;第一确定单元,用于根据所述状态信息确定所述共享内存组中每个所述共享内存块的调用状态,以确定处于被调用状态的第一共享内存块和处于未被调用状态的第二共享内存块;以及更新单元,用于在所述第一共享内存块处于被调用状态时更新所述第二共享内存块中的所述键-值数据。在本专利技术实施例中,采用获取共享内存组的状态信息,其中,所述共享内存组包括至少两个共享内存块,每个所述共享内存块均存储有所述进程的键-值数据;根据所述状态信息确定所述共享内存组中每个所述共享内存块的调用状态,以确定处于被调用状态的第一共享内存块和处于未被调用状态的第二共享内存块;以及在所述第一共享内存块处于被调用状态时更新所述第二共享内存块中的所述键-值数据。通过利用共享内存组存储进程的键-值数据,在一个共享内存块处于被调用状态时更新另一个共享内存块中的键值-数据,实现了在一个共享内存块提供服务的时候,可以对另一个共享内存块中的键-值数据进行更新,这样,在进程重启时,只需从共享内存组进行键-值数据的加载即可,无需再次从数据源读取数据并构建自己的私有数据结构;并且,基于共享内存组加载键-值数据的方式,实现了更新线程和服务线程的相互独立,对进程键-值数据的在线更新不影响服务,解决了现有技术中键-值数据的加载方式导致进程更新不灵活的问题,进而达到了提高进程更新灵活性的效果。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本发明的不当限定。在附图中:图1是根据本专利技术实施例的进程更新方法的硬件环境图;图2是根据本专利技术实施例的进程更新方法的流程图;图3是根据本专利技术实施例的进程更新方法中共享内存组的一种结构示意图;图4是根据本专利技术实施例的进程更新方法中共享内存组的另一种结构示意图;图5是根据本专利技术实施例的进程更新方法中第三共享内存块的结构示意图;图6是根据本专利技术实施例的进程更新装置的示意图;以及图7是根据本专利技术实施例的进程更新方法的终端的示意图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。对本专利技术实施例中所涉及的技术术语做如下解释:共享内存(shm):Linux操作系统中一种进程通讯方式,多个进程可以共享一块内存空间。共享内存由操作系统维护,进程碰撞不会导致共享内存销毁。共享内存key(shmkey):Linux操作系统中,每个shm都由一个独一无二的shmkey表示。hash表:一种支持快速查找的数据结构,但是会有key冲突的问题。开链法:解决Hash表key冲突的一种方式。信号量锁(semlock):Linux系统中一种多进程之间的通信方式,可以用于保护敏感数据不被多个进程写乱。实施例1根据本专利技术实施例,提供了一种可以通过本申请装置实施例执行的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。根据本专利技术实施例,提供了一种进程更新方法。可选地,在本实施例中,上述进程更新方法可以应用于如图1所示的终端102和服务器104所构成的硬件环境中。如图1所示,终端102通过网络或数据线与服务器104进行连接,上述网络包括但不限于:广域网、城域网或局域网。图2是根据本专利技术实施例的进程更新方法的流程图,如图2所示,该进程更新方法主要包括如下步骤S202至步骤S206:S202:获取共享内存组的状态信息,其中,共享内存组包括至少两个...

【技术保护点】
一种进程更新方法,其特征在于,包括:获取共享内存组的状态信息,其中,所述共享内存组包括至少两个共享内存块,每个所述共享内存块均存储有所述进程的键‑值数据;根据所述状态信息确定所述共享内存组中每个所述共享内存块的调用状态,以确定处于被调用状态的第一共享内存块和处于未被调用状态的第二共享内存块;以及在所述第一共享内存块处于被调用状态时更新所述第二共享内存块中的所述键‑值数据。

【技术特征摘要】
1.一种进程更新方法,其特征在于,包括:
获取共享内存组的状态信息,其中,所述共享内存组包括至少两
个共享内存块,每个所述共享内存块均存储有所述进程的键-值数据;
根据所述状态信息确定所述共享内存组中每个所述共享内存块
的调用状态,以确定处于被调用状态的第一共享内存块和处于未被调
用状态的第二共享内存块;以及
在所述第一共享内存块处于被调用状态时更新所述第二共享内
存块中的所述键-值数据。
2.根据权利要求1所述的进程更新方法,其特征在于,在所述第一共享
内存块处于被调用状态时更新所述第二共享内存块中的所述键-值数
据之后,所述进程更新方法还包括:
将所述第一共享内存块由被调用状态转换为未被调用状态,并将
更新后的所述第二共享内存块由未被调用状态转换为被调用状态块。
3.根据权利要求1所述的进程更新方法,其特征在于,在获取共享内存
组的状态信息之前,所述进程更新方法还包括:
将所述共享内存组中的每个所述共享内存块均划分为第一存储
区域、第二存储区域和第三存储区域;以及
存储用于查找所述键-值数据的查找数据至所述第一存储区域,
并存储所述键-值数据中的第一数据至所述第二存储区域,以及存储
所述键-值数据中的第二数据至所述第三存储区域,其中,所述第一
数据和所述第二数据组成所述键-值数据。
4.根据权利要求3所述的进程更新方法,其特征在于,在存储用于查找
所述键-值数据的查找数据至所述第一存储区域,并存储所述键-值数
据中的第一数据至所述第二存储区域,以及存储所述键-值数据中的
第二数据至所述第三存储区域之后,所述进程更新方法还包括:
保存所述状态信息至与所述共享内存组相互独立的共享内存块;
以及
添加用于对所述状态信息的读写进行保护的信号量锁。
5.根据权利要求4所述的进程更新方法,其特征在于,
在添加用于对所述状态信息的读写进行保护的信号量锁之后,并
且在获取共享内存组的状态信息之前,所述进程更新方法还包括:获
取所述信号量锁,
在更新处于未被调用状态的共享内存块中的数据之后,所述进程
更新方法还包括:释放所述信号量锁。
6.根据权利要求3所述的进程更新方法,其特征在于,在将所述共享内
存组中的每个所述共享内存块均划分为第一存储区域、第二存储区域
和第三存储区域之后,所述进程更新方法还包括:
确定所述第二存储区域中用于存储所述第二数据的字节长度为
预设定长,
其中,存储所述键-值数据中的第一数据至所述第二存储区域包
括:将所述第一数据的长度转换为所述预设定长;以及存储转换为所
述预设定长后的所述第一数据至所述第二存储区域。
7.根据权利要求3所述的进程更新方法,其特征在于,在存储用于查找
所述键-值数据的查找数据至所述第一存储区域,并存储所述键-值数
据中的第一数据至所述第二存...

【专利技术属性】
技术研发人员:尹鹏
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

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

1