数据库事务处理方法、装置、设备及存储介质与流程

文档序号:35712902发布日期:2023-10-12 15:33阅读:49来源:国知局
本发明涉及数据库,尤其涉及一种数据库事务处理方法、装置、设备及存储介质。
背景技术
::1、事务处理是数据库的核心功能,为了提升数据库的并发处理性能,sql标准规定了四种事务隔离级别:read uncommitted(读未提交)、read committed(读已提交)、repeatable read(可重复读)、serializable(串行化)。其中,使用最多的隔离级别是readcommitted(简称rc),商用数据库sql server,oracle,开源数据库postgresql缺省隔离级别都是rc。2、在现有技术中,rc隔离级别的实现,通常采用多版本并发控制(multi-versionconcurrency control,mvcc)机制。多版本并发控制通过保持历史版本快照方式,使得对同一数据的读与写之间无需显示加锁,但存在诸多局限。例如:在历史快照(一般为事务undolog形成的版本链表)中查找及增删节点,在程序内部需要互斥,存在隐式锁,不能并发;每次更新与删除都要将更新前数据写undolog,存在较大开销等。3、上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。技术实现思路1、本发明的主要目的在于提供了一种数据库事务处理方法、装置、设备及存储介质,旨在解决现有技术rc隔离级别通常采用多版本并发控制机制,但该方法在历史快照中查找及增删节点,在程序内部需要互斥,存在隐式锁,不能并发;且每次更新与删除都要将更新前数据写undolog,存在较大开销技术问题。2、为实现上述目的,本发明提供了一种数据库事务处理方法,所述方法包括以下步骤:3、根据数据库事务中的数据处理指令对待处理对象进行处理,并对所述待处理对象置保留锁,所述保留锁用于表征所述数据库事务将修改所述待处理对象;4、记录对所述待处理对象进行处理的操作,并将生成的记录通过日志保存;5、分配更新所述待处理对象的资源,根据所述日志对数据库进行更新。6、可选地,所述根据数据库事务中的数据处理指令对待处理对象进行处理,并对所述待处理对象置保留锁的步骤,包括:7、根据数据库事务中的数据处理指令对待处理对象的标识进行处理,并对待处理对象索引对应槽位添加保留锁;8、基于所述待处理对象索引对应槽位确定待处理对象数据的标识,并对所述待处理对象数据的标识添加保留锁。9、可选地,所述数据处理指令包括数据插入指令、数据删除指令和数据更新指令;所述根据数据库事务中的数据处理指令对待处理对象的标识进行处理的步骤,包括:10、根据数据库事务中的数据插入指令分配待处理对象的行标识空间;11、或,根据数据库事务中的数据删除指令为待处理对象的标识添加删除状态。12、可选地,所述记录对所述待处理对象进行处理的操作,并将生成的记录通过日志保存的步骤,包括:13、对所述待处理对象进行处理的操作、待处理对象索引对应槽位以及所述待处理对象数据的标识进行记录,并将所述记录写入至重做日志中;14、获取所述待处理对象中加锁的数据,并将所述加锁的数据写入至回滚日志中。15、可选地,所述分配更新所述待处理对象的资源,根据所述日志对数据库进行更新的步骤,包括:16、分配更新所述待处理对象索引所需的资源;17、获取所述重做日志中的待处理对象数据的标识,对各所述待处理对象数据的标识执行置排他锁操作;18、根据所述重做日志中的操作记录进行数据库更新,在每个待处理对象更新完成时,释放所述待处理对象对应的排它锁。19、可选地,所述分配更新所述待处理对象索引所需的资源的步骤之后,还包括:20、若资源分配失败,基于所述回滚日志中保存的数据进行锁释放,以执行数据库事务的回滚操作。21、可选地,所述获取所述重做日志中的待处理对象数据的标识,对各所述待处理对象数据的标识执行置排他锁操作的步骤之后,还包括:22、若所述对各所述待处理对象数据的标识执行置排他锁操作不成功,基于所述回滚日志中保存的数据进行锁释放,以执行数据库事务的回滚操作。23、此外,为实现上述目的,本发明还提出了一种数据库事务处理装置,所述装置包括:24、对象处理模块,用于根据数据库事务中的数据处理指令对待处理对象进行处理,并对所述待处理对象置保留锁,所述保留锁用于表征所述数据库事务将修改所述待处理对象;25、日志生成模块,用于记录对所述待处理对象进行处理的操作,并将生成的记录通过日志保存;26、数据更新模块,用于分配更新所述待处理对象的资源,根据所述日志对数据库进行更新,并在更新完成时释放排它锁。27、此外,为实现上述目的,本发明还提出一种数据库事务设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据库事务处理程序,所述数据库事务处理程序配置为实现如上文所述的数据库事务处理方法的步骤。28、此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有数据库事务处理程序,所述数据库事务处理程序被处理器执行时实现如上文所述的数据库事务处理方法的步骤。29、本发明根据数据库事务中的数据处理指令对待处理对象进行处理,并对待处理对象置保留锁,保留锁用于表征数据库事务将修改待处理对象;记录对待处理对象进行处理的操作,并将生成的记录通过日志保存;分配更新待处理对象的资源,根据日志对数据库进行更新。由于本申请是通过保留锁对待处理对象的修改进行管理,并通过日志中的记录对数据库进行更新,解决了现有技术rc隔离级别通常采用多版本并发控制机制,但该方法在历史快照中查找及增删节点,在程序内部需要互斥,存在隐式锁,不能并发的问题,同时通过引入更多锁模式,缩短并发事务持有锁的时间,提升了事务处理的并发度。技术特征:1.一种数据库事务处理方法,其特征在于,所述方法包括:2.如权利要求1所述的数据库事务处理方法,其特征在于,所述根据数据库事务中的数据处理指令对待处理对象进行处理,并对所述待处理对象置保留锁的步骤,包括:3.如权利要求2所述的数据库事务处理方法,其特征在于,所述数据处理指令包括数据插入指令、数据删除指令和数据更新指令;所述根据数据库事务中的数据处理指令对待处理对象的标识进行处理的步骤,包括:4.如权利要求3所述的数据库事务处理方法,其特征在于,所述记录对所述待处理对象进行处理的操作,并将生成的记录通过日志保存的步骤,包括:5.如权利要求4所述的数据库事务处理方法,其特征在于,所述分配更新所述待处理对象的资源,根据所述日志对数据库进行更新的步骤,包括:6.如权利要求5所述的数据库事务处理方法,其特征在于,所述分配更新所述待处理对象索引所需的资源的步骤之后,还包括:7.如权利要求5所述的数据库事务处理方法,其特征在于,所述获取所述重做日志中的待处理对象数据的标识,对各所述待处理对象数据的标识执行置排他锁操作的步骤之后,还包括:8.一种数据库事务处理装置,其特征在于,所述装置包括:9.一种数据库事务处理设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据库事务处理程序,所述数据库事务处理程序配置为实现如权利要求1-7任一项所述的数据库事务处理方法的步骤。10.一种存储介质,其特征在于,所述存储介质上存储有数据库事务处理程序,所述数据库事务处理程序被处理器执行时实现如权利要求1-7任一项所述的数据库事务处理方法的步骤。技术总结本发明涉及数据库领域,公开一种数据库事务方法、装置、设备及存储介质。该方法根据数据库事务中的数据处理指令对待处理对象进行处理,对待处理对象置保留锁,保留锁用于表征数据库事务将修改待处理对象;记录对待处理对象进行处理的操作,并将生成的记录通过日志保存;分配更新待处理对象的资源,根据日志对数据库进行更新。由于本申请是通过保留锁对待处理对象的修改进行管理,并通过日志中的记录对数据库进行更新,解决了现有技术RC隔离级别通常采用多版本并发控制机制,但该方法在历史快照中查找及增删节点,在程序内部需要互斥,存在隐式锁,不能并发的问题,同时通过引入更多锁模式,缩短并发事务持有锁的时间,提升了事务处理的并发度。技术研发人员:易其亮,蔡林山,胡龙,张晗受保护的技术使用者:深圳市金证科技股份有限公司技术研发日:技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1