一种分布式事务处理方法及装置制造方法及图纸

技术编号:19692247 阅读:29 留言:0更新日期:2018-12-08 11:17
本说明书实施例涉及一种分布式事务处理方法、装置和电子设备,该方法包括:响应于分布式事务对节点数据库的目标表中目标记录的访问操作,在所述节点数据库的行锁记录表中写入目标行锁记录,其中,所述目标行锁记录中包括所述目标表的名称及所述目标记录在所述目标表中的主键信息;基于所述目标行锁记录的写入结果,确定所述分布式事务对所述目标记录的访问权限;基于所述访问权限,执行所述分布式事务对应的事务操作。

【技术实现步骤摘要】
一种分布式事务处理方法及装置
本说明书实施例涉及网络
,尤其涉及一种分布式事务处理方法及装置。
技术介绍
在互联网
,尤其是涉及到金融行业业务的事务,大多采用分布式架构来实现有效服务。在分布式架构中,大多会涉及多个数据库或多个数据表,因此,同一笔交易可能需要跨多个数据库进行访问(具体访问操作可以是读操作和/或写操作)。为了保证跨多个数据库访问数据的一致性,可采用分布式事务进行金融交易的处理。然而,一个分布式事务能够读取到未完成的分布式事务正在访问的数据,极易出现数据的脏读、幻读、脏写等问题。由此,目前的分布式事务处理只能保证访问数据的最终一致性,无法保证访问数据的强一致性。
技术实现思路
本说明书实施例提供一种分布式事务处理方法及装置,用以解决现有技术中分布式事务无法保证访问数据的强一致性的问题。为了解决上述技术问题,本说明书实施例采用下述技术方案:第一方面,提供了一种分布式事务处理方法,包括:响应于分布式事务对节点数据库的目标表中目标记录的访问操作,在所述节点数据库的行锁记录表中写入目标行锁记录,其中,所述目标行锁记录中包括所述目标表的名称及所述目标记录在所述目标表中的主键信息;基于所述目标行锁记录的写入结果,确定所述分布式事务对所述目标记录的访问权限;基于所述访问权限,执行所述分布式事务对应的事务操作。第二方面,提供了一种分布式事务处理装置,包括:行锁写入模块,响应于分布式事务对节点数据库的目标表中目标记录的访问操作,在所述节点数据库的行锁记录表中写入目标行锁记录,其中,所述目标行锁记录中包括所述目标表的名称及所述目标记录在所述目标表中的主键信息;权限确定模块,基于所述目标行锁记录的写入结果,确定所述分布式事务对所述目标记录的访问权限;事务处理模块,基于所述访问权限,执行所述分布式事务对应的事务操作。第三方面,提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行:响应于分布式事务对节点数据库的目标表中目标记录的访问操作,在所述节点数据库的行锁记录表中写入目标行锁记录,其中,所述目标行锁记录中包括所述目标表的名称及所述目标记录在所述目标表中的主键信息;基于所述目标行锁记录的写入结果,确定所述分布式事务对所述目标记录的访问权限;基于所述访问权限,执行所述分布式事务对应的事务操作。第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:响应于分布式事务对节点数据库的目标表中目标记录的访问操作,在所述节点数据库的行锁记录表中写入目标行锁记录,其中,所述目标行锁记录中包括所述目标表的名称及所述目标记录在所述目标表中的主键信息;基于所述目标行锁记录的写入结果,确定所述分布式事务对所述目标记录的访问权限;基于所述访问权限,执行所述分布式事务对应的事务操作。本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:通过上述技术方案,响应分布式事务对节点数据库的目标表中目标记录的访问操作,在节点数据库的行锁记录表中写入目标行锁记录,并基于目标行锁记录的写入结果成功与否,决定是否为分布式事务分配对目标记录的访问权限,然后基于访问权限,执行分布式事务的访问操作或是回滚操作。这样,可以保证未完成的分布式事务正在访问的目标记录不会被其它分布式事务访问,避免访问数据时出现脏读、幻读、脏写等问题,提升分布式事务访问数据的强一致性。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本说明书实施例提供的分布式事务处理方法的步骤示意图之一;图2为本说明书实施例提供的分布式事务处理方法的步骤示意图之二;图3为本说明书实施例提供的分布式事务处理方法的流程示意图;图4为本说明书实施例提供的电子设备的硬件结构示意图;图5a为本说明书实施例提供的分布式事务处理装置的结构示意图之一;图5b为本说明书实施例提供的分布式事务处理装置的结构示意图之二。具体实施方式为使本说明书实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书实施例保护的范围。本说明书实施例主要是针对分布式事务提出的一种新的处理方案,其中,分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点上。当在响应一个分布式事务的访问操作时,只能保证被访问数据的最终一致性,而无法保证被访问数据的强一致性,因此,经常会出现被访问数据的脏读、幻读、脏写等缺陷。为此,本说明书实施例提供了一种分布式事务处理方案,具体通过响应分布式事务对节点数据库的目标表中目标记录的访问操作,在节点数据库的行锁记录表中写入目标行锁记录,并基于目标行锁记录的写入结果成功与否,决定是否为分布式事务分配对目标记录的访问权限,然后基于访问权限,执行分布式事务的访问操作或是回滚操作。这样,可以保证未完成的分布式事务正在访问的目标记录不会被其它分布式事务访问,避免访问数据时出现脏读、幻读、脏写等问题,提升分布式事务访问数据的强一致性。下面对本说明书实施例涉及到的一些词语进行场景解释。-强一致性,是指一个事务将目标记录(即数据)从状态A修改为另一个状态B,在事务执行前、事务执行中以及事务执行后,外界不会看到除状态A、B以外的其它状态。-最终一致性,是指一个事务将目标记录(即数据)从状态A修改为另一个状态B,在事务执行中,外界会看到除状态A、B以外的其它状态C,但是在事务结束后,外界只会看到状态A或状态B,其中,状态A可以理解为事务回滚,而状态B可以理解为事务提交。-脏读,又称无效数据的读出,是指在数据库访问中,事务T1将某一值修改,然后事务T2读取该值,此后T1因为某种原因撤销对该值的修改,这就导致了T2所读取到的数据是无效的。-幻读,是指当事务不是独立执行时发生的一种现象;在数据库访问中,事务T1修改数据表中的全部数据,事务T2向数据表中添加了一行数据,事务T1在修改结束之后,发现数据表中出现自己没修改到的数据,事务T1仿佛出现幻觉,有一些数据没访问到。-脏写,是指数据库访问中,两个事务都同时更新一行数据,一个事务T1对数据的更新把另一个事务T2对数据的更新覆盖了。以下结合附图,详细说明本说明书各实施例提供的技术方案。实施例一参照图1所示,为本说明书实施例提供的分布式事务处理方法的步骤示意图,该分布式事务处理方案的执行主体可以为服务器;该分布式事务处理方法主要包括以下步骤:步骤102:响应于分布式事务对节点数据库的目标表中目标记录的访问操作,在所述节点数据库的行锁记录表中写入目标行锁记录,其中,所述本文档来自技高网...

【技术保护点】
1.一种分布式事务处理方法,包括:响应于分布式事务对节点数据库的目标表中目标记录的访问操作,在所述节点数据库的行锁记录表中写入目标行锁记录,其中,所述目标行锁记录中包括所述目标表的名称及所述目标记录在所述目标表中的主键信息;基于所述目标行锁记录的写入结果,确定所述分布式事务对所述目标记录的访问权限;基于所述访问权限,执行所述分布式事务对应的事务操作。

【技术特征摘要】
1.一种分布式事务处理方法,包括:响应于分布式事务对节点数据库的目标表中目标记录的访问操作,在所述节点数据库的行锁记录表中写入目标行锁记录,其中,所述目标行锁记录中包括所述目标表的名称及所述目标记录在所述目标表中的主键信息;基于所述目标行锁记录的写入结果,确定所述分布式事务对所述目标记录的访问权限;基于所述访问权限,执行所述分布式事务对应的事务操作。2.如权利要求1所述的方法,所述行锁记录表以节点数据库的数据表的名称和数据表的主键作为所述行锁记录表的主键,所述目标行锁记录的主键由所述目标表的名称及所述目标记录在所述目标表中的主键构成。3.如权利要求1或2所述的方法,基于所述目标行锁记录的写入结果,确定所述分布式事务对所述目标记录的访问权限,包括:如果所述目标行锁记录写入成功,则确定所述分布式事务对所述目标记录具有访问权限;如果所述目标行锁记录写入失败,则确定所述分布式事务对所述目标记录不具有访问权限。4.如权利要求3所述的方法,所述目标行锁记录写入成功,包括:所述行锁记录表中未记录有与所述目标行锁记录相同的主键,确定所述目标行锁记录写入成功;所述目标行锁记录写入失败,包括:所述行锁记录表中记录有与所述目标行锁记录相同的主键,确定所述目标行锁记录写入失败。5.如权利要求1所述的方法,所述行锁记录表不是以节点数据库的数据表的名称和数据表的主键作为所述行锁记录表的主键。6.如权利要求1或5所述的方法,基于所述目标行锁记录的写入结果,确定所述分布式事务对所述目标记录的访问权限,包括:基于所述行锁记录表中,包括所述目标表的名称及所述目标记录在所述目标表中的主键信息的记录的个数,确定所述分布式事务对所述目标记录的访问权限。7.如权利要求6所述的方法,基于所述行锁记录表中,包括所述目标表的名称及所述目标记录在所述目标表中的主键信息的记录的个数,确定所述分布式事务对所述目标记录的访问权限,包括:如果所述行锁记录表中,包括所述目标表的名称及所述目标记录在所述目标表中的主键信息的记录的个数为1,则确定所述分布式事务对所述目标记录具有访问权限;如果所述行锁记录表中,包括所述目标表的名称及所述目标记录在所述目标表中的主键信息的记录的个数大于1,则确定所述分布式事务对所述目标记录不具有访问权限。8.如权利要求1所述的方法,基于所述访问...

【专利技术属性】
技术研发人员:张森郎晓东王光树
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1