【技术实现步骤摘要】
本申请涉及互联网数据处理
,特别涉及处理数据任务中的数据冲突检测方法、数据处理服务器及消息中心服务器。
技术介绍
随着移动互联网、物联网等应用的飞速发展,全球数据量正在以极快的速度膨胀式增长。大数据时代的信息爆炸,尤其是非结构化数据的爆炸性增长,正在深刻影响着整个数据存储和分析领域。在企业数据分析处理过程中,通常每天执行的数据挖掘任务都会成百上千,甚至达到上万,并且存在大量跨部门的数据分析,虽然有统一的任务调度中心,但调度任务涉及到几万个节点,各个节点关系和任务关系都错综复杂。例如,有依赖关系配置错误,大量手工误输入的SQL脚本的执行请求,大量诸如跨集群的数据复制、垃圾回收、小文件合并等等的后台服务进程。因此,在不同的数据分析处理任务中经常存在SQL脚本执行冲突的问题,例如,报文件不存在错误(FileNotFound)或者数据已经被修改(Data changed while reading)等等。
技术实现思路
为了解决脚本执行冲突导致的数据处理效率低下和计算资源浪费的问题,可以针对具体的数据表或者数据表的具体分区来设置锁类型,例如,当用户A存在SQL脚本执行过程中对数据表分区A的读操作时,则设置该数据表分区A锁定,其他用户无法对该数据表分区A进行操作,直至用户A对数据表分区A的读操作执行完毕。但是专利技术人在研究过程中发现,现有技术中设置的锁的粒度到具体的表或者表的具体分区,而通常一个数据表表如果有上万个分区,则需要上万个锁,使得锁的个数很大,锁的管理还包括了加锁、解锁以及锁
的心跳,这样就会消耗更多的系统资源;进一步的,现有技术也无 ...
【技术保护点】
一种处理数据任务中的冲突检测方法,其特征在于,应用于消息中心服务器,包括:响应于数据处理服务器发送的、当前结构化查询语言SQL脚本的第一锁请求列表,生成第二锁请求列表;其中,所述锁请求列表包括:锁请求对象和与所述锁请求对象对应的锁请求类型,所述锁请求对象用于表示执行所述当前SQL脚本产生的当前实例所涉及的虚拟路径,所述锁请求类型用于表示在每个所述虚拟路径上都涉及哪些操作类型;根据预先设置的冲突检测规则和所述第二锁请求列表,检测所述当前实例是否与其他SQL脚本产生的其他实例执行冲突。
【技术特征摘要】
1.一种处理数据任务中的冲突检测方法,其特征在于,应用于消息中心服务器,包括:响应于数据处理服务器发送的、当前结构化查询语言SQL脚本的第一锁请求列表,生成第二锁请求列表;其中,所述锁请求列表包括:锁请求对象和与所述锁请求对象对应的锁请求类型,所述锁请求对象用于表示执行所述当前SQL脚本产生的当前实例所涉及的虚拟路径,所述锁请求类型用于表示在每个所述虚拟路径上都涉及哪些操作类型;根据预先设置的冲突检测规则和所述第二锁请求列表,检测所述当前实例是否与其他SQL脚本产生的其他实例执行冲突。2.根据权利要求1所述的方法,其特征在于,所述第一锁请求列表中的第一锁请求类型包括:读类型、共享写类型和排他写类型;相应的,所述响应于数据处理服务器发送的、当前SQL脚本的第一锁请求列表,生成第二锁请求列表,包括:从所述第一锁请求列表中获取第一锁请求对象,以及每个第一锁请求对象涉及的读类型、共享写类型和/或排他写类型;其中,所述第一锁请求对象用于表示执行所述当前SQL脚本产生的当前实例所涉及的初始虚拟路径;依据所述初始虚拟路径生成所述第二锁请求对象,以及,将所述第一锁请求类型转化为与第二锁请求对象对应的第二锁请求类型;其中,所述第二锁请求类型包括:共享读锁类型、共享写锁类型、读脏类型、写脏类型和排它锁类型;所述第二锁请求对象用于表示执行所述当前SQL脚本产生的当前实例所涉及的最终虚拟路径,且所述最终虚拟路径为所述初始虚拟路径的全部子集。3.根据权利要求2所述的方法,其特征在于,所述根据预先设置的冲突检测规则,依据所述第二锁请求列表检测所述当前实例是否与其他SQL脚本产生的其他实例执行冲突,包括:获取预先设置好的所述共享读锁、共享写锁、读脏、写脏和排它锁之间的互斥关系;依据所述互斥关系,针对同一个第二锁请求对象,判断执行所述当前实例涉及的第二锁访问类型和执行其他实例涉及的第二锁访问类型是否冲突。4.根据权利要求3所述的方法,其特征在于,还包括:在判断结果为冲突的情况下,获取产生冲突的第二锁访问类型对应的冲突锁请求对象,将所述冲突锁请求对象对应的其他实例的标识添加至所述当前实例的锁依赖列表中,所述锁依赖列表用于表示所述当前实例的执行时间在所述其他实例执行完毕之后;以及,将所述当前实例的标识添加至所述其他实例的锁通知列表中,所述锁通知列表用于表示所述其他实例执行之后需要通知所述当前实例执行;在判断结果为不冲突的情况下,将所述不冲突的结果返回至所述数据处理服务器,以便数据处理服务器立即执行所述当前实例。5.根据权利要求1所述的方法,其特征在于,还包括:响应于所述数据处理服务器发送的、与所述当前实例对应的心跳消息,判断所述心跳消息的发送间隔时间是否超过预设的心跳超时阈值,如果是,则从所述第二锁请求列表中删除所述当前实例对应的所有锁请求对象和所有锁请求类型。6.根据权利要求1所述的方法,其特征在于,还包括:响应于所述数据处理服务器发送的、所述当前实例的注销锁请求,从所述第二锁请求列表中删除所述当前实例对应的所有锁请求对象和所有锁请求类型。7.一种处理数据任务中的冲突检测方法,其特征在于,应用于数据处理服务器,该方法包括:响应于用户触发的当前数据处理任务,获取所述当前数据处理任务中的当前结构化查询语言SQL脚本;依据所述当前SQL脚本生成第一锁请求列表,所述第一锁请求列表包括:所述当前SQL脚本产生的当前实例的标识,第一锁请求对象和第一锁请求类型;其中,所述第一锁请求对象用于表示执行所述当前实例
\t所涉及的初始虚拟路径,所述第一锁请求类型用于表示所述当前实例所涉及的初始操作类型;将所述第一锁请求列表发送至与所述请求数据处理服务器相连的消息中心服务器,以便所述消息中心服务器根据所述第一锁请求列表生成第二锁请求列表,并根据预先设置的冲突检测规则和所述第二锁请求列表检测所述当前实例是否与其他SQL脚本产生的其他实例执行冲突。8.根据权利要求7所述的方法,其特征在于,在所述当前实例的执行过程中,还包括:向所述消息中心服务器发送与所述当前实例对应的心跳消息,所述信心跳消息用于表示所述当前实例正在执行。9.根据权利要求7所述的方法,其特征在于,所述消息中心服务器中保存有依据所述第一锁请求列表生成的第二锁请求列表,所述第二锁请求列表包括第二锁请求对象和第二锁请求类型;则所述方法还包括:向所述消息中心服务器发送注销锁请求,所述注销锁请求用于请求所述消息中心服务器在所述第二锁请求列表中删除所述当前实例对应的第二锁请求对象和第二锁请求类型。10.一种消息中心服务器,其特征在于,包括:生成第二锁请求列表模块,用于响应于数据处理服务器发送...
【专利技术属性】
技术研发人员:乔平,吴鸣刚,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛;KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。