一种数据加载的实现方法及系统的制作方法

文档序号:6555981阅读:172来源:国知局
专利名称:一种数据加载的实现方法及系统的制作方法
技术领域
本发明涉及数据加载技术领域,尤其是涉及一种数据加载的实现方法及系统。
背景技术
随着网络技术的发展,大型网络设备也不断增多。大型网络设备包括众多分布式的子系统、以及对子系统集中管理的主系统,其对外表现为一个完整的应用系统或设备,而在大型网络设备启动以及运行过程中,例如,子系统根据所处理的业务,需要向主系统请求加载程序等数据,而主系统也会于对系统软件升级时,将为某一个程序的数据加载至相关的多个子系统中,因此,如何在大型网络设备中快速实现将主系统数据加载至各个子系统,是提高大型网络设备数据处理能力的因素之一。
现有实现数据加载的方式有两种一种是采用数据串行加载,另一种是采用数据并行加载。其中,由于数据串行加载需要逐一完成主系统将数据加载至各个子系统,需要耗费较长的数据加载时间,因此主系统与子系统之间的通信效率较低,已很少使用在大型网络设备中。取而代之的是采用数据并行加载技术,可以实现并行处理主系统与多个子系统的数据加载任务,相对采用数据串行加载技术而言,采用数据并行加载技术可大大提高主系统与子系统之间的数据加载效率,缩短数据加载的时间,基本上可实现对各个子系统进行数据同步加载以及实现主系统与各个子系统的同时启动。
但是,主系统并行将数据加载至各个子系统时,由于数据存储于主系统中的存储单元中,比如为硬盘、闪存,因此主系统与每个子系统之间建立的数据加载任务需要分别从存储单元获取数据;同时,由于硬盘、闪存等存储单元相对主系统以及子系统的处理器而言为慢速设备,主系统从存储单元获取数据需要占用大量的系统资源,且不利于提高并行数据加载速度。

发明内容
本发明解决的技术问题是提出了一种数据加载的实现方法及系统,以解决现有技术采用并行数据加载过程中,主系统重复读取数据所占用大量的系统资源,从而提高并行数据加载速度。
为解决上述问题,本发明提出一种数据加载的实现方法,关键是,包括以下步骤主系统根据其与不同子系统之间分别建立的不同数据加载任务,将数据加载任务对应的数据在内存中共享后,发送给加载该数据的不同数据加载任务分别对应的子系统。
于所述主系统与子系统之间建立数据加载任务的步骤之后,还包括将各个子系统与主系统之间建立的数据加载任务构成数据加载任务队列,且在数据加载任务队列中将加载同一数据的不同数据加载任务设置相互关联。
所述构成数据加载任务队列的步骤具体包括预设主系统能同时处理数据加载任务的最大个数;按顺序将数据加载任务构成数据加载任务队列,并依次将数据加载任务队列中最大个数的数据加载任务设置为处理进程,其他数据加载任务设置为等待进程。
所述将数据加载任务对应的数据在内存中共享后,发送给加载该数据的不同数据加载任务分别对应的子系统的步骤具体包括主系统将该数据加载任务对应的数据从存储介质中读入内存;在内存中将数据共享,并发送给所述处理进程中相互关联的不同数据加载任务所分别对应的子系统。
所述建立数据加载任务的步骤具体包括子系统向主系统发送的数据加载请求消息或主系统向子系统发送的数据加载通知消息;主系统或子系统响应所述消息以建立主系统与子系统之间的数据加载任务。
相应地,本发明提出一种数据加载的实现系统,用于实现从主系统中的存储模块中的数据加载至由主系统集中管理的多个子系统中,关键是,所述主系统包括任务建立模块、任务管理模块和任务执行模块;所述任务建立模块,用于与所述子系统之间建立数据加载任务;所述任务管理模块,用于管理数据加载任务队列,并将加载同一数据的不同数据加载任务设置相互关联;所述任务执行模块,用于执行数据加载任务,将数据在内存中共享后,发送给相互关联的数据加载任务分别对应的子系统。
所述任务管理模块具体包括队列管理子模块,用于将主系统与各个子系统之间建立的数据加载任务构成队列,并将加载同一数据的不同数据加载任务设置相互关联;进程管理子模块,用于实时管理主系统并行处理的数据加载任务。
所述任务执行模块具体包括数据读取子模块,用于从主系统的存储模块中将数据读入内存;
数据发送子模块,用于将数据在内存中共享后,发送给相互关联的数据加载任务分别对应的子系统。
与现有技术相比,本发明具有以下有益效果由于本发明是在主系统数据并行加载过程中,主系统第一次从存储单元将数据读入主系统内存后,共享内存,将该数据发送给加载该数据的不同数据加载任务分别对应的子系统,因此,本发明通过减少主系统重复读取数据所重复占用的系统资源,从而提高数据并行加载效率,同时由于主系统读取数据所占用的系统资源减少,有利于增强主系统的系统稳定性。


图1是本发明揭示的数据加载的实现方法流程示意图。
图2是本发明揭示的数据加载的实现系统示意图。
具体实施例方式
本发明的指导思想是,当主系统需要将同一个数据并行加载至多个系统时,执行主系统与各个子系统之间分别建立的数据加载任务时,主系统无需执行数据加载任务均为从慢速设备的存储单元中读取数据,而是采用主系统第一次从存储单元将数据读入主系统内存后,共享内存,将该数据发送给加载该数据的不同数据加载任务分别对应的子系统,从而减少主系统重复读取数据所重复占用的系统资源,提高数据加载效率。
请参照图1所示,为本发明揭示的数据加载的实现方法流程示意图。本发明包括如下步骤步骤s110子系统根据所处理的业务需要加载某一数据时,向主系统发送的数据加载请求消息,或者,由集中管理子系统的主系统向各个子系统发送的数据加载通知消息,主系统或子系统响应所述消息以建立主系统与子系统之间的数据加载任务;步骤s120主系统将其与各个子系统分别建立的数据加载任务按照建立时间顺序构成数据加载任务队列,且根据主系统预设能够并行处理的最大数据加载任务个数,顺序将数据加载任务队列相应个数的数据加载任务设置为处理进程,其他数据加载任务设置为等待进程;并使处理进程中加载同一数据的不同数据加载任务设置相互关联;步骤s130主系统执行数据加载任务队列中为处理进程的数据加载任务,从存储单元将一个数据加载任务对应的数据读入内存,并控制执行该数据加载任务相关联的其他数据加载任务时不再从存储单元中读取数据;步骤s140主系统将数据在内存中共享,并发送给与该数据加载任务相关联的所有数据加载任务分别对应的子系统。
当然,若一个数据加载任务完成,则从数据加载任务队列中删除该数据加载任务,并使处于等待进程中的一个数据加载任务进入处理进程,开始执行该数据加载任务。
另外,在步骤s120中,需要综合考虑主系统处理业务的占用的系统资源,以及处理数据加载任务能够占用的系统资源,预设主系统能够并行处理的最大个数的数据加载任务,以确保主系统不至于因处理数据加载任务而影响主系统的其他业务处理。
在步骤s140中,主系统可以综合考虑主系统与子系统的数据处理能力,对发送给子系统的数据进行流量控制,以平衡主系统与子系统、子系统其她业务与数据加载任务之间的数据处理能力。
另外,请参见图2所示,本发明还揭示了一种数据加载的实现系统,用于实现从主系统100中的存储模块110中的数据加载至由主系统100集中管理的多个子系统200中。
所述主系统100包括任务建立模块120、任务管理模块130和任务执行模块140;所述任务建立模块120,用于所述主系统100与所述子系统200之间建立数据加载任务;所述任务管理模块130,用于管理数据加载任务队列,并将加载同一数据的不同数据加载任务设置相互关联;所述任务执行模块140,用于执行数据加载任务,将数据在内存中共享后,发送给相互关联的数据加载任务分别对应的子系统。
其中,所述任务管理模块130具体包括队列管理子模块,用于将主系统与各个子系统之间建立的数据加载任务构成队列,并将加载同一数据的不同数据加载任务设置相互关联;进程管理子模块,用于实时管理主系统并行处理的数据加载任务。
所述任务执行模块140具体包括数据读取子模块,用于从主系统的存储模块将数据读入内存;数据发送子模块,用于将数据在内存中共享后,发送给加载该数据的不同数据加载任务分别对应的子系统。
由前述可知,主系统100与各个子系统200之间通过建立数据加载任务以实现从主系统100的存储模块110中的数据加载至该数据加载任务对应的子系统200;主系统100中的任务管理模块130将主系统100与各个子系统200之建立的数据加载任务构成数据加载任务列表,并将加载相同数据的数据加载任务设置为相互关联,以于所述任务执行模块140执行数据加载任务时,将数据从主系统100的存储模块110中读入内存后,内存共享,将从内存中读取该数据并发送给该数据加载任务相互关联的所有数据加载任务对应的子系统,以避免主系统100重复数据而浪费系统资源,且可有效提高主系统100多次读取为慢速设备的存储模块110中的数据而导致数据加载的速度。
以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或者等同替换;而一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种数据加载的实现方法,其特征在于,包括以下步骤主系统根据其与不同子系统之间分别建立的不同数据加载任务,将数据加载任务对应的数据在内存中共享后,发送给加载该数据的不同数据加载任务分别对应的子系统。
2.根据权利要求1所述的数据加载的实现方法,其特征在于,于所述主系统与子系统之间建立数据加载任务的步骤之后,还包括将各个子系统与主系统之间建立的数据加载任务构成数据加载任务队列,且在数据加载任务队列中将加载同一数据的不同数据加载任务设置相互关联。
3.根据权利要求2所述的数据加载的实现方法,其特征在于,所述构成数据加载任务队列的步骤具体包括预设主系统能同时处理数据加载任务的最大个数;按顺序将数据加载任务构成数据加载任务队列,并依次将数据加载任务队列中最大个数的数据加载任务设置为处理进程,其他数据加载任务设置为等待进程。
4.根据权利要求3所述的数据加载的实现方法,其特征在于,所述将数据加载任务对应的数据在内存中共享后,发送给加载该数据的不同数据加载任务分别对应的子系统的步骤具体包括主系统将该数据加载任务对应的数据从存储介质中读入内存;在内存中将数据共享并发送给所述处理进程中相互关联的不同数据加载任务所分别对应的子系统。
5.根据权利要求1所述的数据加载的实现方法,其特征在于,所述建立数据加载任务的步骤具体包括子系统向主系统发送的数据加载请求消息或主系统向子系统发送的数据加载通知消息;主系统或子系统响应所述消息以建立主系统与子系统之间的数据加载任务。
6.一种数据加载的实现系统,用于实现从主系统中的存储模块中的数据加载至由主系统集中管理的多个子系统中,其特征在于,所述主系统包括任务建立模块、任务管理模块和任务执行模块;所述任务建立模块,用于与所述子系统之间建立数据加载任务;所述任务管理模块,用于管理数据加载任务队列,并将加载同一数据的不同数据加载任务设置相互关联;所述任务执行模块,用于执行数据加载任务,在内存中将数据共享以发送给加载该数据的不同数据加载任务分别对应的子系统。
7.根据权利要求6所述的数据加载的实现系统,其特征在于,所述任务管理模块具体包括队列管理子模块,用于将主系统与各个子系统之间建立的数据加载任务构成队列,并将加载同一数据的不同数据加载任务设置相互关联;进程管理子模块,用于实时管理主系统并行处理的数据加载任务。
8.根据权利要求6所述的数据加载的实现系统,其特征在于,所述任务执行模块具体包括数据读取子模块,用于从主系统的存储模块中将数据读入内存;数据发送子模块,用于在内存中将数据共享后发送给相互关联的数据加载任务分别对应的子系统。
全文摘要
本发明公开一种数据加载的实现方法,该方法包括以下步骤主系统根据其与不同子系统之间分别建立的不同数据加载任务,将数据加载任务对应的数据在内存中共享后,发送给加载该数据的不同数据加载任务分别对应的子系统。本发明还公开一种数据加载的实现系统。本发明是在主系统进行数据并行加载过程中,主系统第一次从存储单元将数据读入主系统内存后,共享内存,将该数据发送给加载该数据的不同数据加载任务分别对应的子系统,因此,本发明通过减少主系统重复读取数据所重复占用的系统资源,提高了数据并行加载的效率。
文档编号G06F13/00GK101083532SQ20061003581
公开日2007年12月5日 申请日期2006年5月31日 优先权日2006年5月31日
发明者吴刚 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1