【技术实现步骤摘要】
事务处理方法、装置、计算机设备及存储介质
本申请涉及数据库
,特别涉及一种事务处理方法、装置、计算机设备及存储介质。
技术介绍
随着数据库技术的发展,在数据库系统中如何识别并规避数据异常成为了一个关键问题。目前有两种识别数据异常的方法,其一是利用封锁技术,依赖锁的互斥机制来避免数据异常,其二是利用依赖图技术,通过在并发事务构成的依赖图中确认是否存在环,如果存在环则需要打破环的存在从而消除潜在的数据异常。然而,封锁技术严重限制了数据库系统的并发度,导致事务处理效率低下,而依赖图技术又需要遍历每个并发事务以识别出环的存在,导致事务处理效率仍然不高。因此,亟需一种能够提升事务处理效率的事务处理方法。
技术实现思路
本申请实施例提供了一种事务处理方法、装置、计算机设备及存储介质,能够提升数据库系统的事务处理效率。该技术方案如下:一方面,提供了一种事务处理方法,该方法包括:响应于目标事务的读写操作执行,获取所述目标事务的至少一个并发事务,所述至少一个并发事务与所述目标事务在事务执行期间涉及到对 ...
【技术保护点】
1.一种事务处理方法,其特征在于,所述方法包括:/n响应于目标事务的读写操作执行,获取所述目标事务的至少一个并发事务,所述至少一个并发事务与所述目标事务在事务执行期间涉及到对相同的数据项进行读写操作;/n根据所述至少一个并发事务与所述目标事务的读写集合,获取所述至少一个并发事务与所述目标事务之间的异常检测结果,所述异常检测结果用于表示所述至少一个并发事务与所述目标事务之间是否存在数据异常;/n响应于所述异常检测结果为不存在数据异常,将所述至少一个并发事务与所述目标事务的读写集合进行合并,提交所述目标事务。/n
【技术特征摘要】
1.一种事务处理方法,其特征在于,所述方法包括:
响应于目标事务的读写操作执行,获取所述目标事务的至少一个并发事务,所述至少一个并发事务与所述目标事务在事务执行期间涉及到对相同的数据项进行读写操作;
根据所述至少一个并发事务与所述目标事务的读写集合,获取所述至少一个并发事务与所述目标事务之间的异常检测结果,所述异常检测结果用于表示所述至少一个并发事务与所述目标事务之间是否存在数据异常;
响应于所述异常检测结果为不存在数据异常,将所述至少一个并发事务与所述目标事务的读写集合进行合并,提交所述目标事务。
2.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个并发事务与所述目标事务的读写集合,获取所述至少一个并发事务与所述目标事务之间的异常检测结果包括:
对于所述至少一个并发事务中任一并发事务,根据所述任一并发事务与所述目标事务的读写集合,获取所述任一并发事务与所述目标事务之间的目标检测结果;
响应于所述目标检测结果为存在数据异常,将所述异常检测结果确定为存在数据异常;否则,对所述至少一个并发事务中所述任一并发事务的下一个并发事务执行获取目标检测结果的步骤;
响应于所述至少一个并发事务的目标检测结果均为不存在数据异常,将所述异常检测结果确定为不存在数据异常。
3.根据权利要求2所述的方法,其特征在于,所述根据所述任一并发事务与所述目标事务的读写集合,获取所述任一并发事务与所述目标事务之间的目标检测结果包括:
获取第一集合、第二集合以及第三集合,所述第一集合为所述目标事务的读集与所述任一并发事务的写集之间的交集,所述第二集合为所述目标事务的写集与所述任一并发事务的读集之间的交集,所述第三集合为所述目标事务的写集与所述任一并发事务的写集之间的交集;
响应于所述第三集合不是空集,根据所述任一并发事务的提交情况获取所述目标检测结果;
响应于所述第三集合是空集且所述第一集合或者所述第二集合中至少一项不是空集,根据所述第一集合和所述第二集合获取所述目标检测结果。
4.根据权利要求2所述的方法,其特征在于,所述根据所述任一并发事务与所述目标事务的读写集合,获取所述任一并发事务与所述目标事务之间的目标检测结果包括:
获取第一集合、第二集合、第三集合以及第四集合,所述第一集合为所述目标事务的读集与所述任一并发事务的写集之间的交集,所述第二集合为所述目标事务的写集与所述任一并发事务的读集之间的交集,所述第三集合为所述目标事务的写集与所述任一并发事务的写集之间的交集,所述第四集合为所述目标事务的读集与所述任一并发事务的读集之间的交集;
响应于所述第三集合不是空集,根据所述任一并发事务的提交情况获取所述目标检测结果;
响应于所述第三集合是空集且所述第一集合、所述第二集合或者所述第三集合中至少一项不是空集,根据所述第一集合、所述第二集合和所述第四集合获取所述目标检测结果。
5.根据权利要求3或4所述的方法,其特征在于,所述根据所述任一并发事务的提交情况获取所述目标检测结果包括:
若所述任一并发事务未提交且所述目标事务的目标参数为一,将所述目标检测结果获取为存在数据异常且数据异常类型为脏写异常,所述目标参数用于表示所述目标事务的读写集合成分所对应的已提交事务数量;
若所述任一并发事务已提交且所述第一集合与所述第三集合之间的交集不是空集,将所述目标检测结果获取为存在数据异常且数据异常类型为丢失更新异常。
6.根据权利要求3所述的方法,其特征在于,所述根据所述第一集合和所述第二集合获取所述目标检测结果包括:
根据所述第一集合和所述第二集合,更新所述任一并发事务与所述目标事务之间的动边交叉值和变量状态值,所述动边交叉值用于表示所述任一并发事务与所述目标事务在数据状态矩阵中操作的不同数据项之间的线段交叉情况,所述变量状态值用于表示所述任一并发事务与所述目标事务涉及操作到处于不同数据状态的变量情况;
基于更新后的动边交叉值和更新后的变量状态值,获取所述目标检测结果。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一集合和所述第二集合,更新所述任一并发事务与所述目标事务之间的动边交叉值和变量状态值包括:
响应于所述第一集合不是空集,将动边交叉值更新为已有值加一所得的数值;响应于所述第一集合中存在数据状态不同的变量,将变量状态值更新为已有值加一所得的数值;
响应于所述第二集合不是空集,将动边交叉值更新为已有值加一所得的数值;响应于所述第二集合中存在数据状态不同的变量,将变量状态值更新为已有值加一所得的数值。
8.根据权利要求6所述的方法,其特征在于,所述基于更新后的动边交叉值和更新后的变量状态值,获取所述目标检测结果包括:
响应于所述更新后的动边交叉值大于或等于二,将所述目标检测结果获取为存在数据异常;基于所述更新后的变量状态值,确定数据异常类型;
否则,将所述目标检测结果获取为不存在数据异常。
9.根据权利要求8所述的方法,其特征在于,所述基于所述更新后的变量状态值,确定数据异常类型包括:
响应于所述更新后的变量状态值为一,确定所述数据异常类型为读异常;
响应于所述更新后的变量状态值大于或等于二,确定所述数据异常类型为写异常。
10.根据权利要求4所述的方法,其特征在于,所述根据所述第一集合、所述第二集合和所述第四集合获取所述目标检测结果包括:
根据所述第一集合、所述第二集合和所述第四集合,更新所述任一并发事务的布尔型以及所述目标事务的布尔型,所述布尔型用于表示对应事务所构成的动边在数据状态矩阵中的垂直位...
【专利技术属性】
技术研发人员:李海翔,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。