[发明专利]一种事务日志的处理方法、装置及系统有效
申请号: | 202011016358.5 | 申请日: | 2020-09-24 |
公开(公告)号: | CN112162833B | 公开(公告)日: | 2022-11-15 |
发明(设计)人: | 孙建强;沈钰忱;吴杰;张晞;杨金柱 | 申请(专利权)人: | 苏宁云计算有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/54;G06F16/18;G06F16/22 |
代理公司: | 北京市万慧达律师事务所 11111 | 代理人: | 段晓玲 |
地址: | 210000 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 事务 日志 处理 方法 装置 系统 | ||
本发明公开了一种事务日志的处理方法、装置及系统。所述方法包括:存储事务的事务日志,获得存储地址;识别所述事务的全局事务标识符,所述全局事务标识符为所述事务提交的唯一标识;将所述全局事务标识符和所述存储地址关联,并将所述全局事务标识符按照所述事务的提交时间以串行的方式存储,所述存储地址用于为所述全局事务标识符确定其对应的所述事务日志。本发明公开的技术方案使得事务日志存储时,仅需要将全局事务标识符串行存储即可,事务日志可以采用并行的存储方式,从而解决了现有技术中当事务日志数据量过大时,事务日志的串行存储存在的写入进程慢甚至宕机的问题。
技术领域
本发明涉及数据库技术领域,特别涉及一种事务日志的处理方法、装置及系统。
背景技术
数据库中的事务是对数据库的操作序列,是一个不可分割的工作单位,序列里的操作要么全执行,要么全不执行。事务日志即事务处理时产生的记录文件,其中存储对数据库进行的更改、插入、更新、删除、提交、回退和数据库模式变化的操作过程。一般情况下,由于事务中的操作是有时序性的,因此为了保证事务和数据库的一致性,事务日志通常以其提交时间为顺序写入磁盘,即采用串行化写入机制,当数据量过大时,数据的写入进程减速,严重则会出现宕机的情况。
为了应对数据量过大出现的日志数据写入问题,现有技术中主要采用缓存技术,将事务日志写入内容缓冲区,后续再写入磁盘,减轻磁盘压力,或者,每次事务提交都触发一次写盘,避免写盘数据量过大,但是,上述两种方式均极大地拖慢了日志数据的写入进程。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种事务日志的处理方法、装置及系统。所述技术方案如下:
第一方面,提供了一种事务日志的处理方法,所述方法包括:
存储事务的事务日志,获得存储地址;
识别所述事务的全局事务标识符,所述全局事务标识符为所述事务提交的唯一标识;
将所述全局事务标识符和所述存储地址关联,并将所述全局事务标识符按照所述事务的提交时间以串行的方式存储,所述存储地址用于为所述全局事务标识符确定其对应的所述事务日志。
进一步地,采用并发的方式存储所述事务日志。
进一步地,所述全局事务标识符按照所述事务提交的时间以串行的方式存储至非易失性内存设备中。
进一步地,所述全局事务标识符的获取,包括:
在所述事务开始后,为所述事务配置预选标识符;
在所述事务处理并产生所述事务日志后,当确认所述事务提交时,将所述预选标识符作为所述全局事务标识符。
进一步地,所述方法,还包括:
在所述事务开始后,判断自旋锁是否处于释放状态,
若否,则将所述预选标识符写入等待队列,
若是,则获取所述自旋锁,若获取成功,则存储所述预选标识符,若获取失败,则将所述预选标识符写入等待队列,待成功获取所述自旋锁后,处理所述事务,产生所述事务日志。
进一步地,所述方法,还包括:
当确认所述事务不提交后,则判断所述事务是否进行回滚操作,
若是,则执行事务回滚,存储回滚产生的事务回滚日志。
进一步地,所述方法,还包括:
当确认所述事务提交后,获取所述自旋锁,
若获取成功,则将所述全局事务标识符,按照所述事务的提交时间以串行的方式存储,存储完成后,释放所述自旋锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏宁云计算有限公司,未经苏宁云计算有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011016358.5/2.html,转载请声明来源钻瓜专利网。