基于分布式数据的并发处理方法和系统技术方案

技术编号:9838672 阅读:97 留言:0更新日期:2014-04-02 02:12
一种基于分布式数据的并发处理方法,包括以下步骤:控制端获取提交的作业对应的数据块信息;任务处理端向控制端发送任务处理请求;控制端查找与任务处理端分布于同一服务器且还未分配的数据块,将查找到的数据块分配给任务处理端;若未查找到相应的数据块,则控制端统计正在被任务处理端处理的数据块最少的服务器,将该服务器上未分配的数据块分配给任务处理端;任务处理端按照预设流程处理控制端分配的数据块。上述方法可并发处理分布式数据。而且任务处理端优先处理本机存储的数据块,或者处理正在被处理的数据块最少的服务器上的未分配的数据块,可提高并发处理的整体速度。此外,还提供一种基于分布式数据的并发处理系统。

【技术实现步骤摘要】
基于分布式数据的并发处理方法和系统
本专利技术涉及数据处理
,特别涉及一种基于分布式数据的并发处理方法和系统。
技术介绍
随着信息与通讯技术的发展,海量数据时代已经到来。各个行业需要存储的数据量与日俱增,尤其是需要存储大量用户数据的行业,例如金融、电信、网络通信服务(电子邮件、即时通信)、网络社交服务(微博、论坛)等等。海量数据一般被分布式存储于多台服务器中,存储海量数据的服务器可达几千台甚至上万台。这些服务器可位于一个或多个服务器集群,亦或者位于一个或多个数据处理中心。一些数据库的数据存储方式也为分布式存储方式,例如,xcube数据库。xcube为分布式的NoSQL数据库,它将大数据量的数据表划分为多个子表,分别将子表存储到多台服务器上,并将子表信息记录在路由表中。子表信息包括子表的开始行键值、结束行键值、子表的数据量和子表所在的服务器。子表的开始行键值、结束行键值分别表示子表的开始行和结束行的主键的键值。。子表中包含开始行键值在父数据表中对应的位置到结束行键值在父数据表中对应的位置的所有记录。海量数据的快速处理是人们需要面对的问题。多线程、多任务分解的处理方式可对单机存储的数据进行并发处理,而如何协调服务器集群中的服务器对分布式海量数据进行并发处理,提高海量数据的处理速度是亟需解决的问题。
技术实现思路
基于此,有必要提供一种能快速并发处理分布式数据的基于分布式数据的并发处理方法。一种基于分布式数据的并发处理方法,包括以下步骤:控制端获取提交的作业对应的数据块信息;任务处理端向所述控制端发送任务处理请求;所述控制端查找与所述任务处理端分布于同一服务器且还未分配的数据块,将查找到的数据块分配给所述任务处理端;若未查找到与所述任务处理端分布于同一服务器且还未分配的数据块,则所述控制端统计正在被任务处理端处理的数据块最少的服务器,将该服务器上未分配的数据块分配给所述任务处理端;所述任务处理端按照预设流程处理所述控制端分配的数据块。基于此,还有必要提供一种能并发处理分布式数据的基于分布式数据的并发处理系统。一种基于分布式数据的并发处理系统,包括控制端和多个任务处理端,所述控制端包括初始化模块、任务分配模块,其中:所述初始化模块用于获取提交的作业对应的数据块信息;所述任务处理端用于向所述控制端发送任务处理请求;所述任务分配模块用于查找与所述任务处理端分布于同一服务器且还未分配的数据块,将查找到的数据块分配给所述任务处理端;所述任务分配模块还用于若未查找到与所述任务处理端分布于同一服务器且还未分配的数据块,则统计正在被任务处理端处理的数据块最少的服务器,将该服务器上未分配的数据块分配给所述任务处理端;所述任务处理端还用于按照预设流程处理所述控制端分配的数据块。上述基于分布式数据的并发处理方法和系统,控制端可将分布式存储的数据块分别分配给不同的任务处理端进行处理,达到并发处理分布式数据的目的。而且,上述方法和系统中,控制端将数据块优先分配给与数据块分布于同一服务器的任务处理端进行处理,任务处理端优先处理本机存储的数据块,可提高数据块的处理速度,从而提高并发处理的整体速度。另外,当不存在还未分配的与任务处理端分布于同一服务器的数据块时,将正在被处理的数据块最少的服务器上的未分配的数据块分配给任务处理端,可提高任务处理端处理数据块的速度。因为存储数据块的服务器上被任务处理端处理的数据块数量少,说明与服务器交互的任务处理端数量少,服务器较为空闲,处理较为空闲的服务器上的数据块,服务器的响应速度也快,处理数据块的速度就快,从而可提高并发处理的整体速度。【附图说明】图1为一个实施例中的基于分布式数据的并发处理方法的流程示意图;图2为一个实施例中控制端和任务处理端的部署示意图;图3为另一实施例中的基于分布式数据的并发处理方法的流程示意图;图4为一个实施例中数据块处理中断恢复的流程示意图;图5为一个应用场景中的基于分布式数据的并发处理方法的原理图;图6为一个实施例中控制端与任务处理端建立通信的原理图;图7为一个实施例中控制端分配任务的分配算法的流程图;图8为一个实施例中基于分布式数据的并发处理方法包括的初始化步骤。图9为一个实施例中的基于分布式数据的并发处理系统的结构示意图;图10为一个实施例中控制端的结构示意图;图11为另一实施例中控制端的结构示意图。【具体实施方式】本专利技术中,控制端与多个任务处理端交互,控制端为任务处理端分配任务,任务处理端处理控制端分配的任务。优选的,控制端和任务处理端部署于不同的服务器上。进一步优选的,一台服务器部署一个任务处理端。如图1所示,在一个实施例中,一种基于分布式数据的并发处理方法,包括以下步骤:步骤S101,控制端获取提交的作业对应的数据块信息。具体的,作业对应的数据块可为分布式存储于多个服务器的文件块或数据表。在一个实施例中,数据块信息包括数据块标识、数据块的数据量大小和数据块所在服务器标识。具体的,数据块标识可为文件块的存储地址或数据表的表名。服务器标识可为服务器IP地址。在一个实施例中,步骤S101可向管理提交的作业对应的数据块的数据管理系统请求获取提交的作业对应的数据块信息。在一个实施例中,提交的作业可为xcube数据库的数据表,用数据表名称和数据表中的键值范围来标识,表示该数据表中该键值范围内的记录为待处理的作业。键值范围由数据表中待处理的开始行键值和结束行键值组成。步骤S101可根据数据表名称和键值范围在xcube存储子表信息的路由表中查找对应的子表信息,获取到作业对应的子表的开始行键值、结束行键值、数据量大小和所在的服务器标识。在一个实施例中,子表标识由数据表名称以及子表对应的开始行键值和/或结束行键值构成。步骤S102,任务处理端向控制端发送任务处理请求。在一个实施例中,控制端被启动后,可在指定的文件中写入控制端的标识,或者向用于管理控制端标识的预设系统发送控制端的标识。具体的,控制端的标识可由控制端所在的服务器地址、控制端的端口号和时间戳组成。任务处理端被启动后,可在指定的文件中读取控制端的标识,或者向用于管理控制端标识的预设系统请求获取控制端的标识。任务处理端获取到控制端的标识后,可向控制端发送注册包。注册成功后,任务处理端可以一定的频率向控制端发送心跳包。控制端接收到心跳包后,可扫描是否还有可分配的数据块,若有,则可向任务处理端发送有可分配数据块的响应包。任务处理端接收到有可分配数据块的响应包后,即可向控制端发送任务处理请求。具体的,任务处理请求中可包含任务处理端所在服务器标识。具体的,服务器标识为服务器的IP地址。步骤S103,控制端查找与任务处理端分布于同一服务器且还未分配的数据块,将查找到的数据块分配给任务处理端。如图2所示,在一个实施例中,控制端和任务处理端与提交的作业对应的数据块分布式部署于相同的服务器集群或相同的数据处理中心。任务处理端与作业对应的数据块有可能分布于同一服务器。具体的,控制端可在作业对应的数据块信息中查找与任务处理端分布于同一服务器且还未分配的数据块。优选的,控制端可查找与任务处理端分布于同一服务器的还未分配的数据块中数据量最大的数据块。本实施例中,优先处理数据量大的数据块,可避免出现长尾效应,加快并发处理的整体速度本文档来自技高网...
基于分布式数据的并发处理方法和系统

【技术保护点】
一种基于分布式数据的并发处理方法,包括以下步骤:控制端获取提交的作业对应的数据块信息;任务处理端向所述控制端发送任务处理请求;所述控制端查找与所述任务处理端分布于同一服务器且还未分配的数据块,将查找到的数据块分配给所述任务处理端;若未查找到与所述任务处理端分布于同一服务器且还未分配的数据块,则所述控制端统计正在被任务处理端处理的数据块最少的服务器,将该服务器上未分配的数据块分配给所述任务处理端;所述任务处理端按照预设流程处理所述控制端分配的数据块。

【技术特征摘要】
1.一种基于分布式数据的并发处理方法,包括以下步骤:控制端获取提交的作业的预设信息;所述控制端检查所述作业是否已经成功初始化,若否,则所述控制端获取提交的作业对应的数据块信息,在获取所述作业对应的数据块信息后,在预设的作业处理情况表中存储所述作业对应的数据块信息,并在所述作业处理情况表中记录所述数据块为未分配状态,标记所述作业为已经成功初始化状态,若是,则等待任务处理端发送任务处理请求;任务处理端向所述控制端发送任务处理请求;所述控制端查找与所述任务处理端分布于同一服务器且还未分配的数据块,将查找到的数据块分配给所述任务处理端;若未查找到与所述任务处理端分布于同一服务器且还未分配的数据块,则所述控制端统计正在被任务处理端处理的数据块最少的服务器,将该服务器上未分配的数据块分配给请求任务的任务处理端;所述请求任务的任务处理端按照预设流程处理所述控制端分配的数据块。2.根据权利要求1所述的基于分布式数据的并发处理方法,其特征在于,所述控制端查找与所述任务处理端分布于同一服务器的还未分配的数据块的步骤为:所述控制端查找与所述任务处理端分布于同一服务器的还未分配的数据块中数据量最大的数据块。3.根据权利要求1所述的基于分布式数据的并发处理方法,其特征在于,所述将该服务器上未分配的数据块分配给请求任务的任务处理端的步骤为:将该服务器上数据量最大的数据块分配给所述请求任务的任务处理端。4.根据权利要求1所述的基于分布式数据的并发处理方法,其特征在于,所述控制端查找与所述任务处理端分布于同一服务器且还未分配的数据块的步骤为:所述控制端在所述作业处理情况表中查找所述作业对应的数据块中与所述任务处理端分布于同一服务器且还未分配的数据块;所述控制端统计正在被任务处理端处理的数据块最少的服务器,将该服务器上未分配的数据块分配给请求任务的任务处理端的步骤为:所述控制端根据所述作业处理情况表统计正在被任务处理端处理的数据块最少的服务器,将所述作业处理情况表中该服务器上未分配的数据块分配给所述请求任务的任务处理端;所述方法还包括:所述控制端分配数据块后,在所述作业处理情况表中记录所分配的数据块为已分配状态。5.根据权利要求4所述的基于分布式数据的并发处理方法,其特征在于,所述方法还包括:所述请求任务的任务处理端向所述控制端上报处理的数据块的完成进度;所述控制端在所述作业处理情况表中记录所述处理的数据块的完成进度;当处理某一数据块的任务处理端的处理中断后,所述控制端将处理中断的数据块分配给请求任务的任务处理端,并将所述处理中断的数据块的完成进度发送给所述请求任务的任务处理端,所述请求任务的任务处理端根据所述处理中断的数据块的完成进度处理所述处理中断的数据块。6.根据权利要求5所述的基于分布式数据的并发处理方法,其特征在于,所述作业的预设信息包括作业是否为周期性作业的信息;所述方法还包括:若所述作业为周期性作业,则所述控制端在所述作业对应的数据块都已处理完时,清除所述作业处理情况表中所述作业对应的记录,标记所述作业为未成功初始化状态,进入所述控制端获取提交的作业对应的数据块信息的步骤。7.一种基于分布式...

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

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

1