用于管理按优先级排序的数据库事务的方法和系统技术方案

技术编号:23194166 阅读:81 留言:0更新日期:2020-01-24 17:24
一种数据库管理系统,用于控制按优先级排序的事务,包括:处理器,用于:从客户端模块接收写入数据库项的请求,该请求作为高优先级事务的一部分;检查所述数据库项的锁状态和注入状态;当所述数据库项的所述锁状态包括低优先级事务持有的锁,且所述注入状态为未注入状态时:将所述数据库项的所述注入状态更改为已注入状态;将所述数据库项的当前内容复制到所述低优先级事务的撤销缓冲区;写入所述数据库项的存储引擎。

Method and system for managing database transactions sorted by priority

【技术实现步骤摘要】
【国外来华专利技术】用于管理按优先级排序的数据库事务的方法和系统
技术介绍
本专利技术在其一些实施例中,涉及对数据库事务进行优先级排序,更具体地但不完全地,涉及通过管理锁状态来同时执行冲突事务。事务是数据库系统处理的计算单元。事务具有一组由缩写ACID表示的属性:(A)原子性:所有事务变更作为一个整体要么全部应用,要么全都不应用。(C)一致性:如果数据库在事务开始之前满足了所有完整性约束,那么数据库在事务结束之后仍然满足这些约束。(I)隔离性:多个事务并发执行的结果相当于所有并发事务的一次串行执行。ANSI/ISOSQL标准定义了不同程度的隔离。本专利技术的目标是实现尽可能高的隔离级别,即可串行化。(D)持久性:事务变更在系统故障后仍能永久保存。为了支持ACID属性,当前数据库系统采用能确保ACID的并发控制技术实现。数据库有两大类并发控制技术:基于锁的和基于时间戳排序的。在某些情况下,事务可能与高优先级配置相关联。高优先级事务是原子性的,要求比其他事务具有更优的服务质量。基于锁的方法对每个修改项进行加锁。锁可以在事务读取对象时作为共享锁下发,也可以在事务写入对象时作为排他锁下发。如果一个项没有被其他事务锁定,或者如果其他事务持有共享锁,则一个事务可以在该项上获得共享锁。如果一个项没有被其他事务锁定,则一个事务可以在该项上获得排他锁。这样可以防止两个同时进行的事务同时修改对象。基于锁的技术使用两阶段加锁协议:一个事务在访问对象之前获得相应的锁,并在事务提交或中止时释放全部锁。如果事务A持有锁,而事务B请求该锁,那么现有系统中可使用如下几种技术来处理这种情况:WAIT:事务B等待事务A释放该锁。NOWAIT:事务B在请求被另一个事务持有的锁时中止。WAIT-IF:事务B在满足某些条件时等待,否则中止。典型的场景有B比A更早(WAIT-DIE)或B比A更晚(WAIT-WOUND)。
技术实现思路
根据本专利技术的第一方面,提供了一种数据库管理系统,用于控制按优先级排序的事务,包括:处理器,用于从客户端模块接收写入数据库项的请求,所述写入请求作为高优先级事务的一部分;检查所述数据库项的锁状态和注入状态;当所述数据库项的锁状态包括低优先级持有的锁,且所述注入状态为未注入状态时:将所述数据库项的所述注入状态更改为已注入状态;将所述数据库项的当前内容复制到所述低优先级事务的撤销缓冲区;写入所述数据库项的存储引擎。这样,即使低优先级事务对所述项持有锁,也可以执行高优先级事务。两个事务都可以执行,同时所述低优先级事务也不必等待或者中止。根据本专利技术的第二方面,提供了一种数据库管理系统中控制按优先级排序的事务的计算机实现方法,包括:从客户端模块接收写入数据库项的请求,所述写入请求作为高优先级事务的一部分;检查所述数据库项的锁状态和注入状态;当所述数据库项的锁状态包括低优先级持有的锁,且所述注入状态为未注入状态时:将所述数据库项的所述注入状态更改为已注入状态;将所述数据库项的当前内容复制到所述低优先级事务的撤销缓冲区;写入所述数据库项的存储引擎。根据本专利技术的第三方面,提供了一种包括程序代码的计算机程序,当所述计算机程序在计算机上运行时,执行第二方面所述的方法。可选地,在本专利技术第一、第二和/或第三方面的另一种实施形式中,所述高优先级事务是单一动作的事务,仅包括所述请求。可选地,在本专利技术第一、第二和/或第三方面以及前述任一种实现方式的另一种实施形式中,所述处理器还用于:当所述数据库项的所述锁状态包括低优先级事务持有的锁,且所述注入状态为已注入状态时:写入所述数据库项的存储引擎。当有锁被注入时,意味着其他高优先级业务已经更新过所述数据库项的存储引擎中的数据,因此现在可以直接再次更新所述数据。可选地,在本专利技术第一、第二和/或第三方面以及前述任一种实现方式的另一种实施形式中,所述处理器还用于:从客户端模块接收从数据库项读取的请求,所述读取请求作为高优先级事务的一部分;检查所述数据库项的锁状态和注入状态;当所述数据库项的所述锁状态包括低优先级事务持有的排他锁,且所述注入状态为未注入状态时:从所述低优先级事务的撤销缓冲区读取。当未注入排他锁时,所述低优先级事务可能正在存储引擎中写入,且所述撤销缓冲区保留有所述项的旧值,以防所述事务回滚所做的更改。进一步可选地,在本专利技术第一、第二和/或第三方面以及前述任一种实现方式的另一种实施形式中,所述处理器还用于:当所述数据库项的所述锁状态包括低优先级事务持有的共享锁,且所述注入状态为未注入状态时:从所述数据库项的存储引擎读取。当未注入共享锁时,所述低优先级事务处理尚未被高优先级事务并发修改的数据项的读请求。由于没有做任何更改,因此可以使用所述存储引擎。进一步可选地,在本专利技术第一、第二和/或第三方面以及前述任一种实现方式的另一种实施形式中,所述处理器还用于:当所述数据库项的所述锁状态包括低优先级事务持有的锁,且所述注入状态为已注入状态时:从所述数据库项的存储引擎读取。当有锁被注入时,意味着上一个高优先级业务已经更新过所述数据库项的存储引擎中的数据,因此所述存储引擎包含所述数据的最新的更新版本。可选地,在本专利技术第一、第二和/或第三方面以及前述任一种实现方式的另一种实施形式中,所述处理器还用于:从客户端模块接收写入数据库项的请求,所述写入请求作为低优先级事务的一部分;检查所述数据库项的锁状态和注入状态;当所述数据库项的所述锁状态包括所述低优先级事务持有的共享锁,且所述注入状态为已注入状态时:将所述共享锁更改为排他锁;写入所述低优先级事务的撤销缓冲区。当有锁被注入时,意味着高优先级业务已经更新过所述数据库项的存储引擎中的数据。在发生提交或回滚的情况下,所述低优先级事务不再对SE中的对象应用任何更改。相反地,所述撤销缓冲区用于为所述事务存储所述对象的私有副本。进一步可选地,在本专利技术第一、第二和/或第三方面以及前述任一种实现方式的另一种实施形式中,所述处理器还用于:当所述数据库项的所述锁状态包括所述低优先级事务持有的排他锁,且所述注入状态为已注入状态时:写入所述低优先级事务的撤销缓冲区。可选地,在本专利技术第一、第二和/或第三方面以及前述任一种实现方式的另一种实施形式中,所述处理器还用于:从客户端模块接收从数据库项读取的请求,所述读取请求作为低优先级事务的一部分;检查所述数据库项的锁状态和注入状态;当所述数据库项的所述锁状态包括所述低优先级事务持有的锁,且所述注入状态为已注入状态时:从所述低优先级事务的撤销缓冲区读取。当有锁被注入时,意味着高优先级业务已经更新过所述数据库项的存储引擎中的数据。因此,使用所述低优先级事务的所述撤销缓冲区。除非另有定义,否则本文所用的所有技术和科学术语都具有与本专利技术普通技术人员公知的含义相同的含义。在本专利技术实施例的实践和测试中,可以使用与本文描述的方法和材料类似或等效的方法和材料。尽管如此,下文描述了一些示例性的方法和/或材料。如有冲突,本文档来自技高网
...

【技术保护点】
1.一种数据库管理系统,用于控制按优先级排序的事务,其特征在于,包括:/n处理器,用于:/n从客户端模块接收写入数据库项的请求,所述写入请求作为高优先级事务的一部分;/n检查所述数据库项的锁状态和注入状态;/n当所述数据库项的所述锁状态包括低优先级事务持有的锁,且所述注入状态为未注入状态时:/n将所述数据库项的所述注入状态更改为已注入状态;/n将所述数据库项的当前内容复制到所述低优先级事务的撤销缓冲区;/n写入所述数据库项的存储引擎。/n

【技术特征摘要】
【国外来华专利技术】1.一种数据库管理系统,用于控制按优先级排序的事务,其特征在于,包括:
处理器,用于:
从客户端模块接收写入数据库项的请求,所述写入请求作为高优先级事务的一部分;
检查所述数据库项的锁状态和注入状态;
当所述数据库项的所述锁状态包括低优先级事务持有的锁,且所述注入状态为未注入状态时:
将所述数据库项的所述注入状态更改为已注入状态;
将所述数据库项的当前内容复制到所述低优先级事务的撤销缓冲区;
写入所述数据库项的存储引擎。


2.根据权利要求1所述的数据库管理系统,其特征在于,所述高优先级事务是单一动作的事务,仅包括所述请求。


3.根据前述权利要求中任一项所述的数据库管理系统,其特征在于,所述处理器还用于:
当所述数据库项的所述锁状态包括低优先级事务持有的锁,且所述注入状态为已注入状态时:
写入所述数据库项的存储引擎。


4.根据前述权利要求中任一项所述的数据库管理系统,其特征在于,所述处理器还用于:
从客户端模块接收从数据库项读取的请求,所述读取请求作为高优先级事务的一部分;
检查所述数据库项的锁状态和注入状态;
当所述数据库项的所述锁状态包括低优先级事务持有的排他锁,且所述注入状态为未注入状态时:
从所述低优先级事务的撤销缓冲区读取。


5.根据权利要求4所述的数据库管理系统,其特征在于,所述处理器还用于:
当所述数据库项的所述锁状态包括低优先级事务持有的共享锁,且所述注入状态为未注入状态时:
从所述数据库项的存储引擎读取。


6.根据权利要求4至5中任一项所述的数据库管理系统,其特征在于,所述处理器还用于:
当所述数据库项的所述锁状态包括低优先级事务持有的锁,且所述注入状态为已注入状态时:
从所述数据库项的...

【专利技术属性】
技术研发人员:戴维·多明戈斯
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1