数据处理系统和数据处理方法与流程

文档序号:13136717阅读:200来源:国知局
数据处理系统和数据处理方法与流程

本发明涉及数据库领域,尤其涉及数据处理系统和数据处理方法。



背景技术:

主处理器与协处理器协助处理数据的混合平台架构通常由1-2个中央处理器(英文:centralprocessingunit,简称:cpu)和1-8个集成众核(英文:manyintegratedcore,简称:mic)协处理器构成,协处理器处理器常用作联机分析处理(英文:onlineanalyticalprocessing,简称:olap)查询加速器,主要处理olap查询中计算密集型任务。从计算特征来看,协处理器尤其用于数据的连接处理或聚集处理等耗时且适合并行完成的独立操作。

在现有的cpu与mic混合架构处理数据的过程中,需要先在mic端分配空间,从cpu端通过外部设备互连总线(英文:peripheralcomponentinterconnectexpress,简称:pcie)通道向mic端拷贝需要处理的两个数据,然后在mic端执行实时操作系统(kernel)程序对两个数据进行处理,并将处理结果通过pcie通道由mic端拷贝到cpu端,最后mic端释放已分配的空间。

然而,当需要进行大数据量的数据处理时,不能将数据一次全部存储于mic端,这时需要在cpu端对两个数据进行数据分区,然后在mic端对每一分区进行上述数据处理过程,这样以来,所有的数据处理、数据传输以及内存访问管理工作都是由主处理器来执行,导致主处理器的工作负担比较重,并且在系统代码设计中需要集成数据传输、数据处理与内存访问管理的功能,代码比较复杂。



技术实现要素:

本发明提供了一种数据处理的系统和方法,能够简化系统的设计,并且减轻主处理器的工作负担。

第一方面,提供了一种数据处理系统,包括主处理器、协处理器和控制模块;

该主处理器用于将待处理数据发送至该控制模块;该控制模块用于接收该主处理器发送的该待处理数据,并将该待处理数据发送至该协处理器;

该协处理器用于接收该控制模块发送的该待处理数据,对该待处理数据进行处理,得到该待处理数据的处理结果,并将该待处理数据的处理结果通过该控制模块发送至该主处理器;

该主处理器用于接收该协处理器通过该控制模块发送的该待处理数据的处理结果。

本发明实施例的数据处理系统,通过在主处理器和协处理器之间增加用于控制传输数据的控制模块,减轻了主处理器的工作负担,并且简化了原本将集成数据处理、数据传输以及内存管理于一体的系统代码。

结合第一方面,在第一方面的第一种可能的实现方式中,该控制模块用于:将该待处理数据一次性发送至该协处理器,或者将该待处理数据分批发送至该协处理器,其中,在将该待处理数据发送至该协处理器时携带该待处理数据的存储属性,该存储属性包括驻留属性或流转属性,该驻留属性表示该待处理数据能够被多次访问,该流转属性表示该待处理数据仅能够被访问一次。

结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该控制模块具体用于:根据该待处理数据的处理上下文、该待处理数据的数据量和该协处理器可用的内存大小,确定该待处理数据的存储属性。

结合第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,该控制模块还用于:在将该待处理数据发送至该协处理器之前,根据该待处理数据的数据量、该待处理数据的存储属性和该协处理器可用的内存大小,确定该协处理器的内存中的驻留区域的内存大小和流转区域的内存大小,其中,该驻留区域中存储的数据能够被多次访问,该流转区域中的数据仅能够被访问一次,并且在被访问后删除或覆盖。

应理解,待处理数据的存储属性包括驻留属性或者流转属性,其中,驻留属性表示该待处理数据能够被多次访问,流转属性表示该待处理数据仅能够被访问一次。

还应理解,该协处理器可用的内存大小为该协处理器中除该协处理器系统占用的内存以外的内存大小。

可选地,该控制模块用于将该待处理数据的存储属性携带在该待处理数据中,并将携带存储属性的待处理数据块发送至该协处理器,或者可以在向该协处理器发送用于指示该待处理数据的存储属性的指示信息,本发明实施例对此不作限定。

可选地,该控制模块还用于在将该待处理数据发送至该协处理器之前,确定该协处理中的驻留区域的内存大小和流转区域的内存大小,其中该驻留区域中存储的数据能够被多次访问,该流转区域中存储的数据仅能够被访问一次,并且会在访问后被删除或覆盖。

本发明实施例的数据处理系统,控制模块通过在协处理器中设置驻留区域和流转区域,使得在计算时需要被多次数据保持一直存储在驻留区域中,将一次使用的数据分批传输流转区域,并分别与驻留中的数据进行处理,减少了每次通过pcie通道的数据传输量,并且提高了数据处理的效率。

结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,该协处理器的流转区域包括多个连续的子流转区域;

该控制模块具体用于:将该待处理数据分批依次发送至该多个连续的子流转区域中的每个子流转区域;

该协处理器具体用于:依次读取该连续的多个子流转区域中每个子流转区域中的数据,并对该每个子流转区域中的数据进行处理,在对该每个子流转区域中的数据处理完成后,将该每个子流转区域标识为空闲;在该连续的多个子流转区域中最后一个子流转区域中的数据处理完成后,并且该连续的多个子流转区域中第一个子流转区域标识为空闲时,则继续从该连续的多个子流转区域中的第一个子流转区域开始读取数据。

可选地,该多个子流转区域的数量=该流转区域的内存大小/该子流转区域的内存大小,其中该子流转区域的大小的设置使得该子流转区域中的数据传输至协处理器的时间和该协处理器的内核计算该子流转区域中的数据的时间相同或者近似为佳。

可选地,该多个子流转区域中每个子流转区域的内存大小可以相同。

本发明实施例的数据处理系统,通过设置多个子流转区域,并同时考虑协处理器可以的内存大小以及pcie通道的传输性能,能够提高pcie通道的数据传输效率以及数据处理系统的处理效率。

结合第一方面的第一种至第四种可能的实现方式中的任一种可能的实现方式,在第一方面的第五种可能的实现方式中,该控制模块具体用于:

若该待处理数据包括第一数据块和第二数据块,该第一数据块的数据量小于该协处理器可用的内存大小,并且该第二数据块的数据量大于该协处理器可用的内存大小,确定该第一数据块的存储属性为驻留属性,并将该第一数据块发送至该协处理器的驻留区域,确定该第二数据块的存储属性为流转属性,并将该第二数据块划分为多个第二子数据块分批依次发送至该协处理器的流转区域。

结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,该协处理器具体用于:对该驻留区域中的该第一数据块和该流转区域中的该多个第二子数据块中的每个第二子数据块进行处理,得到该第一数据块和该每个第二子数据块的处理结果;根据该第一数据块和该多个第二子数据块中每个第二子数据块的处理结果,得到该第一数据块和该第二数据块的处理结果。

本发明实施例的数据处理系统,协处理器对待处理数据的处理过程与控制模块向协处理器发送待处理数据的过程可以同时进行,可以减少每次通过pcie通道的数据传输量,从而进一步提高数据传输效率。

结合第一方面的第一种至第六种可能的实现方式中的任一种可能的实现方式,在第一方面的第七种可能的实现方式中,该控制模块还用于:若该待处理数据包括第一数据块和第二数据块,该第二数据块的数据量大于该协处理器可用的内存大小,且经过哈希处理后的该第一数据块的数据量大于该协处理器可用的内存大小,确定该第一数据块的存储属性为流转属性,并将该第一数据块划分为多个第一子数据块分批发送至该协处理器的流转区域,确定该第二数据块的存储属性为流转属性,并将该第二数据块划分为多个第二子数据块分批发送至该协处理器的流转区域。

结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,该协处理器还用于:对该流转区域中的该多个第一子数据块中每个第一子数据块和该多个第二子数据块中的每个第二子数据块进行处理,得到该每个第一子数据块和该每个第二子数据块的处理结果;根据该多个第一子数据块中每个第一子数据块和该多个第二子数据块中每个第二子数据块的处理结果,得到该第一数据块和该第二数据块的处理结果。

结合第一方面的第一种至第八种可能的实现方式中的任一种可能的实现方式,在第一方面的第九种可能的实现方式中,该主处理器包括第一缓存区和第二缓存区;该控制模块具体用于将该待处理数据存储至该第一缓存区,直到该第一缓存区存满后,将该第一缓存区中的数据发送至该协处理器,将剩余的待处理数据继续存储至第二缓存区,直到所述第二缓存区存满后,将所述第二缓存中的数据发送至所述协处理器。

结合第一方面的第九种可能的实现方式,在第一方面的第十种可能的实现方式中,该控制模块还用于在将该第一缓存区中的数据发送至该协处理器的同时,继续将该待处理数据存储至该第二缓存区,并在该第二缓存区存满后,将该第二缓存区中的数据发送至该协处理器。

可选地,该主处理器中的该第一缓存区和该第二缓存区的内存大小均与该协处理器中的该子流转区域的内存大小相同,能够提高数据处理过程中内存的利用率,并提高数据处理效率。

本发明实施例的数据处理系统,该控制模块通过将主处理器中第一缓存区和第二缓存区交替传输数据,可以提高处理数据的并行度,提高pcie通道的传输效率。

第二方面,提供了一种数据处理方法,该方法应用于第一方面中的数据处理系统,该数据处理系统包括主处理器、协处理器和控制模块,其中,该主处理器、该协处理器以及该控制模块用于执行上述第一方面或第一方面的任意可能的实现方式中与该主处理器、协处理器和控制模块对应的方法。

第三方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。

图1是本发明实施例的数据处理系统的架构示例。

图2是本发明实施例的数据处理系统的示意性框图。

图3是本发明实施例的数据处理方法的示意性流程图。

图4是本发明实施例的另一数据处理方法的示意性流程图。

图5是本发明实施例的再一数据处理方法的示意性流程图。

图6是本发明实施例的又一数据处理方法的示意性流程图。

图7是本发明实施例的数据处理方法的场景示意图。

图8是本发明实施例的另一数据处理方法的场景示意图。

图9是本发明实施例的再一数据处理方法的场景示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

图1示出了本发明实施例的数据处理系统100的架构示例,如图1所示,该数据处理系统包括:主处理器110、协处理器120和控制模块130,该主处理器110和该协处理器120之间通过pice通道进行数据传输,其中,主处理器110通常包括1-2个cpu,协处理器120通常包括1-8个mic处理器,该控制模块130用于控制该主处理器110与该协处理器120之间的数据处理和数据传输。

具体地,该主处理器110用于接收用户端的数据处理请求,根据该用户端的数据处理请求确定待处理数据,该数据处理请求例如可以为连接处理请求、查询处理请求或者聚集处理请求等,本发明实施例对此不作限定。

具体地,该控制模块130用于接收该主处理器110发送的待处理数据,确定待处理数据在协处理器中的存储属性,并可以通过两种不同的传输方式将待处理数据发送至协处理器120。

应理解,待处理数据的存储属性包括驻留属性或者流转属性,其中,驻留属性表示该待处理数据能够被多次访问,流转属性表示该待处理数据仅能够被访问一次。

还应理解,该控制模块可以将待处理数据一次性发送至协处理器,或者可以将待处理数据分批依次发送至协处理器。

可选地,该控制模块块可以通过软件实现,例如可以为系统中的程序代码,或者可以通过硬件实现,例如可以为集成在其它控制设备中的装置,本发明实施例对此不作限定。

具体地,该协处理器120用于通过控制模块130接收主处理器110发送的待处理数据,并对待处理数据进行处理,得到处理结果,最后通过该控制模块130向主处理器110返回处理结果。

可选地,该协处理器120可以用于对数据进行哈希连接处理或者olap查询,等计算密集型数据任务或者聚集处理等耗时且适合并行完成的操作,本发明实施例对此不作限定。

本发明实施例的数据处理系统,通过在主处理器和协处理器之间增加用于控制数据传输的控制模块,将主处理器在数据处理过程中需要调用的程序和代码封装在该控制模块中,使得主处理器在进行数据处理的过程中无需每次都调用所有需要使用的代码,只需要简单地调用该控制模块,便可以实现对数据处理、数据传输以及内存管理的控制,减轻了主处理器的工作负担,并且简化了系统的代码设计。

图2示出了本发明实施例的数据处理的系统200的示意性框图。该系统200包括主处理器210、协处理器220和控制模块230。

该主处理器210用于将待处理数据发送至该控制模块230。

该控制模块230用于接收该主处理器210发送的该待处理数据,并将该待处理数据发送至该协处理器220。

该协处理器220用于接收该控制模块230发送的该待处理数据,对该待处理数据进行处理,得到该待处理数据的处理结果,并将该待处理数据的处理结果通过该控制模块发送至该主处理器210;

该主处理器210用于接收该协处理器220通过该控制模块230发送的该待处理数据的处理结果。

本发明实施例的数据处理系统,通过在主处理器和协处理器之间增加用于控制数据传输的控制模块,将主处理器在数据处理过程中需要调用的程序和代码封装在该控制模块中,使得主处理器在进行数据处理的过程中无需多次调用所有需要使用的代码,只需要简单地调用该控制模块,便可以实现对数据处理、数据传输以及内存管理的控制,减轻了主处理器的工作负担,并且简化了系统的代码设计。

具体地,该主处理器用于确定待处理数据,并将该待处理器数据发送至控制模块。

具体地,该控制模块具体用于将该待处理数据一次性发送至该协处理器或者将该待处理数据分批发送至该协处理器,并且在该控制模块将该待处理数据发送至该协处理器时携带该待处理数据的存储属性。

可选地,该控制模块具体用于在该控制模块将该待处理数据发送至该协处理器之前,根据该待处理数据的处理上下文、该待处理数据的数据量以及该协处理器可用的内存大小,确定该待处理数据的存储属性,但本发明实施例不限于此。

可选地,该控制模块可以根据该待处理数据是否需要多次使用以及该待处理数据是否能够全部存储至该协处理器,判断该待处理数据的存储属性。

应理解,待处理数据的存储属性包括驻留属性或者流转属性,其中,驻留属性表示该待处理数据能够被多次访问,流转属性表示该待处理数据仅能够被访问一次。

还应理解,该协处理器可用的内存大小为该协处理器中除该协处理器系统占用的内存以外的内存大小。

可选地,该控制模块用于将该待处理数据的存储属性携带在该待处理数据中,并将携带存储属性的待处理数据块发送至该协处理器,或者可以在向该协处理器发送用于指示该待处理数据的存储属性的指示信息,本发明实施例对此不作限定。

可选地,该控制模块还用于在将该待处理数据发送至该协处理器之前,确定该协处理中的驻留区域的内存大小和流转区域的内存大小,其中该驻留区域中存储的数据能够被多次访问,该流转区域中存储的数据仅能够被访问一次,并且会在访问后被删除或覆盖。

本发明实施例的数据处理系统,控制模块通过在协处理器中设置驻留区域和流转区域,使得在计算时需要被多次数据保持一直存储在驻留区域中,将一次使用的数据分批传输流转区域,并分别与驻留中的数据进行处理,减少了每次通过pcie通道的数据传输量,并且提高了数据处理的效率。

可选地,该控制模块可以根据该待处理数据的数据量、该待处理数据的存储属性以及该协处理器可以的内存大小,确定该协处理器中驻留区域的内存大小和流转区域的内存大小。

应理解,该控制模块可以优先考虑驻留属性的待处理数据,根据驻留属性的待处理数据的数据量,在该协处理器可用的内存中确定出驻留区域的内存大小,然后将该协处理器剩余的可用内存确定为流转区域的内存大小。

可选地,该控制模块可以将该流转区域划分为多个子流转区域,该多个子流转区域的数量可以为该流转区域的内存大小除以该每个子流转区域的内存大小,其中,该每个子流转区域的内存大小可以根据数据处理系统的平台情况预先测试得到,即可以将该每个子流转区域的内存大小设置为使得该每个子流转区域中的数据复制到该协处理器的时间与该协处理器的内核计算该每个子流转区域中的数据的时间相同或相近,同时可以考虑可以使得每个子流转区域的数据在pcie通道传输时的传输性能,本发明实施例对此不作限定。

本发明实施例的数据处理系统,通过设置多个子流转区域,并同时考虑协处理器可以的内存大小以及pcie通道的传输性能,能够提高pcie通道的数据传输效率以及数据处理系统的处理效率。

具体地,该控制模块具体用于建立该多个子流转区域的队列,形成连续的多个子流转区域,并将该待处理数据分批依次发送至该多个子流转区域中的每个子流转区域。

具体地,该协处理器具体用于依次读取该连续的多个子流转区域中每个子流转区域中的数据,并对该子流转区域中的数据进行处理,并对该每个自流转区域中的数据处理完之后,将该每个自流转子区域标识为空闲,在该连续的多个子流转区域中最后一个子流转区域中的数据处理完成后,并且检测到该连续的多个子流转区域中第一个子流转区域标识为空闲时,继续从该连续的多个子流转区域中第一个子流转区域中读取数据,并处理。

本发明实施例的数据处理系统,该协处理器通过多个循环的子流转区域对数据进行读取和处理,可以提高协处理器的内存利用率以及该数据处理的并行度。

可选地,该主处理器可以包括第一缓存区和第二缓存区,该控制模块用于将该待处理数据存储至该第一缓存区,直到该第一缓存区存满后,将该第一缓存区中的数据发送至协处理器。

可选地,该控制模块用于在将该第一缓存区中的数据发送至该协处理器的同时,将该待处理数据继续存储至该第二缓存区,并在该第二缓存区存满之后,将该第二缓存区中的数据发送至该协处理器。

本发明实施例的数据处理系统,通过在主处理器中设置两个缓存区交替进行数据的传输和存储,提高了系统的并行度,以及数据处理效率,同时可以将缓存区设置的大小设置为与协处理器中每个流转区域的大小相同,从而达到提高协处理器内存利用率,以及提高数据处理效率。

作为一个可选地实施例,假设,该待处理数据包括第一数据块和第二数据块,其中,该第一数据块的数据量小于该协处理器可用的内存大小,该第二数据块的数据量大于该协处理器可用的内存大小。

具体地,该控制模块用于接收该主处理器发送的该第一数据块和该第二数据块,根据该第一数据块的数据量、该第二数据块的数据量、该协处理器可用的内存大小以及处理上下文,确定该第一数据块为驻留属性,该第二数据块为流转属性,并且将该第一数据块发送至该协处理器的驻留区域,将该第二数据块划分为多个第二子数据块,并将该多个第二子数据块分批发送至该协处理器的流转区域。

可选地,该第一数据块可以一次性发送至该协处理器的驻留区域,且该第一数据块可以为经过哈希运算的第一数据块,本发明实施例对此不作限定。

具体地,该协处理器用于对驻留区域中的该第一数据块以及该流转区域中的该多个第二子数据块中的每个第二子数据块进行处理,该第一数据块与每个第二子数据块对应的处理结果,并根据该第一数据块与该多个第二子数据块中每个第二子数据块的处理结果,得到该第一数据块与该第二数据块的处理结果,并将该第一数据块与该第二数据块的处理结果通过该控制模块发送至该主处理器。

作为另一个可选的实施例,假设该待处理器数据包括第一数据块和第二数据块,其中,该第二数据块的数据量大于该协处理器可用的内存大小,且经过哈希处理后的该第一数据块的数据量也大于该协处理器可用的内存大小。

该控制模块用于接收该主处理器发送的该第一数据块和该第二数据块,根据该第一数据块的数据量、该第二数据块的数据量、该协处理器可用的内存大小以及处理上下文,确定该第一数据块和该第二数据块均为流转属性,并将该第一数据块划分为多个第一子数据块分批发送至该协处理器的流转区域,将该第二数据块划分为多个第二子数据块分批发送至该协处理器的流转区域。

可选地,该主处理器可以包括第一缓存区和第二缓存区,该第一缓存与该第二缓存的内存大小相同,该控制模块可以通过第一缓存区和第二缓存区将该多个第一子数据块和该多个第二子数据块发送至该协处理器,本发明实施例对此不作限定。

具体地,该控制模块用于根据该第一缓存区或该第二缓存区的内存大小,将该第一数据块和该第二数据块分块,得到多个第一子数据块以及与该多个第一子数据块中每个第一子数据块对应的第二子数据块,并且使得该每个第一子数据块和与该每个第一子数据块对应的第二子数据块的数据量总和与该第一缓存区或该第二缓存区相等,该控制模块用于通过该第一缓存区和该第二缓存区轮流将该多个第一子数据块中每个第一子数据块和该多个第二子数据块中每个第二子数据块发送至协处理器。

具体地,该协处理器用于对该流转区域中的该多个第一子数据块中每个第一子数据块和该多个第二子数据块中的每个第二子数据块进行处理,得到该每个第一子数据块和该每个第二子数据块的处理结果,根据该多个第一子数据块中每个第一子数据块和该多个第二子数据块中每个第二子数据块的处理结果,得到该第一数据块和该第二数据块的处理结果,并将该第一数据块和该第二数据块的处理结果通过该控制模块发送至主处理器。

上面结合图1和图2对本发明的数据处理的系统进行了描述,下面将结合图3至图6介绍在上述数据处理系统中进行数据处理的方法。

图3示出了本发明实施例的数据处理的方法300的示意性流程图。该方法300可以应用于如图2所示的系统中,并可以实现上述数据处理系统中主处理器、协处理器和控制模块实现的各个功能,为避免重复,此处不再赘述。

s301,该主处理器将待处理数据发送至该控制模块。

s302,该控制模块接收该主处理器发送的该待处理数据,并将该待处理数据发送至该协处理器。

s303,该协处理器接收该控制模块发送的该待处理数据,对该待处理数据进行处理,得到该待处理数据的处理结果,并将该待处理数据的处理结果通过该控制模块发送至该主处理器。

s304,该主处理器接收该协处理器通过该控制模块发送的该待处理数据的处理结果。

可选地,该控制模块将该待处理数据发送至该协处理器,包括:

将该待处理数据一次性发送至该协处理器,或者将该待处理数据分批发送至该协处理器,并且在将该待处理数据发送至该协处理器时携带该待处理数据的存储属性,该存储属性包括驻留属性或流转属性,该驻留属性表示该待处理数据能够被多次访问,该流转属性表示该待处理数据仅能够被访问一次。

可选地,该控制模块根据该待处理数据的处理上下文、该待处理数据的数据量和该协处理器可用的内存大小,确定该待处理数据的存储属性。

可选地,在将该待处理数据发送至该协处理器之前,该方法还包括:

该控制模块根据该待处理数据的数据量、该待处理数据的存储属性和该协处理器可用的内存大小,确定该协处理器的内存中的驻留区域的内存大小和流转区域的内存大小,其中,该驻留区域中存储的数据能够被多次访问,该流转区域中的数据仅能够被访问一次,并且在被访问后删除或覆盖。

可选地,该协处理器的流转区域包括连续的多个子流转区域;该控制模块将该待处理数据分批发送至该协处理器,包括:该控制模块将该待处理数据分批依次发送至该连续的多个子流转区域中的每个子流转区域;该协处理器对该待处理数据进行处理,得到该待处理数据的处理结果,包括:

该协处理器依次读取该连续的多个子流转区域中每个子流转区域中的数据,并对该每个子流转区域中的数据进行处理,在对该每个子流转区域中的数据处理完成后,将该每个子流转区域标识为空闲;该协处理器在该连续的多个子流转区域中最后一个子流转区域中的数据处理完成后,并且该连续的多个子流转区域中第一个子流转区域标识为空闲时,继续从该连续的多个子流转区域中的第一个子流转区域开始读取数据。

可选地,该控制模块将该待处理数据分批发送至该协处理器,包括:

若该待处理数据包括第一数据块和第二数据块,该第一数据块的数据量小于该协处理器可用的内存大小,并且该第二数据块的数据量大于该协处理器可用的内存大小,该控制模块确定该第一数据块的存储属性为驻留属性,并将该第一数据块发送至该协处理器的驻留区域,该控制模块确定该第二数据块的存储属性为流转属性,并将该第二数据块划分为多个第二子数据块分批依次发送至该协处理器的流转区域。

可选地,该协处理器对该待处理数据进行处理,得到该待处理数据的处理结果,包括:

该协处理器对该驻留区域中的该第一数据块和该流转区域中的该多个第二子数据块中的每个第二子数据块进行处理,得到该第一数据块和该每个第二子数据块的处理结果;该协处理器根据该第一数据块和该多个第二子数据块中每个第二子数据块的处理结果,得到该第一数据块和该第二数据块的处理结果。

可选地,该控制模块将该待处理数据发送至该协处理器,包括:若该待处理数据包括第一数据块和第二数据块,该第二数据块的数据量大于该协处理器可用的内存大小,且经过哈希处理后的该第一数据块的数据量大于该协处理器可用的内存大小,该控制模块确定该第一数据块的存储属性为流转属性,并将该第一数据块划分为多个第一子数据块分批发送至该协处理器的流转区域,该控制模块确定该第二数据块的存储属性为流转属性,并将该第二数据块划分为多个第二子数据块分批发送至该协处理器的流转区域。

可选地,该协处理器对该待处理数据进行处理,得到该待处理数据的处理结果,包括:

该协处理器对该流转区域中的该多个第一子数据块中每个第一子数据块和该多个第二子数据块中的每个第二子数据块进行处理,得到该每个第一子数据块和该每个第二子数据块的处理结果;该协处理器根据该多个第一子数据块中每个第一子数据块和该多个第二子数据块中每个第二子数据块的处理结果,得到该第一数据块和该第二数据块的处理结果。

可选地,该主处理器包括第一缓存区和第二缓存区;该控制模块将该待处理数据发送至该协处理器,包括:该控制模块将该待处理数据存储至该第一缓存区,直到该第一缓存区存满后,将该第一缓存区中的数据发送至该协处理器。

可选地,该控制模块将该待处理数据发送至该协处理器,包括:

在将该第一缓存区中的数据发送至该协处理器的同时,该控制模块继续将该待处理数据存储至该第二缓存区,并在该第二缓存区存满后,将该第二缓存区中的数据发送至该协处理器。

本发明实施例的数据处理方法,通过主处理器和协处理器之间的控制模块完成主处理器和协处理器之间的数据传输以及数据处理,减轻了主处理器的工作负担,并且简化了原本将数据处理、数据传输以及内存管理集成于一体的系统代码。

上面结合图3对本发明实施例的数据处理方法进行了描述,下面将结合具体的实施例对本发明实施例的数据处理方法进行详细描述。

图4示出了本发明实施例的另一数据处理方法400的示意性流程图,该方法400可以应用于如图2所示的系统中,并且结合图7详细介绍了数据处理系统在对r表和s表进行哈希连接处理时的方法流程,其中,该r表与该s表相关联。

应理解,本发明实施例可以应用于关系型数据库,在关系型数据库中,每个数据表中都有若干个属性,若其中的某一个属性能够唯一标识该数据表,则该属性组就为该表格的一个主键,例如,该r表可以为学生表,该学生表包括学号、姓名和班级,而其中每个学生的学号是惟一的,则学号就是主键,外键主要是与另外一个数据表进行关联,例如,该s表可以为成绩表,该成绩表包括学号、课程号和成绩,其中课程号和学号一起才可以确定成绩,所以该成绩表的主键为学号和课程号,并且成绩表中的学号和学生表中的学号对应,因此,该成绩表中的学号为学生表的外键,该学生表和该成绩表通过学号进行关联。

s401,控制模块接收主处理器发送的r表和s表,该r表和该s表相互关联,并且,该r表中的数据量小于协处理器可用的内存大小,该s表中的数据量大于该协处理器可以的内存大小。

s402,该控制模块根据该r表的数据量、该s表的数据量、该协处理器可用的内存大小以及处理上下文,将该r表标识驻留属性,将该s表标识为流转属性。

具体地,该控制模块可以将该r表一次性发送至该协处理器的驻留区,将该s表分批发送至该协处理器的流转区。

可选地,在该s402之前,该控制模块可以根据该r表的数据量、该s表的数据量、该r表的驻留属性、该s表的流转属性以及该协处理器可用的内存大小,确定该协处理器中的驻留区域的内存大小以及流转区域的内存大小。

s403,该控制模块对该r表进行哈希运算,得到r表哈希表。

s404,该控制模块将该r表哈希表发送至协处理器的驻留区域。

s405,该控制模块将该s表划分为多个子s表。s406,该控制模块将该多个子s表中第j个子s表发送至该协处理器的第i个空闲的子流转区域。

可选地,该主处理器可以包括第一缓存区和第二缓存区,该控制模块可以通过该第一缓存区和该第二缓存区将该多个子s表中每个子s表发送至该协处理器的流转区域。

s407,该协处理器对该驻留区域中该r表哈希表和该第i个子流转区域中的第j个子s表进行哈希连接运算,得到该第j个子s表对应的处理结果。

s408,该协处理器将该第i个子流转区域标识为空闲。

s409,该控制模块将该多个子s表中第j+1个子s表发送至该协处理器的第i+1个空闲的子流转区域。

s410,该协处理器对该驻留区域中该r表哈希表和该第i+1个子流转区域中的第j+1个子s表进行哈希连接运算,得到该第j+1个子s表对应的处理结果。

s411,该协处理器将该第i+1个子流转区域标识为空闲。

可选地,该协处理器可以包括连续的多个子流转区域,该协处理器可以依次读取该连续的多个子流转区域中每个子流转区域中的子s表,并将该每个子流转区域中的子s表与该驻留区域中的r表进行处理。

s412,该协处理器根据该驻留区中的该r表哈希表和该多个子流转区域中每个子流转区域中的子s表的哈希连接结果,得到该r表与该s表的哈希连接结果。

具体地,该协处理器可以根据s406-s411中所述的方法,获得该多个子s表中每个子s表对应的数据连接处理结果,可以进一步得到该r表与该s表的哈希连接结果。

s413,该协处理器通过该控制模块将该哈希连接结果发送至该主处理器。

本发明实施例的数据处理方法,通过主处理器和协处理器之间的控制模块完成主处理器和协处理器之间的数据传输以及数据处理,减轻了主处理器的工作负担,并且简化了原本将数据处理、数据传输以及内存管理集成于一体的系统代码。

图5示出了本发明实施例的再一数据处理方法500的示意性流程图。该方法500可以应用于如图2所示的系统中,并且结合图8详细介绍了数据处理系统在对r表和s表进行数据连接处理时的另一方法流程。

s501,控制模块接收主处理器发送的r表和s表,其中,该r表与该s表相关联,该s表的数据量大于该协处理器可用的内存大小,经过哈希运算的该r表的数据量也大于该协处理器可用的内存大小。

s502,该控制模块根据该r表的数据量、该s表的数据量、该协处理器可用的内存大小以及处理上下文,将该r表和该s表均标识为流转属性。

具体地,该控制模块可以将该r表一次性发送至该协处理器的驻留区,将该s表分批发送至该协处理器的流转区。

可选地,在该s502之前,该控制模块可以根据该r表的数据量、该s表的数据量、该r表的驻留属性、该s表的流转属性以及该协处理器可用的内存大小,确定该协处理器中的驻留区域的内存大小以及流转区域的内存大小。

可选地,由于该r表和该s表均为流转属性,则该控制模块可以不在该协处理器中设置驻留区域,将该协处理器中可用的内存全部用来设置流转区域,以提高内存利用率。

s503,该控制模块对该r表进行运算,得到r表哈希表。

s504,该控制模块将该r表哈希表和该s表划分为多个子r表哈希表和多个子s表,且该多个子r表哈希表中的每个子r表哈希表与该多个s表中的每个子s表一一对应。

该多个子s表例如可以为图8中的s1表、s2表,该多个子r表哈希表例如可以为图8中的r1表哈希表、r2表哈希表。

s505,该控制模块将该多个子r表哈希表中第j个子r表哈希表与第j个子s表发送至协处理器的第i个子流转区域。

可选地,该主处理器可以包括第一缓存区和第二缓存区,该控制模块可以通过该第一缓存区和该第二缓存区将该多个子r表中每个子r表以及与该每个子r表对应的子s表发送至该协处理器的流转区域。

s506,该协处理器对该第i个子流转区域中该第j个子r表哈希表与第j个子s表进行哈希连接处理。

s507,该协处理器将该第i个子流转区域标识为空闲。

可选地,该协处理器可以包括连续的多个子流转区域,该协处理器可以依次读取该连续的多个子流转区域中每个子流转区域中的子r表以及与该子r表对应的子s表,并将每个子流转区域中的子s表与子r表进行处理。

s508,该控制模块将该多个子r表哈希表中第j+1个子r表哈希表与第j+1个子s表发送至协处理器的第i+1个子流转区域。

s509,该协处理器对该第i+1个子流转区域中该第j+1个子r表哈希表与第j+1个子s表进行哈希连接处理。

s510,该协处理器将该第i+1个子流转区域表示为空闲。

s511,该协处理器根据该多个子r表哈希表中每个子r表哈希表与该多个子s表中每个子s表的哈希连接结果,确定该r表与该s表的哈希处理结果。

具体地,该协处理器可以根据s505-s510中所述的方法,获得该多个子s表中每个子s表对应的数据连接处理结果,可以进一步得到该r表与该s表的数据连接处理结果,并将该r表与s表的数据连接处理结果,传输至该主处理器。

s512,该协处理器将该r表与该s表的哈希处理结果通过该控制模块发送至该主处理器。

本发明实施例的数据处理方法,通过主处理器和协处理器之间的控制模块完成主处理器和协处理器之间的数据传输以及数据处理,减轻了主处理器的工作负担,并且简化了原本将集成数据处理、数据传输以及内存管理于一体的系统代码。

图6示出了本发明实施例的又一数据处理方法600的示意性流程图。该方法600可以应用于如图2所示的系统中,并且结合图9详细介绍了数据处理系统在事实表与该事实表的多个维度表中的进行哈希连接处理时的另一方法流程。

应理解,事实表用于存储至少一个事实记录,每个事实记录对应事实表中的一行,并且包括键值列和度量值列,其中,键值列中的值对应事实记录的维度,例如,商品产地、商品价格、商品数量、交易日期、商品种类、商品名称,等等;度量值列中的值对应于事实表的主题内容,例如,销售额或销售量,等等。

还应理解,维度表用于存储事实记录的维度特性,维度表可以包括名称列和属性列,例如,商品产地这个维度表中包括三个列,产地名称(locationname)、产地编号(locationid)和地址(address),其中,产地名称为名称列,产地编号和地址为属性列。事实表中的键值列可以对应于维度表中的属性列,事实表中的每个键值列都可以对应于一个维度表。

主键,唯一标识表中的一列,一个表中任意两行具有不同的主键值,并且主键不允许有空值。一般地,表的主键为表的第一列。

外键,用于连接两个表,如果表a中的列m与表b中的列n相对应,即列m与列n对应于相同的属性,例如,均对应于订单号,并且列m为表a中的主键,则列n为表b中的外键。事实表的外键对应于维度表的主键。

s601,控制模块接收主处理器发送的事实表和多个维度表,其中,所述事实表与所述多个维度表中每个维度表相关联,该事实表的数据量大于该协处理器可用的内存大小,经过哈希运算的该多个维度表的数据总量小于该协处理器可用的内存大小。

可选地,该多个维度表例如可以为图9中的第一维度表、第二维度表。

s602,该控制模块根据该多个维度表的数据量、该事实表的数据量、该协处理器可用的内存大小以及处理上下文,将该多个维度表标识为驻留属性,并将该事实表标识为流转属性。

具体地,该控制模块可以将该多个维度表一次性发送至该协处理器的驻留区,将该事实表分批发送至该协处理器的流转区。

可选地,在该控制模块向该协处理器发送该多个维度表和该事实表之前,该控制模块可以根据连接过滤器对该多个维度表中的每个维度表以及该事实表进行过滤,过滤掉与本次哈希连接无关的记录,减少了需要传输的事实表和维度表的数据量,但本发明实施例对此不作限定。

s603,该控制模块对该多个维度表中的每个维度表进行哈希处理,得到该多个维度表中每个维度表哈希表。

可选地,该多个维度表哈希表例如可以为图9中的第一维度表哈希表、第二维度表哈希表,且该第一维度表经过哈希处理后得到该第一维度表哈希表,该第二维度表经过哈希处理后得到该第二维度表哈希表。

s604,该控制模块将该多个维度表哈希表传输至协处理器的驻留区域。

可选地,该控制模块器可以将该多个维度表哈希表同时传输至该协处理器,或者可以将该多个维度表哈希表中每个维度表哈希表依次传输至该协处理器,本发明实施例对此不作限定。

可选地,在该s604之前,该控制模块可以根据该多个维度表的数据量、该事实表的数据量、该多个维度表的驻留属性、该事实表的流转属性以及该协处理器可用的内存大小,确定该协处理器中的驻留区域的内存大小以及流转区域的内存大小。

可选地,该协处理器可以将该多个维度表哈希表存储在该协处理器的驻留存储区,或者可以根据该驻留存储区的内存大小以及该多个维度表哈希表的数据量,将该协处理器的驻留存储区划分为多个子驻留区域,并将该多个维度表哈希表分别存储至该多个子驻留区域,本发明实施例对此不作限定。

s605,该控制模块对该事实表进行压缩处理,得到事实压缩表。

可选地,如图9中所示,该事实表经过压缩处理后得到事实压缩表。

可选地,该控制模块可以对经过连接过滤器过滤后的事实表进一步进行数据压缩处理,从而更进一步地减少该事实表的数据量。

s606,该控制模块将该事实压缩表划分为多个子事实压缩表。

s607,该控制模块将该多个事实压缩表中的第j个子事实压缩表发送至该协处理器的第i个子流转区域。

具体地,该主处理器包括第一缓存区和第二缓存区,该控制模块可以通过该第一缓存区和该第二缓存区将该多个子事实压缩表中每个子事实压缩表发送至该协处理器流转区域。

可选地,该控制模块可以根据该缓存区的内存大小,将该事实压缩表划分为多个子事实压缩表,本发明实施例对此不作限定。

s608,该协处理器对该第i个子流转区域中该第j个子事实压缩表与该多个维度表哈希表中每个维度表哈希表进行哈希连接处理,得到该第j个子事实压缩表对应的哈希连接结果。

s609,该协处理器将该第i个子流转区域标识为空闲。

可选地,该协处理器可以包括连续的多个子流转区域,该协处理器可以依次读取该连续的多个子流转区域中每个子流转区域中的子事实压缩表,并将该子事实压缩表与驻留区域中多个维度表哈希表中的每个维度表哈希表进行哈希连接处理。

s610,该控制模块将该多个事实压缩表中的第j+1个子事实压缩表发送至该协处理器的第i+1个子流转区域。

s611,该协处理器对该第i+1个子流转区域中该第j+1个子事实压缩表与该多个维度表哈希表中每个维度表哈希表进行哈希连接处理,得到该第j+1个子事实压缩表对应的哈希连接结果。

s612,该协处理器将该第i+1个子流转区域标识为空闲。

s613,该协处理器根据该多个子事实压缩表中每个子事实压缩表对应的哈希连接结果,得到该多个维度表与该事实表的连接结果。

具体地,该协处理器可以根据s607-s612中所述的方法,获得该多个子事实压缩表中每个子事实压缩表对应的数据连接处理结果,可以进一步得到该事实表与该多个维度表中每个维度表的数据连接处理结果,并将该事实表与该多个维度表中每个维度表的数据连接处理结果,传输至该主处理器。

s614,该协处理器将该事实表与该多个维度表中每个维度表的哈希连接结果通过该控制模块发送至该主处理器。

本发明实施例的数据处理方法,通过主处理器和协处理器之间的控制模块完成主处理器和协处理器之间的数据传输以及数据处理,减轻了主处理器的工作负担,并且简化了原本将数据处理、数据传输以及内存管理集成于一体的系统代码。

在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取存储器(randomaccessmemory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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