一种数据合并方法、装置、存储器及存储控制器与流程

文档序号:11250714阅读:521来源:国知局
一种数据合并方法、装置、存储器及存储控制器与流程

本发明涉及计算机技术领域,特别涉及一种基于多处理器的数据合并方法、装置、存储器及存储控制器。



背景技术:

随着计算机应用技术的不断发展,数据中心需要处理的数据量也大量增加。在一些特殊的场景下,经常需要对大量的数据进行合并处理。比如,在进行集群监控时,为了查看集群的整体状态,则需要将集群中不同节点的状态数据合并为汇总数据。

目前,在针对多个待合并数据进行合并处理时,通常需要根据预设的数据合并规则设置一个数据合并模型,在一个处理器上运行该数据合并模型以将多个待合并数据直接合并为一个目标数据。

上述技术方案中,在待合并数据的数据量较大时,一方面,会导致运行数据模型的处理器资源消耗严重而影响处理器性能,另一方面,同一个处理器对大量待合并数据进行合并处理时,需要花费大量的处理时长。影响数据合并效率。



技术实现要素:

本发明实施例提供了一种基于多处理器的数据合并方法、装置、存储器及存储空控制器,可提高数据合并效率。

第一方面,本发明提供了一种基于多处理器的数据合并方法,包括:

根据预设分组规则,在至少两个处理器上分别创建至少一个数据合并进程;

根据预设分组规则将至少4个待合并数据划分为至少两个待合并数据组,并确定每一个所述待合并数据组分别对应的所述数据合并进程;

利用各个所述数据合并进程将当前所述数据合并进程所对应的待合并数据组中的各个待合并数据合并为一个预合并数据;

将各个所述数据合并进程分别合并的各个所述预合并数据,合并成目标数据。

优选地,

在所述利用各个所述数据合并进程将当前所述数据合并进程所对应的待合并数据组中的各个待合并数据合并为一个预合并数据之前,还包括:

预先构建消息中间件;

所述确定每一个所述待合并数据组分别对应的所述数据合并进程,进一步包括:将各个所述待合并数据发送至所述消息中间件;

在所述利用各个所述数据合并进程将当前所述数据合并进程所对应的待合并数据组中的各个待合并数据合并为一个预合并数据之前,进一步包括:利用各个所述数据合并进程,从所述消息中间件中读取对应当前所述数据合并进程的待合并数据组。

优选地,

所述在至少两个处理器上分别创建至少一个数据合并进程,进一步包括:在存储介质中构建每一个所述数据合并进程分别对应的存储区域,并设置各个所述存储区域之间的组织顺序;

则,在所述利用各个所述数据合并进程将当前所述数据合并进程所对应的待合并数据组中的各个待合并数据合并为一个预合并数据之后,进一步包括:利用各个所述数据合并进程将当前所述数据合并进程合并的所述预合并数据写入对应当前所述数据合并进程的存储区域;

所述将各个所述数据合并进程分别合并的各个所述预合并数据,合并成目标数据,包括:根据各个所述存储区域之间的组织顺序,读取各个所述存储区域中存储的所述预合并数据,并利用读取的各个所述预合并数据组合成目标数据。

优选地,

在所述根据预设分组规则将至少4个待合并数据划分为至少两个待合并数据组之前,还包括:采集至少四个数据采集节点分别提供的至少一个待合并数据。

第二方面,本发明实施例提供了一种基于多处理器的数据合并装置,包括:

进程创建模块,用于根据预设分组规则,在至少两个处理器上分别创建至少一个数据合并进程;

分组处理模块,用于根据预设分组规则将至少4个待合并数据划分为至少两个待合并数据组,并确定每一个所述待合并数据组分别对应的所述数据合并进程;

至少一个数据合并进程,用于将当前所述数据合并进程所对应的待合并数据组中的各个待合并数据合并为一个预合并数据;

合并处理模块,用于将各个所述数据合并进程分别合并的各个所述预合并数据,合并成目标数据。

优选地,

还包括:消息中间件;其中,

所述分组处理模块,进一步用于将各个所述待合并数据发送至所述消息中间件;

每一个所述数据合并进程,进一步用于从所述消息中间件中读取对应当前所述数据合并进程的待合并数据组。

优选地,

还包括:存储设置模块;其中,

所述存储设置模块,用于在存储介质中构建每一个所述数据合并进程分别对应的存储区域,并设置各个所述存储区域之间的组织顺序;

每一个所述数据合并进程,进一步用于将当前所述数据合并进程合并的所述预合并数据写入对应当前所述数据合并进程的存储区域;

所述合并处理模块,用于根据各个所述存储区域之间的组织顺序,读取各个所述存储区域中存储的所述预合并数据,并利用读取的各个所述预合并数据组合成目标数据。

优选地,还包括:

数据采集模块,用于采集至少四个数据采集节点分别提供的至少一个待合并数据。

第三方面,本发明实施例提供了一种存储器,包括多条执行指令,所述执行指令适于由处理器加载并执行:

根据预设分组规则,在至少两个处理器上分别创建至少一个数据合并进程;

根据预设分组规则将至少4个待合并数据划分为至少两个待合并数据组,并确定每一个所述待合并数据组分别对应的所述数据合并进程;

利用各个所述数据合并进程将当前所述数据合并进程所对应的待合并数据组中的各个待合并数据合并为一个预合并数据;

将各个所述数据合并进程分别合并的各个所述预合并数据,合并成目标数据。

第四方面,本发明实施例提供了一种存储控制器,其特征在于,包括:

处理器、存储器和总线;所述处理器和所述存储器通过所述总线连接;其中,

所述处理器,用于加载各指令,并执行:

根据预设分组规则,在至少两个处理器上分别创建至少一个数据合并进程;

根据预设分组规则将至少4个待合并数据划分为至少两个待合并数据组,并确定每一个所述待合并数据组分别对应的所述数据合并进程;

利用各个所述数据合并进程将当前所述数据合并进程所对应的待合并数据组中的各个待合并数据合并为一个预合并数据;

将各个所述数据合并进程分别合并的各个所述预合并数据,合并成目标数据。

本发明实施例提供了一种基于多处理器的数据合并方法、存储器及存储控制器,该方法中,根据预设分组规则在多个处理器上分别创建至少一个数据合并进程,并将多个待合并数据划分为多个待合并数据组,在确定出各个待合并数据组与创建在多个处理器上的多个数据合并进程之间的对应关系之后,则可由运行在多个处理器上的多个数据合并进程分别对对应的待合并数据组中的各个待合并数据进行预合并处理,以形成预合并数据,最后再利用形成的各个预合并数据合并成目标数据。综上可见,通过运行在多个处理器上的多个数据合并进程同时对多个待合并数据进行预合并处理,最后再将各个数据合并进程形成的预合并数据合并成目标数据,可避免同一个处理器发生资源消耗严重而影响处理器性能,同时,还可快速实现对大量的待合并数据进行合,从而提高数据合影效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种基于多处理器的数据合并方法的流程图;

图2是本发明一实施例提供的另一种基于多处理器的数据合并方法的流程图;

图3是本发明一实施例提供的一种基于多处理器的数据合并装置的结构示意图;

图4是本发明一实施例提供的另一种基于多处理器的数据合并装置的结构示意图;

图5是本发明一实施例提供的再一种基于多处理器的数据合并装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种基于多处理器的数据合并方法,包括:

步骤101,根据预设分组规则,在至少两个处理器上分别创建至少一个数据合并进程;

步骤102,根据预设分组规则将至少4个待合并数据划分为至少两个待合并数据组,并确定每一个所述待合并数据组分别对应的所述数据合并进程;

步骤103,利用各个所述数据合并进程将当前所述数据合并进程所对应的待合并数据组中的各个待合并数据合并为一个预合并数据;

步骤104,将各个所述数据合并进程分别合并的各个所述预合并数据,合并成目标数据。

本发明上述实施例中,根据预设分组规则在多个处理器上分别创建至少一个数据合并进程,并将多个待合并数据划分为多个待合并数据组,在确定出各个待合并数据组与创建在多个处理器上的多个数据合并进程之间的对应关系之后,则可由运行在多个处理器上的多个数据合并进程分别对对应的待合并数据组中的各个待合并数据进行预合并处理,以形成预合并数据,最后再利用形成的各个预合并数据合并成目标数据。综上可见,通过运行在多个处理器上的多个数据合并进程同时对多个待合并数据进行预合并处理,最后再将各个数据合并进程形成的预合并数据合并成目标数据,可避免同一个处理器发生资源消耗严重而影响处理器性能,同时,还可快速实现对大量的待合并数据进行合,从而提高数据合影效率。

本发明上述实施例中,第一方面,数据合并过程较单进程的合并方式更高效、稳定。第二方面,服务进程针对多用户的并发访问能够更容易满足。第三方面,多进程的使用可以有效的利用多核多处理器服务器的计算资源,使得合并过程更加快速。

本发明上述实施例中,预设分组规则可以结合实际业务需求进行合理设置,比如,以设定时间间隔为划分标准,将不同时间段内采集的待合并数据划分为不同的待合并数据组。又如,可以根据各个待合并数据的数据源进行分组,并入,待合并数据a1、a2的数据源为服务器节点a,待合并数据b的数据源为服务器节点b,待合并数据c1、c2的数据源为服务器节点c,待合并数据d的数据源为服务器节点d,可将待合并数据a1、a2、b划分为同一个待合并数据组,将待合并数据c1、c2、d划分为同一个待合并数据组。

进一步的,本发明一个实施例中,在所述利用各个所述数据合并进程将当前所述数据合并进程所对应的待合并数据组中的各个待合并数据合并为一个预合并数据之前,还包括:

预先构建消息中间件;

所述确定每一个所述待合并数据组分别对应的所述数据合并进程,进一步包括:将各个所述待合并数据发送至所述消息中间件;

在所述利用各个所述数据合并进程将当前所述数据合并进程所对应的待合并数据组中的各个待合并数据合并为一个预合并数据之前,进一步包括:利用各个所述数据合并进程,从所述消息中间件中读取对应当前所述数据合并进程的待合并数据组。

本发明上述实施例中,通过将划分的各个待合并数据组均发送至消息中间件,运行在不同处理器上的各个数据合并进程则可从消息中间件中读取到当前数据合并进程。比如,在确定出一个数据组所对应的数据合并进程为a,则可利用a对该数据组进行标记,然后将标记后的该数据组发送至消息队列,运行在相应处理器上的数据合并进程a则可读取消息中间件中存储的被标记为a的待合并数据组。

进一步的,本发明一个实施例中,所述在至少两个处理器上分别创建至少一个数据合并进程,进一步包括:在存储介质中构建每一个所述数据合并进程分别对应的存储区域,并设置各个所述存储区域之间的组织顺序;

则,在所述利用各个所述数据合并进程将当前所述数据合并进程所对应的待合并数据组中的各个待合并数据合并为一个预合并数据之后,进一步包括:利用各个所述数据合并进程将当前所述数据合并进程合并的所述预合并数据写入对应当前所述数据合并进程的存储区域;

所述将各个所述数据合并进程分别合并的各个所述预合并数据,合并成目标数据,包括:根据各个所述存储区域之间的组织顺序,读取各个所述存储区域中存储的所述预合并数据,并利用读取的各个所述预合并数据组合成目标数据。

本发明上述实施例中,通过将不同数据合并进程形成的预合并数据存储至不同的存储区域,且不同存储区域之间存在组织关系,后续则可根据不同存储区域之间的组织关系,利用不同存储区域中分别存储的各个预合并数据形成符合要求的目标数据。

进一步的,本发明一个实施例中,在所述根据预设分组规则将至少4个待合并数据划分为至少两个待合并数据组之前,还包括:采集至少四个数据采集节点分别提供的至少一个待合并数据。

为了更加清楚的说明本发明的技术方案及优点,下面以采集各个待合并数据的时间点将多个待合并数据划分为多个待合并数据组,进而实现对多个待合并数据进行合并为例,如图2所示,可以包括如下各个步骤:

步骤201,设置并启动消息队列。

步骤202,根据预设分组规则,在至少两个处理器上分别创建至少一个数据合并进程。

本发明实施例中,分组规则可以结合实际业务需求进行合理设置,比如,按照各个待处理数据的格式进行分组时,待处理数据具有多少中数据格式则可在相应数量的处理器上创建相应数量的数据合并进程,相应数据格式的待处理数据可被划分为同一个待合并数据组,每一种数据格式则可对应一个数据合并进程。又如,以采集时间点进行划分,每15秒为一个时间间隔,对1分钟获取的全部待处理数据进行合并处理时,可在四个处理器上分别创建一个数据合并进程。

步骤203,在存储介质中构建每一个数据合并进程分别对应的存储区域,并设置各个存储区域之间的组织顺序。

举例来说,在四个处理器上构建的四个数据合并进程分别为a、b、c、d,a将用于对1分钟内获取的全部待合并数据中,0至15秒获取的各个待合并数据进行预合并处理,b将用于对1分钟内获取的全部待合并数据中,16至30秒获取的各个待合并数据进行预合并处理,c将用于对1分钟内获取的全部待合并数据中,31至45秒获取的各个待合并数据进行预合并处理,d将用于对1分钟内获取的全部待合并数据中,46至60秒获取的各个待合并数据进行预合并处理;那么,则可在存储介质中构建数据合并进程a、b、c、d分别对应的四个存储区域t1、t2、t3、t4,且设置存储区域t1、t2、t3、t4之间的组织顺序为t1-t2-t3-t4。

步骤204,采集各个数据采集节点在1分钟的连续时间段内分别提供的至少一个待合并数据。

步骤205,根据预设分组规则将采集的各个待合并数据划分为至少两个待合并数据组。

本发明实施例以采集的各个待合并数据包括:k1、k2、k3、k4、k5、k6、k7、k8,且采集的各个待合并数据在1分钟的连续时间段内对应的时间点依次为:3s、11s、17s、23s、32s、44s、48s、59s为例。那么,则可划分出待合并数据组(k1、k2)、(k3、k4)、(k5、k6)、(k7、k8)。

步骤206,确定待合并数据组(k1、k2)对应的数据合并进程为a,确定待合并数据组(k3、k4)对应的数据合并进程为b,确定待合并数据组(k5、k6)对应的数据合并进程为c,确定待合并数据组(k7、k8)对应的数据合并进程为d。

步骤207,利用a标记待合并数据组(k1、k2),利用b标记待合并数据组(k3、k4)、利用c标记待合并数据组(k5、k6)利用d标记待合并数据组(k7、k8),并将标记后的各个待合并数据组发送至构建的消息中间件。

步骤208,数据合并进程a从消息队列中读取被标记为a的待合并数据组(k1、k2),数据合并进程b从消息队列中读取被标记为b的待合并数据组(k3、k4),数据合并进程c从消息队列中读取被标记为c的待合并数据组(k5、k6),数据合并进程d从消息队列中读取被标记为d的待合并数据组(k1、k2)。

步骤209,数据合并进程a将读取的k1、k2合并为预合并数据k1,数据合并进程b将读取的k3、k4合并为预合并数据k2,数据合并进程c将读取的k5、k6合并为预合并数据k3,数据合并进程d将读取的k7、k8合并为预合并数据k4。

步骤210,数据合并进程a将k1写入存储区域t1,数据合并进程b将k2写入存储区域t2,数据合并进程c将k3写入存储区域t3,数据合并进程d将k4写入存储区域t4。

步骤211,根据各个存储区域之间的组织顺序,读取各个存储区域中存储的所述预合并数据,并利用读取的各个预合并数据组合成目标数据。

这里,则可根据t1、t2、t3、t4之间的组织关系,依次从t1、t2、t3、t4中读取预合并数据k1、k2、k3、k4,并依次合并k1、k2、k3、k4以形成目标数据。

如图3所示,本发明实施例提供了一种基于多处理器的数据合并装置,包括:

进程创建模块301,用于根据预设分组规则,在至少两个处理器上分别创建至少一个数据合并进程303;

分组处理模块302,用于根据预设分组规则将至少4个待合并数据划分为至少两个待合并数据组,并确定每一个所述待合并数据组分别对应的所述数据合并进程303;

至少一个数据合并进程303,用于将当前所述数据合并进程303所对应的待合并数据组中的各个待合并数据合并为一个预合并数据;

合并处理模块304,用于将各个所述数据合并进程分别合并的各个所述预合并数据,合并成目标数据。

如图4所示,本发明一个实施例中,还包括:消息中间件401;其中,

所述分组处理模块302,进一步用于将各个所述待合并数据发送至所述消息中间件401;

每一个所述数据合并进程303,进一步用于从所述消息中间件401中读取对应当前所述数据合并进程的待合并数据组。

如图5所示,本发明一个实施例中,还包括:存储设置模块501;其中,

所述存储设置模块501,用于在存储介质中构建每一个所述数据合并进程303分别对应的存储区域,并设置各个所述存储区域之间的组织顺序;

每一个所述数据合并进程303,进一步用于将当前所述数据合并进程303合并的所述预合并数据写入对应当前所述数据合并进程303的存储区域;

所述合并处理模块304,用于根据各个所述存储区域之间的组织顺序,读取各个所述存储区域中存储的所述预合并数据,并利用读取的各个所述预合并数据组合成目标数据。

本发明一个实施例中,还包括:数据采集模块(附图中未示出),用于采集至少四个数据采集节点分别提供的至少一个待合并数据。

本发明实施例提供了一种存储器,包括多条执行指令,所述执行指令适于由处理器加载并执行:

根据预设分组规则,在至少两个处理器上分别创建至少一个数据合并进程;

根据预设分组规则将至少4个待合并数据划分为至少两个待合并数据组,并确定每一个所述待合并数据组分别对应的所述数据合并进程;

利用各个所述数据合并进程将当前所述数据合并进程所对应的待合并数据组中的各个待合并数据合并为一个预合并数据;

将各个所述数据合并进程分别合并的各个所述预合并数据,合并成目标数据。

本发明实施例提供了一种存储控制器,包括:

处理器、存储器和总线;所述处理器和所述存储器通过所述总线连接;其中,

所述处理器,用于加载各指令,并执行:

根据预设分组规则,在至少两个处理器上分别创建至少一个数据合并进程;

根据预设分组规则将至少4个待合并数据划分为至少两个待合并数据组,并确定每一个所述待合并数据组分别对应的所述数据合并进程;

利用各个所述数据合并进程将当前所述数据合并进程所对应的待合并数据组中的各个待合并数据合并为一个预合并数据;

将各个所述数据合并进程分别合并的各个所述预合并数据,合并成目标数据。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

综上所述,本发明各个实施例至少具有如下有益效果:

1、本发明一实施例中,根据预设分组规则在多个处理器上分别创建至少一个数据合并进程,并将多个待合并数据划分为多个待合并数据组,在确定出各个待合并数据组与创建在多个处理器上的多个数据合并进程之间的对应关系之后,则可由运行在多个处理器上的多个数据合并进程分别对对应的待合并数据组中的各个待合并数据进行预合并处理,以形成预合并数据,最后再利用形成的各个预合并数据合并成目标数据。综上可见,通过运行在多个处理器上的多个数据合并进程同时对多个待合并数据进行预合并处理,最后再将各个数据合并进程形成的预合并数据合并成目标数据,可避免同一个处理器发生资源消耗严重而影响处理器性能,同时,还可快速实现对大量的待合并数据进行合,从而提高数据合影效率。

2、本发明一实施例中,第一方面,数据合并过程较单进程的合并方式更高效、稳定。第二方面,服务进程针对多用户的并发访问能够更容易满足。第三方面,多进程的使用可以有效的利用多核多处理器服务器的计算资源,使得合并过程更加快速。

3、本发明一实施例中,通过将划分的各个待合并数据组均发送至消息中间件,运行在不同处理器上的各个数据合并进程则可从消息中间件中读取到当前数据合并进程。

4、本发明一实施例中,通过将不同数据合并进程形成的预合并数据存储至不同的存储区域,且不同存储区域之间存在组织关系,后续则可根据不同存储区域之间的组织关系,利用不同存储区域中分别存储的各个预合并数据形成符合要求的目标数据。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1