一种基于分布式缓存的大数据集群事务实现方法与流程

文档序号:18464738发布日期:2019-08-17 02:21阅读:363来源:国知局
本发明涉及大数据
技术领域
:,特别是一种基于分布式缓存的大数据集群事务实现方法。
背景技术
::大数据平台现有技术框架存在无法实现事务一致性这一难点,即在大数据集群平台暂时无法实现分布式的事务。现有技术主要是单引擎数据库事务(databasetransaction),是指在单台数据库上,一组数据库操作命令作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行,但是以上技术只能在非分布式的环境实现事务。技术实现要素:有鉴于此,本发明的目的是提出一种基于分布式缓存的大数据集群事务实现方法,能够实现在大数据平台的分布式数据库事务。本发明采用以下方案实现:一种基于分布式缓存的大数据集群事务实现方法,具体包括以下步骤:步骤s1:提供访问代理模块,将所有的终端用户的访问请求进行拦截并代理;步骤s2:提供语法解析模块,对步骤s1的访问请求进行语法解析,并将含有事务操作的表带入到下一个步骤;步骤s3:提供一事务拦截模块,将语法解析模块传递过来含有事务操作的表,进行表的事务锁死,在事务操作的时间段内禁止对表的查询和操作;步骤s4:通过事务拦截模块定义表的事务属性,并将其存放到基于分布式缓存集群上,使得大数据分布式集群所有节点的访问请求能够直接在分布式缓存中获取分布式大数据的数据库表的事务属性,从而实现分布式的事务。可以在不同的访问代理模块,或者其他访问接口都可以实现分布式缓存事务管理集群来实现事务一致性,避免事务冲突的问题。进一步地,步骤s1中,所述访问代理模块为外部终端用户访问大数据的唯一的必须接口,从而能够实现所有和事务相关的访问可以被有效的拦截和处理,实现所有用户的事务一致性。较佳的,所述语法解析模块定义了统一的sql标准以及语法,需要对sql语法进行统一的解析,作用是将一个输入的‘字符串’变换为一个描述这个字符串的‘结构体’,让计算机可以更容易的理解用户输入的字符串是什么含义。这个阶段包含三个过程,分别是词法分析、语法分析、输出抽象语法树。1)词法分析:是一个确定有限自动机(dfa),可以按照定义好的词法,将输入的字符集转换为‘单词’。2)语法分析:在词法分析之后,接下来的过程就是语法分析了,词法分析的结果会作为语法分析的输入,语法分析在词法分析的基础上,来判断用户输入的单词是否符合含有事务操作,比如“insertintotablevalues”就是一个符合事务操作的句子,而对应被操作的table表将交给“事务拦截模块”来进行处理,语法解释可以进行更细粒度的表分区的事务分析,从而实现对表分区的事务拦截,其他分区可以正常访问,不会锁死,提高事务的并发性能。进一步地,步骤s3中,所述在事务操作的时间段内禁止对表的修改和查询操作还包括:如果该表有分区,则只对该分区进行事务级别的分区锁死,实现事务的一致性。进一步地,步骤s3中,所述事务拦截模块对所有终端的访问请求进行过滤,并针对事务相关的查询和操作进行事务一致性判断,如果对应的表正在进行事务操作,则令这些访问请求进入访问阻塞状态,直到事务结束后再执行相关访问请求操作。特别的,通过访问代理模块将大数据所有的终端用户访问请求进行语法解释,并对事务相关访问进行拦截,针对含有增加行、删除行、改列数据等事务相关操作请求,这类事务将被事务拦截模块拦截并由分布式缓存事务管理集群进行事务一致性的管理,对有事务操作的大数据的数据仓库的库、表进行锁死,从而实现大数据平台的分布式事务一致性。与现有技术相比,本发明有以下有益效果:1、本发明实现了分布式的事务管理,解决了大数据分布式数据仓库的事务不一致的问题。2、本发明通过集群分布式缓存的事务属性,可以实现在大数据的分布式环境下的分布式事务一致性,并且实现分布式应用程序也能实现事务一致性。3、本发明中事务粒度为表分区:事务锁定的粒度更细,可以对表的分区进行事务锁死,其他表分区不受影响,可以实现更好的事务并发性能,不影响其他分区的访问和事务操作。附图说明图1为本发明实施例的原理框图。具体实施方式下面结合附图及实施例对本发明做进一步说明。应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属
技术领域
:的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。如图1所示,本实施例提供了一种基于分布式缓存的大数据集群事务实现方法,具体包括以下步骤:步骤s1:提供访问代理模块,将所有的终端用户的访问请求进行拦截并代理;步骤s2:提供语法解析模块,对步骤s1的访问请求进行语法解析,并将含有事务操作的表带入到下一个步骤;步骤s3:提供一事务拦截模块,将语法解析模块传递过来含有事务操作的表,进行表的事务锁死,在事务操作的时间段内禁止对表的查询和操作;步骤s4:通过事务拦截模块定义表的事务属性,并将其存放到基于分布式缓存(内存)集群上,使得大数据分布式集群所有节点的访问请求能够直接在分布式缓存中获取分布式大数据的数据库表的事务属性,从而实现分布式的事务。可以在不同的访问代理模块,或者其他访问接口都可以实现分布式缓存事务管理集群来实现事务一致性,避免事务冲突的问题。在本实施例中,步骤s1中,所述访问代理模块为外部终端用户访问大数据的唯一的必须接口,从而能够实现所有和事务相关的访问可以被有效的拦截和处理,实现所有用户的事务一致性。较佳的,在本实施例中,所述语法解析模块定义了统一的sql标准以及语法,需要对sql语法进行统一的解析,作用是将一个输入的‘字符串’变换为一个描述这个字符串的‘结构体’,让计算机可以更容易的理解用户输入的字符串是什么含义。这个阶段包含三个过程,分别是词法分析、语法分析、输出抽象语法树。1)词法分析:是一个确定有限自动机(dfa),可以按照定义好的词法,将输入的字符集转换为‘单词’。2)语法分析:在词法分析之后,接下来的过程就是语法分析了,词法分析的结果会作为语法分析的输入,语法分析在词法分析的基础上,来判断用户输入的单词是否符合含有事务操作,比如“insertintotablevalues”就是一个符合事务操作的句子,而对应被操作的table表将交给“事务拦截模块”来进行处理,语法解释可以进行更细粒度的表分区的事务分析,从而实现对表分区的事务拦截,其他分区可以正常访问,不会锁死,提高事务的并发性能。在本实施例中,步骤s3中,所述在事务操作的时间段内禁止对表的修改和查询操作还包括:如果该表有分区,则只对该分区进行事务级别的分区锁死,实现事务的一致性。在本实施例中,步骤s3中,所述事务拦截模块对所有终端的访问请求进行过滤,并针对事务相关的查询和操作进行事务一致性判断,如果对应的表正在进行事务操作,则令这些访问请求进入访问阻塞状态,直到事务结束后再执行相关访问请求操作。特别的,在本实施例中,通过访问代理模块将大数据所有的终端用户访问请求进行语法解释,并对事务相关访问进行拦截,针对含有增加行、删除行、改列数据等事务相关操作请求,这类事务将被事务拦截模块拦截并由分布式缓存事务管理集群进行事务一致性的管理,对有事务操作的大数据的数据仓库的库、表进行锁死,从而实现大数据平台的分布式事务一致性。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1