【技术实现步骤摘要】
数据库处理事务的方法及装置
本专利技术涉及计算机
,尤其涉及一种数据库处理事务的方法及装置。
技术介绍
随着数字社会的到来,各种应用场景对海量数据的调取愈发频繁,对数据库加速处理的需求更丰富,人们对数据的即时处理需求大大增加,因此数据库加速的需求迫在眉睫。当前阶段,采用FPGA(FieldProgrammableGateArray,现场可编程门阵列)、ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)等可定制或专用硬件加速数据库的处理速度是一个趋势,为了更大程度的挖掘专用加速器的能力,自然希望它能够支持多个线程或进程向其发送处理指令和数据。这时数据库中就表现为支持同时处理多个事务,由于不同的事务可能要读取或修改同一个表,保持事务之间的隔离性是保证数据库ACID(Atomicity/Consistency/Isolation/Durability,原子性/一致性/隔离性/持久性)特性的必要条件。保持每个事务之间互相不打扰本质是保证每个事务访问或修改数据库的顺序要按照它们被提交到硬件的先后顺序。现有的通用技术是当CPU(CentralProcessingUnit,中央处理器)运行数据库时候,允许每个事务对在读取表的时候先要对表上锁,以防止别的事务干扰自己的表。常见的锁有共享锁,排他锁等,一个表可以被加上很多共享锁,但只能被加上一个排他锁。这样,保证了每个表对于当前事务来说都是独享的,如果一个事务试图读取一个已经被上了排他锁的表,这个事务就会阻塞。因此不会出现多 ...
【技术保护点】
1.一种数据库处理事务的方法,其特征在于,包括:/n先后接收到第一事务的处理指令和第二事务的处理指令;/n根据所述第一事务的所有处理指令和所述第二事务的所有处理指令中所访问数据表是否存在交集和/或是否存在修改类型指令,确认所述第一事务和所述第二事务是否相关;/n在所述第一事务和所述第二事务不相关的情况下,并行执行所述第一事务的处理指令和所述第二事务的处理指令;在所述第一事务和所述第二事务相关的情况下,执行完所述第一事务的所有处理指令后再执行所述第二事务的处理指令。/n
【技术特征摘要】
1.一种数据库处理事务的方法,其特征在于,包括:
先后接收到第一事务的处理指令和第二事务的处理指令;
根据所述第一事务的所有处理指令和所述第二事务的所有处理指令中所访问数据表是否存在交集和/或是否存在修改类型指令,确认所述第一事务和所述第二事务是否相关;
在所述第一事务和所述第二事务不相关的情况下,并行执行所述第一事务的处理指令和所述第二事务的处理指令;在所述第一事务和所述第二事务相关的情况下,执行完所述第一事务的所有处理指令后再执行所述第二事务的处理指令。
2.如权利要求1所述的数据库处理事务的方法,其特征在于,根据所述第一事务的所有处理指令和所述第二事务的所有处理指令中所访问数据表是否存在交集和是否存在修改类型指令,确认所述第一事务和所述第二事务是否相关,包括:
在确认所述第一事务的所有处理指令和所述第二事务的所有处理指令中所访问数据表存在交集的情况下,若所述第一事务的所有处理指令和所述第二事务的所有处理指令中均不存在修改类型指令,则确认所述第一事务和所述第二事务不相关,若所述第一事务的所有处理指令和所述第二事务的所有处理指令中至少一个存在修改类型指令,则确认所述第一事务和所述第二事务相关。
3.如权利要求2所述的数据库处理事务的方法,其特征在于,根据所述第一事务的所有处理指令和所述第二事务的所有处理指令中所访问数据表是否存在交集和是否存在修改类型指令,确认所述第一事务和所述第二事务是否相关,还包括:
在确认所述第一事务的所有处理指令和所述第二事务的所有处理指令中所访问数据表不存在交集的情况下,确认所述第一事务和所述第二事务不相关。
4.如权利要求1所述的数据库处理事务的方法,其特征在于,根据所述第一事务的所有处理指令和所述第二事务的所有处理指令中所访问数据表是否存在交集和是否存在修改类型指令,确认所述第一事务和所述第二事务是否相关,包括:
在确认所述第一事务的所有处理指令和所述第二事务的所有处理指令中至少一个存在修改类型指令的情况下,若所述第一事务的所有处理指令和所述第二事务的所有处理指令中所访问数据表存在交集,则确认所述第一事务和所述第二事务相关,若所述第一事务的所有处理指令和所述第二事务的所有处理指令中所访问数据表不存在交集,则确认所述第一事务和所述第二事务不相关。
5.如权利要求4所述的数据库处理事务的方法,其特征在于,根据所述第一事务的所有处理指令和所述第二事务的所有处理指令中所访问数据表是否存在交集和是否存在修改类型指令,确认所述第一事务和所述第二事务是否相关,还包括:
在确认所述第一事务的所有处理指令和所述第二事务的所有处理指令中均不存在修改类型指令的情况下,确认所述第一事务和所述第二事务不相关。
6.如权利要求2或4所述的数据库处理事务的方法,其特征在于,根据所述第一事务的所有处理指令和所述第二事务的所有处理指令中所访问数据表是否存在交集和是否存在修改类型指令,确认所述第一事务和所述第二事务是否相关,还包括:
根据所述第一事务的所有处理指令中是否存在修改类型的操作关键词,确认所述第一事务的所有处理指令中是否存在修改类型指令;根据所述第二事务的所有处理指令中是否存在修改类型的操作关键词,确认所述第二事务的所有处理指令中是否存在修改类型指令。
7.如权利要求6所述的数据库处理事务的方法,其特征在于,修改类型的操作关键词包括插入操作关键词、删除操作关键词、及更改操作关键词。
8.如权利要求1所述的数据库处理事务的方法,其特征在于,根据所述第一事务的所有处理指令和所述第二事务的所有处理指令中所访问数据表是否存在交集,确认所述第一事务和所述第二事务是否相关,包括:
在确认所述第一事务的所有处理指令和所述第二事务的所有处理指令中所访问数据表不存在交集的情况下,确认所述第一事务和所述第二事务不相关。
9.如权利要求1所述的数据库处理事务的方法,其特征在于,根据所述第一事务的所有处理指令和所述第二事务的所有处理指令中是否存在修改类型指令,确认所述第一事务和所述第二事务是否相关,包括:
在确认所述第一事务的所有处理指令和所述第二事务的所有处理指令中均不存在修改类型指令的情况下,确认所述第一事务和所述第二事务不相关。
10.如权利要求1所述的数据库处理事务的方法,其特征在于,
先后接收到第一事务的处理指令和第二事务的处理指令,包括:
先后接收...
【专利技术属性】
技术研发人员:鄢贵海,周康康,江树浩,
申请(专利权)人:中科驭数北京科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。