数据更新处理方法及装置的制造方法

文档序号:9921926阅读:258来源:国知局
数据更新处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及数据更新处理方法及装置。
【背景技术】
[0002]随着Internet的发展,路由器的功能日益复杂,集中式的控制面处理已经不能满足运营商的需求,控制面的分布式、多进程的实现方式成为由器的一个发展趋势。IP的开放性、多样性、以及传统电信的各种业务都不断的迁移到IP承载上,导致IP各种新协议、新业务不断快速推出。为支持协议功能的裁剪、独立发布版本、独立升级,导致了多进程的实现方式,且进程划分的非常细,甚至每个协议都运行在独立的进程空间中。支持协议分布式运行,不同的协议进程可运行在不同的协议处理单元中。另外,采用多进程的实现方式,也解决了软件各组件故障相互影响的问题,避免随着软件规模扩大,开发功能的难度不断增加及版本稳定性降低,故障收敛慢的问题。
[0003]各协议运行在不同进程,但有些数据信息是各个进程都需要的,例如端口信息。在运行的协议进程越来越多的情况下,如果各进程都保存一份重复的数据,对内存资源是很大的浪费。在运营商对通信设备功能需求不断增多,性能要求不断提高的情况下,设备需要支持的端口类型、数量越来越多,系统的内存资源越来越紧缺(其对内存的消耗是按照端口数量和协议进程数量乘积的形式进行增长)。图1是相关技术中数据同步模型的示意图,如图1所示,在使用消息进行进程间数据同步的方式下,各个进程空间都申请内存保存了一份数据。
[0004]如果各个进程使用共享内存的方式对数据进行共享访问,则可以极大的降低系统内存的消耗。但操作系统所支持的共享内存,仅提供进程对共享内存进行主动读、写。在共享内存中的数据变化时,相关进程无法及时的被动感知,只能在后续主动查询时得到变化后的数据,此时已无法知道具体哪些信息字段发生了变化,以及变化前的值是多少。这种方式难以满足一些场景的实现需要。例如,对端口进行IP配置,将IP信息写入共享内存后,路由协议进程需要及时感知到端口上IP的添加事件,对路由进行重新计算;将光纤插入PPP口,PPP端口的物理UP状态更新到共享内存后,PPP协议进程需要及时感知物理UP事件,和对端设备进行协商建链。如果各个协议都定时轮询检查数据的变化,定时周期太长,则及时性得不到保证;定时周期太短,则对系统性能是很大的消耗,影响设备对正常业务的处理能力。且通过轮询的方式,在数据修或删除之后才能发现,已获取不到修改前或删除前的数据。
[0005]针对相关技术中多进程使用共享内存时,无法及时感知共享内存中数据变化的问题,目前尚未提出有效的解决方案。

【发明内容】

[0006]本发明提供了数据更新处理方法及装置,以至少解决相关技术中多进程使用共享内存时,无法及时感知共享内存中数据变化的问题。
[0007]根据本发明的一个方面,提供了一种数据更新处理方法,包括:对共享内存中的数据进行更新;向一个或多个线程发送对共享内存中的所述数据更新完成的完成消息;根据所述完成消息将共享内存中更新后的所述数据提供给所述一个或多个线程进行业务处理。
[0008]进一步地,在对共享内存中的所述数据进行更新之前还包括:向所述一个或多个线程发送指示消息,其中,所述指示消息用于指示所述一个或多个线程所述数据处于更新状态。
[0009]根据本发明的另一方面,提供了一种数据更新处理方法,包括:接收对共享内存中的数据更新完成的完成消息;根据所述完成消息访问共享内存中更新完成后的所述数据。
[0010]进一步地,在接收对共享内存中的数据更新完成的完成消息之前还包括:接收用于指示共享内存中的所述数据处于更新状态的指示消息;
[0011]根据所述指示消息建立所述数据处于更新状态的标识;
[0012]在接收到对共享内存中的数据更新完成的完成消息之后,删除所述标识。
[0013]进一步地,在根据所述完成消息访问共享内存中更新完成后的所述数据之前,还包括以下至少之一:在对共享内存中的数据更新为添加数据的情况下,接收携带有所述数据的关键字的指示消息,创建与所述数据的关键字对应的空数据,在对所述共享内存添加数据完成后,删除所述空数据;在对共享内存中的数据更新为修改或删除数据的情况下,接收携带有所述数据的关键字的指示消息,根据所述数据的关键字获取共享内存中的更新前的旧数据并进行备份,在所述共享内存修改或删除数据完成后,删除所述旧数据;在对共享内存中的数据更新为一个或多个线程新加入或重启的情况下,接收携带有所述数据的关键字的指示消息,根据所述数据的关键字标记为整体同步阶段所述数据已创建,在接收到共孚内存中的所有数据创建完成后整体同步完成消息后,删除所有已创建标记;在对共孚内存中的数据更新为Source进程重启的情况下,创建用于禁止从所述共享内存中访问数据的空数据;或者,标记上用于继续访问所述共享内存中数据的老化标记。
[0014]根据本发明的另一方面,提供了一种数据更新处理装置,包括:更新模块,用于对共享内存中的数据进行更新;第一发送模块,用于向一个或多个线程发送对共享内存中的所述数据更新完成的完成消息;提供发送模块,用于根据所述完成消息将共享内存中更新后的所述数据提供给所述一个或多个线程进行业务处理。
[0015]进一步地,所述装置还包括:第二发送模块,用于向所述一个或多个线程发送指示消息,其中,所述指示消息用于指示所述一个或多个线程所述数据处于更新状态。
[0016]根据本发明的另一方面,提供了一种数据更新处理装置,包括:第一接收模块,用于接收对共享内存中的数据更新完成的完成消息;访问模块,用于根据所述完成消息访问共享内存中更新完成后的所述数据。
[0017]进一步地,所述装置还包括:第二接收模块,用于接收用于指示共享内存中的所述数据处于更新状态的指示消息;建立模块,用于根据所述指示消息建立所述数据处于更新状态的标识;删除模块,用于在接收到对共享内存中的数据更新完成的完成消息之后,删除所述标识。
[0018]进一步地,所述装置还包括以下至少之一:第一处理模块,用于在对共享内存中的数据更新为添加数据的情况下,接收携带有所述数据的关键字的指示消息,创建与所述数据的关键字对应的空数据,在对所述共享内存添加数据完成后,删除所述空数据;第二处理模块,用于在对共享内存中的数据更新为修改或删除数据的情况下,接收携带有所述数据的关键字的指示消息,根据所述数据的关键字获取共享内存中的更新前的旧数据并进行备份,在所述共享内存修改或删除数据完成后,删除所述旧数据;第三处理模块,用于在对共享内存中的数据更新为一个或多个线程新加入或重启的情况下,接收携带有所述数据的关键字的指示消息,根据所述数据的关键字标记为整体同步阶段所述数据已创建,在接收到共享内存中的所有数据创建完成后整体同步完成消息后,删除所有已创建标记;第四处理模块,用于在对共享内存中的数据更新为Source进程重启的情况下,创建用于禁止从所述共享内存中访问数据的空数据;或者,标记上用于继续访问所述共享内存中数据的老化标记。
[0019]通过本发明,采用对共享内存中的数据进行更新;向一个或多个线程发送对共享内存中的所述数据更新完成的完成消息;根据所述完成消息将共享内存中更新后的所述数据提供给所述一个或多个线程进行业务处理,解决了相关技术中多进程使用共享内存时,无法及时感知共享内存中数据变化的问题,从而能够及时获知共享内存中数据的状态。
【附图说明】
[0020]
[0021]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0022]图1是相关技术中数据同步模型的示意图;
[0023]图2是根据本发明实施例的数据更新处理方法的流程图一;
[0024]图3是根据本发明实施例的数据更新处理方法的流程图二 ;
[0025]图4是根据本发明实施例的数据更新处理装置的框图一;
[0026]图5是根据本发明优选实施例的数据更新处理装置的框图一;
[0027]图6是根据本发明实施例的数据更新处理装置的框图二 ;
[0028]图7是根据本发明优选实施例的数据更新处理装置的框图二 ;
[0029]图8是根据本发明优选实施例的数据更新处理装置的框图三;
[0030]图9是根据本发明实施例的数据同步模型的示意图;
[0031]图10是根据本发明实施例的数据同步中数据添加的示意图;
[0032]图11是根据本发明实施例的数据同步中数据修改的示意图;
[0033]图12是根据本发明实施例的数据同步中数据删除的示意图;
[0034]图13是根据本发明实施例的数据同步中整体同步的示意图;
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1