一种分布式数据库事务处理系统技术方案

技术编号:21199549 阅读:22 留言:0更新日期:2019-05-25 01:09
本申请的目的是提供一种分布式数据库事务处理系统,本申请通过事务管理器接收SQL层发送的对待处理的当前会话中的目标表的加锁请求,加锁请求中包括当前会话的会话标识、目标表的表标识及加锁类型;基于加锁请求对目标表进行加锁类型对应的加锁处理,实现对待处理的当前会话中的目标表进行加锁处理,以便并发的其他会话能够了解到当前目标表已加锁,进而避免锁冲突发生;若加锁处理成功,则标记当前会话中的目标表加锁成功,并将目标表的表版本信息发送给SQL层;以便SQL层接收目标表的表版本信息并发送给计算层,使得计算层在接收目标表的表版本信息后对存储层中的所述表版本信息对应的目标表进行对应的处理,实现对表版本信息对应的目标表的处理。

A Distributed Database Transaction Processing System

The purpose of this application is to provide a distributed database transaction processing system. The application receives lock requests from the SQL layer for the target table in the current session to be processed through the transaction manager. The lock requests include the session identification of the current session, the table identification of the target table and the lock type of the current session. It is found that the target table in the current session is locked so that other concurrent sessions can understand that the current target table has been locked, thus avoiding lock conflicts. If the lock processing is successful, the target table in the current session is locked successfully and the table version information of the target table is sent to the SQL layer, so that the SQL layer can receive the table version information of the target table and send it to the SQL layer. The computing layer makes the computing layer process the target table corresponding to the table version information in the storage layer after receiving the table version information of the target table, and achieves the processing of the target table corresponding to the table version information.

【技术实现步骤摘要】
一种分布式数据库事务处理系统
本申请涉及计算机领域,尤其涉及一种分布式数据库事务处理系统。
技术介绍
数据库中的事务是数据库运行中的一个逻辑工作单位,作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。而一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性;在多个事务并发时,如何避免冲突问题,都是关乎系统稳定性及用户体验的重要问题。
技术实现思路
本申请的一个目的是提供一种分布式数据库事务处理系统。根据本申请的一个方面,提供了一种分布式数据库事务处理系统,其中,包括:事务管理器,用于接收结构化查询语言层(StructuredQueryLanguage层,SQL层)发送的对待处理的当前会话中的目标表的加锁请求,其中,所述加锁请求中包括所述当前会话的会话标识、所述目标表的表标识及加锁类型;基于所述加锁请求对所述表标识对应的目标表进行所述加锁类型对应的加锁处理;若所述加锁处理成功,则标记所述会话标识对应的当前会话中的所述目标表加锁成功,并将待处理的所述目标表的表版本信息发送给所述SQL层;所述SQL层,用于接收所述目标表的表版本信息并发送给计算层;所述计算层,用于接收所述目标表的表版本信息并对存储层中的所述表版本信息对应的目标表进行对应的处理。进一步地,上述分布式数据库事务处理系统中,所述事务管理器还用于将自身的状态信息存储在高可用的存储设备上,其中,所述高可用的存储设备包括内嵌在所述事务管理器中的存储或第三方存储设备,以便对外提供高可用的服务。进一步地,上述分布式数据库事务处理系统中,若所述所加锁类型为加写锁,则所述事务管理器对所述目标表进行加锁成功时所做的标记为加写锁成功,所述计算层用于对所述存储层中的所述表版本信息对应的目标表进行写处理;若所述所加锁类型为加读锁,则所述事务管理器对所述目标表进行加锁成功时所做的标记为加读锁成功,所述计算层用于对所述存储层中的所述表版本信息对应的目标表进行读处理。进一步地,上述分布式数据库事务处理系统中,若所述事务管理器中记录的所述目标表存在至少两个表版本,则所述事务管理器根据预设的事务隔离规则向所述SQL层返回其他会话对应的所述目标表的表版本信息,以使所述SQL层基于返回的所述其他会话对应的所述目标表的表版本信息,确定所述当前会话待处理的表版本信息,并对所述当前会话待处理的表版本信息对应的所述目标表进行对应的处理。进一步地,上述分布式数据库事务处理系统中,所述事务管理器根据预设的事务隔离规则向所述SQL层返回其他会话对应的所述目标表的表版本信息,包括:所述事务管理器根据预设的事务隔离规则和所述其他会话对应的所述目标表的处理进度,向所述SQL层返回其他会话对应的所述目标表的表版本信息。进一步地,上述分布式数据库事务处理系统中,所述事务管理器还用于:根据预设的事务隔离规则和当前系统中活跃的所有会话对应的所述目标表的处理进度,对所述事务管理器中存储的所述目标表的至少两个表版本发起合并,得到合并后的表版本对应的目标表后,并将所述目标表进行合并的至少两个表版本删除。进一步地,上述分布式数据库事务处理系统中,所述事务管理器还用于:根据预设的事务隔离规则和当前系统中活跃的所有会话对应的所述目标表的处理进度,对所述事务管理器中存储的所述目标表的至少两个表版本发起合并的同时,对所述目标表加读锁以保护所述合并,得到合并后的表版本对应的目标表后,并将所述目标表进行合并的至少两个表版本删除。进一步地,上述分布式数据库事务处理系统中,若所述事务管理器检测到当前会话与任何其他会话之间处于死锁状态时,所述事务管理器中止所述其他会话并释放所述其他会话对所述目标表所加的锁,或所述事务管理器中止所述当前会话。与现有技术相比,本申请实施例中的分布式数据库事务处理系统中,通过事务管理器接收SQL层发送的对待处理的当前会话中的目标表的加锁请求,其中,所述加锁请求中包括所述当前会话的会话标识、所述目标表的表标识及加锁类型;基于所述加锁请求对所述表标识对应的目标表进行所述加锁类型对应的加锁处理,实现对待处理的当前会话中的目标表进行加锁处理,以便并发的其他会话能够了解到当前目标表已加上了该加锁类型对应的加锁处理,从而便于其他会话基于当前会话中的目标表的加锁处理进行对应的应对,进而避免锁冲突发生;若所述加锁处理成功,则标记所述会话标识对应的当前会话中的所述目标表加锁成功,并将待处理的所述目标表的表版本信息发送给所述SQL层;以便所述SQL层接收所述目标表的表版本信息并发送给计算层,使得所述计算层在接收所述目标表的表版本信息后对存储层中的所述表版本信息对应的目标表进行对应的处理,实现对该目标表的正确版本(表版本信息对应的表版本)的处理。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1示出根据本申请一个方面的一种分布式数据库事务处理系统的结构交互示意图;图2示出根据本申请一实施例中的表版本V1对应的目标表A的示意图;图3示出根据本申请一实施例中的表版本V2对应的目标表A的示意图;图4示出根据本申请一实施例中的表版本V3对应的目标表A的示意图;图5示出根据本申请一实施例中的对表版本V1、V2及V3对应的目标表A进行合并后的表版本base3对应的目标表A的示意图;附图中相同或相似的附图标记代表相同或相似的部件。具体实施方式下面结合附图对本申请作进一步详细描述。在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。如图1所示,本申请一个方面提供的一种分布式数据库事务处理系统的交互流程示意图,该系统中包括事务管理器、SQL层、计算层及至少一个存储层(例如存储层1至存储层m,其中m为大于等于一的正整数),其中,具体包括:当前会话session1需要对存储层中的目标表A进行读/写操作时,所述SQL层(StructuredQueryLanguage层,结构化查询语言层)向事务管理器(transactionma本文档来自技高网...

【技术保护点】
1.一种分布式数据库事务处理系统,其中,包括:事务管理器,用于接收SQL层发送的对待处理的当前会话中的目标表的加锁请求,其中,所述加锁请求中包括所述当前会话的会话标识、所述目标表的表标识及加锁类型;基于所述加锁请求对所述表标识对应的目标表进行所述加锁类型对应的加锁处理;若所述加锁处理成功,则标记所述会话标识对应的当前会话中的所述目标表加锁成功,并将待处理的所述目标表的表版本信息发送给所述SQL层;所述SQL层,用于接收所述目标表的表版本信息并发送给计算层;所述计算层,用于接收所述目标表的表版本信息并对存储层中的所述表版本信息对应的目标表进行对应的处理。

【技术特征摘要】
1.一种分布式数据库事务处理系统,其中,包括:事务管理器,用于接收SQL层发送的对待处理的当前会话中的目标表的加锁请求,其中,所述加锁请求中包括所述当前会话的会话标识、所述目标表的表标识及加锁类型;基于所述加锁请求对所述表标识对应的目标表进行所述加锁类型对应的加锁处理;若所述加锁处理成功,则标记所述会话标识对应的当前会话中的所述目标表加锁成功,并将待处理的所述目标表的表版本信息发送给所述SQL层;所述SQL层,用于接收所述目标表的表版本信息并发送给计算层;所述计算层,用于接收所述目标表的表版本信息并对存储层中的所述表版本信息对应的目标表进行对应的处理。2.根据权利要求1所述的系统,其中,若所述所加锁类型为加写锁,则所述事务管理器对所述目标表进行加锁成功时所做的标记为加写锁成功,所述计算层用于对所述存储层中的所述表版本信息对应的目标表进行写处理;若所述所加锁类型为加读锁,则所述事务管理器对所述目标表进行加锁成功时所做的标记为加读锁成功,所述计算层用于对所述存储层中的所述表版本信息对应的目标表进行读处理。3.根据权利要求1所述的系统,其中,若所述事务管理器中记录的所述目标表存在至少两个表版本,则所述事务管理器根据预设的事务隔离规则向所述SQL层返回其他会话对应的所述目标表的表版本信息,以使所述SQL层基于返回的所述其他会话对应的所述目标表的表版本信息,确定所述当前会话待处理的表版本信息,并对所述当前会话待处理的表版本信息对应的所述目标表进行对应的...

【专利技术属性】
技术研发人员:徐飞刘汪根陶烨
申请(专利权)人:星环信息科技上海有限公司
类型:发明
国别省市:上海,31

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

1