CN112162833A - 一种事务日志的处理方法、装置及系统 - Google Patents
一种事务日志的处理方法、装置及系统 Download PDFInfo
- Publication number
- CN112162833A CN112162833A CN202011016358.5A CN202011016358A CN112162833A CN 112162833 A CN112162833 A CN 112162833A CN 202011016358 A CN202011016358 A CN 202011016358A CN 112162833 A CN112162833 A CN 112162833A
- Authority
- CN
- China
- Prior art keywords
- transaction
- identifier
- global
- log
- storing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种事务日志的处理方法、装置及系统。所述方法包括:存储事务的事务日志,获得存储地址;识别所述事务的全局事务标识符,所述全局事务标识符为所述事务提交的唯一标识;将所述全局事务标识符和所述存储地址关联,并将所述全局事务标识符按照所述事务的提交时间以串行的方式存储,所述存储地址用于为所述全局事务标识符确定其对应的所述事务日志。本发明通过。本发明公开的技术方案使得事务日志存储时,仅需要将全局事务标识符串行存储即可,事务日志可以采用并行的存储方式,从而解决了现有技术中当事务日志数据量过大时,事务日志的串行存储存在的写入进程慢甚至宕机的问题。
Description
技术领域
本发明涉及数据库技术领域,特别涉及一种事务日志的处理方法、装置及系统。
背景技术
数据库中的事务是对数据库的操作序列,是一个不可分割的工作单位,序列里的操作要么全执行,要么全不执行。事务日志即事务处理时产生的记录文件,其中存储对数据库进行的更改、插入、更新、删除、提交、回退和数据库模式变化的操作过程。一般情况下,由于事务中的操作是有时序性的,因此为了保证事务和数据库的一致性,事务日志通常以其提交时间为顺序写入磁盘,即采用串行化写入机制,当数据量过大时,数据的写入进程减速,严重则会出现宕机的情况。
为了应对数据量过大出现的日志数据写入问题,现有技术中主要采用缓存技术,将事务日志写入内容缓冲区,后续再写入磁盘,减轻磁盘压力,或者,每次事务提交都触发一次写盘,避免写盘数据量过大,但是,上述两种方式均极大地拖慢了日志数据的写入进程。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种事务日志的处理方法、装置及系统。所述技术方案如下:
第一方面,提供了一种事务日志的处理方法,所述方法包括:
存储事务的事务日志,获得存储地址;
识别所述事务的全局事务标识符,所述全局事务标识符为所述事务提交的唯一标识;
将所述全局事务标识符和所述存储地址关联,并将所述全局事务标识符按照所述事务的提交时间以串行的方式存储,所述存储地址用于为所述全局事务标识符确定其对应的所述事务日志。
进一步地,采用并发的方式存储所述事务日志。
进一步地,所述全局事务标识符按照所述事务提交的时间以串行的方式存储至非易失性内存设备中。
进一步地,所述全局事务标识符的获取,包括:
在所述事务开始后,为所述事务配置预选标识符;
在所述事务处理并产生所述事务日志后,当确认所述事务提交时,将所述预选标识符作为所述全局事务标识符。
进一步地,所述方法,还包括:
在所述事务开始后,判断自旋锁是否处于释放状态,
若否,则将所述预选标识符写入等待队列,
若是,则获取所述自旋锁,若获取成功,则存储所述预选标识符,若获取失败,则将所述预选标识符写入等待队列,待成功获取所述自旋锁后,处理所述事务,产生所述事务日志。
进一步地,所述方法,还包括:
当确认所述事务不提交后,则判断所述事务是否进行回滚操作,
若是,则执行事务回滚,存储回滚产生的事务回滚日志。
进一步地,所述方法,还包括:
当确认所述事务提交后,获取所述自旋锁,
若获取成功,则将所述全局事务标识符,按照所述事务的提交时间以串行的方式存储,存储完成后,释放所述自旋锁。
第二方面,提供了一种事务日志的处理装置,所述装置包括:
事务日志存储模块,用于存储事务的事务日志,获得存储地址;
全局事务标识符识别模块,用于识别所述事务的全局事务标识符,所述全局事务标识符为所述事务提交的唯一标识;
关联模块,用于将所述全局事务标识符和所述存储地址关联,所述存储地址用于为所述全局事务标识符确定其对应的所述事务日志;
标识符存储模块,用于按照所述事务的提交时间以串行的方式存储所述全局事务标识符。
进一步地,所述事务日志存储模块,具体用于以并发的方式存储所述事务日志。
进一步地,所述事务日志存储模块,具体为非易失性内存设备。
进一步地,所述装置,还包括:
全局事务标识符获取模块,用于在所述事务开始后,为所述事务配置所述预选标识符,在所述事务处理并产生所述事务日志后,当确认所述事务提交时,将所述预选标识符作为所述全局事务标识符。
进一步地,所述装置,还包括:
自旋锁管理模块,用于在所述事务开始后,判断自旋锁是否处于释放状态,以及获取所述自旋锁;
预选标识符管理模块,用于在所述事务开始后,所述自旋锁不处于释放状态时,将所述预选标识符写入等待队列,以及
所述自旋锁处于释放状态,且自旋锁获取成功时,存储所述预选标识符,以及所述自旋锁获取失败时,将所述预选标识符写入所述等待队列,以待成功获取所述自旋锁后,处理所述事务,产生所述事务日志。
进一步地,所述装置,还包括:
事务回滚日志存储模块,用于当确认所述事务不递交,且所述事务进行回滚操作,产生事务回滚日志后,存储所述事务回滚日志。
进一步地,所述自旋锁管理模块,还用于当确认所述事务递交后,获取所述自旋锁,以及待所述全局事务标识符按照所述事务的提交时间以串行的方式存储完成后,释放所述自旋锁。
第三方面,提供一种计算机系统,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行上述第一方面任一项所述的方法。
本发明实施例提供的技术方案带来的有益效果是:
本发明公开的技术方案将事务日志和事务的全局事务标识符分开存储,并将事务日志的存储地址和全局事务标识符关联,使全局事务标识符能够对应到事务日志,如此使得事务日志存储时,仅需要将全局事务标识符串行存储即可,事务日志可以采用并行的存储方式,从而解决了现有技术中当事务日志数据量过大时,事务日志的串行存储存在的写入进程慢甚至宕机的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的事务日志的处理方法流程图;
图2是本发明实施例提供的全局事务标识符处理方法的流程图;
图3是本发明实施例提供的事务日志的处理装置结构示意图;
图4是本发明实施例提供的计算机系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如背景技术所述,事务是对数据库的操作序列。事务中包含的各操作之间是有时序性的,如果将操作顺序打乱,则会造成事务和数据库不一致。举例说明:A向其自己的账户中存入了1000块,然后又从该账户中取出了1000块,这里是存款在前,取款在后,若将操作顺序修改为:A从其自己的账户中取出了1000块,又向该账户存入了1000块,那么在两种不同的操作下,该账户必将在某一个时间内余额不一致。基于事务中操作的时序性,事务日志的存储也必然是具有时序性的,为了保证事务存储的时序性,事务日志写入磁盘时,需要按照事务的递交时间串行写入。
为了区分不同的事务,事务均配置有全局事务标识符,用于确认事务的唯一性。现有技术中,一个事务日志带有一个全局事务标识符,将事务日志和全局事务标识符一同存入同一个存储位置中。如此,当事务日志中包含的数据量庞大时,事务日志的串行存储进程将被拖慢,进而影响数据库的运行。但是,事务日志的串行存储可以保证事务中操作的时序性,为此,本发明的技术方案意在研究如何将事务日志并发存储,又不会影响事务和数据库的一致性,具体技术方案如下:
如图1所示,一种事务日志的处理方法,包括:
S1、存储事务的事务日志,获得存储地址。
上述,事务日志与事务对应,存储地址包括事务日志的具体存储位置。
在一个实施例中,为了提高事务日志的存储性能,本发明实施例采用并发的方式存储事务日志,即存储时无需考虑事务日志的时序性。
S2、识别事务的全局事务标识符,其中,全局事务标识符为事务提交的唯一标识。
上述,全局事务标识符可以是预先为事务配置的标识符,即一串独一无二的编码。识别全局事务标识符是为了将全局事务标识符和事务日志隔离开,使全局事务标识符不和事务日志一同存储。
需要说明的是,本发明实施例中步骤S1和S2之间的顺序也可以调换,本发明实施例不对二者的先后顺序作限定。
S3、将全局事务标识符和存储地址关联,并将全局事务标识符按照事务的递交时间以串行的方式存储,存储地址用于为全局事务标识符确定其对应的事务日志。
上述,将全局事务标识符和存储地址关联,至少有两种实现方式:
第一种,将全局事务标识符和存储地址连接成一个整体,具体可以将存储地址记录到全局事务标识符后面。这样,在存储全局事务标识符时,则将存储地址一同以串行的方式存储。
第二种,建立全局事务标识符和存储地址的映射关系,通过该映射关系可以根据全局事务标识符查到其对应的存储地址,进而找到相应的事务日志。此种方式,无需将全局事务标识符和存储地址连接成一体,具体存储时,二者也可以分开存储,只是多一个映射步骤。
上述步骤S1~S3事务日志与全局事务标识符分别单独存储,其中,步骤S3中由于事务的全局事务标识符是按照事务提交时间串行存储的,并且通过全局事务标识符能够确定相应的事务日志,因此即使步骤S1中的事务日志不采用串行的存储方式,也能够通过全局事务标识符确定事务日志的时序,即达到了本发明实施例将事务日志并发存储,又不会影响事务和数据库的一致性的目的。
在一个实施例中,全局事务标识符按照事务递交的时间以串行的方式存储至非易失性内存设备中。
非易失性内存设备是一种在关闭计算机,或者突然性、意外性地关闭计算机时,数据不会丢失的存储器。本发明实施例中,由于全局事务标识符占用内存非常小,因此可以使用内存不大的非易失性内存设备,从而极大地降低本发明公开技术方案的实施成本。
进一步地,非易失性内存设备支持以地址寻址方式访问的特征,可以以字节为单位进行操作,相对于传统数据库管理系统最小4K字节为单位的读写操作,可以极大的提高系统性能和效率。基于上述,可以把事务日志也一并存入非易失性内存设备中,进一步提高单笔事务的事务日志写盘性能,不过事务日志和全局事务标识符的存储需独立分区存储。
在一个实施中,本发明实施例公开的技术方案,在步骤S1之前,还包括全局事务标识符获得的方法:
在事务开始后,为事务配置预选标识符。
在事务处理并产生事务日志后,当确认事务提交时,将预选标识符作为全局事务标识符。
上述,事务开始是指事务形成,事务处理是指处理已经形成的事务。预选标识符与事务对应,具有唯一性。若确认事务不提交,则放弃预选标识符。
在一个实施例中,本发明实施例公开的技术方案,在事务开始后,事务处理开始前,还包括:
判断自旋锁是否处于释放状态,
若否,则将预选标识符写入等待队列,
若是,则获取自旋锁,若获取成功,则存储预选标识符,若获取失败,则将预选标识符写入等待队列,等待成功获取自旋锁后,处理事务,产生事务日志。
上述,自旋锁是当一个线程在获取锁的时候,如果锁已经被其他线程获取,那么该线程将循环等待,然后不断的判断是否能够成功获取,直到获取锁才会退出循环。本实施例中,在事务处理过程中的数据相互访问冲突,使用关系型数据库的锁管理机制进行管控。事务开始的顺序对事务一致性没有影响,因此预选标识符可以异步写入等待队列,以使在成功获取自旋锁,并释放自旋锁后尽早处理。
在一个实施例中,在确认事务不提交后,上述方法,还包括:
当确定事务不提交后,则判断事务是否进行回滚操作,若是,则执行事务回滚,存储回滚产生的事务回滚日志。
上述,回滚是倒序执行事务,恢复事务处理前的状态的操作。进一步地,上述方法,还包括:若事务不回滚,则存储事务处理产生的事务日志,并再次判断事务是否提交,直至确定事务递交,或者回滚。
在一个实施例中,上述方法,还包括:
当确认事务提交后,获取自旋锁;
若获取成功,则将全局事务标识符,按照事务的递交时间以串行的方式存储,存储完成后,释放自旋锁。
图2提供了上述实施例结合后的技术方案中全局事务标识符处理的实现流程,具体为:
事务开始(此时为事务配置预选标识符);
在事务开始后,判断自旋锁是否处于释放状态,若是,则尝试获取自旋锁,若否,则将预选标识符写入等待队列;
若尝试获取自旋锁成功,则将预选标识符存入标识符存储区,
若尝试获取自旋锁失败,则将预选标识符写入等待队列;
待自旋锁被释放后,处理事务,产生事务日志;
判断是否进行事务提交,若是,则尝试获取自旋锁,若获取失败,则继续尝试获取,若获取成功,则将预选标识符作为全局事务标识符,按照事务提交时间写入标识符存储区,释放自旋锁,完成事务提交,事务结束,
若否,则判断是否对事务进行回滚操作,若否,则返回判断事务是否提交的判断步骤,若是,则执行事务回滚,存储事务回滚日志,事务回滚完成,事务结束。
如图3所示,基于本发明公开的一种事务日志的处理方法,本发明实施例还公开一种事务日志的处理装置,包括:
事务日志存储模块301,用于存储事务的事务日志,获得存储地址。
全局事务标识符识别模块302,用于识别事务的全局事务标识符,全局事务标识符为事务递交的唯一标识。
关联模块303,用于将全局事务标识符和存储地址关联,存储地址用于为全局事务标识符确定其对应的事务日志。
标识符存储模块304,用于按照事务的递交时间以串行的方式存储全局事务标识符。
上述,事务日志存储模块301和标识符存储模块304是一个存储设备中独立的两个存储区域,或两个的存储设备。
关联模块303具体的运行方式,至少包括两种:
第一种,将全局事务标识符和存储地址连接成一个整体,具体可以将存储地址记录到全局事务标识符后面。这样,在存储全局事务标识符时,则将存储地址一同以串行的方式存储。
第二种,建立全局事务标识符和存储地址的映射关系,通过该映射关系可以根据全局事务标识符查到其对应的存储地址,进而找到相应的事务日志。此种方式,无需将全局事务标识符和存储地址连接成一体,具体存储时,关联模块303中可存储全局事务标识符和存储地址的映射关系表。
在一个实施例中,事务日志存储模块,具体用于以并发的方式存储事务日志。
在一个实施例中,事务日志存储模块,具体为非易失性内存设备。
在一个实施例中,上述装置,还包括:
全局事务标识符获取模块,用于在事务开始后,为事务配置预选标识符,在事务处理并产生事务日志后,当确认事务提交时,将预选标识符作为全局事务标识符。
在一个实施例中,上述装置,还包括:
自旋锁管理模块,用于在事务开始后,判断自旋锁是否处于释放状态,以及获取自旋锁;
预选标识符管理模块,用于在事务开始后,自旋锁不处于释放状态时,将预选标识符写入等待队列,以及
自旋锁处于释放状态,且自旋锁获取成功时,存储预选标识符,以及自旋锁获取失败时,将预选标识符写入等待队列,以待成功获取自旋锁后,处理事务,产生事务日志。
在一个实施例中,上述装置,还包括:
事务回滚日志存储模块,用于当确认事务不递交,且事务进行回滚操作,产生事务回滚日志后,存储事务回滚日志。
在一个实施例中,上述自旋锁管理模块,还用于当确认事务递交后,获取自旋锁,以及待全局事务标识符按照事务的提交时间以串行的方式存储完成后,释放自旋锁。
基于上述方法实施例,本发明实施例还提供一种计算机系统,包括:
一个或多个处理器;以及
与一个或多个处理器关联的存储器,存储器用于存储程序指令,程序指令在被一个或多个处理器读取执行时,执行上述事务日志的处理方法。
其中,图4示例性的展示出了计算机系统的架构,具体可以包括处理器410,视频显示适配器411,磁盘驱动器412,输入/输出接口413,网络接口414,以及存储器420。上述处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口413、网络接口414,与存储器420之间可以通过通信总线430进行通信连接。
其中,处理器410可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器420可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储用于控制电子设备400运行的操作系统421,用于控制电子设备400的低级别操作的基本输入输出系统422(BIOS)。另外,还可以存储网页浏览器423,数据存储管理系统424,以及设备标识信息处理系统425等等。上述设备标识信息处理系统425就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
输入/输出接口413用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口414用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线430包括一通路,在设备的各个组件(例如处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口413、网络接口414,与存储器420)之间传输信息。
另外,该电子设备400还可以从虚拟资源对象领取条件信息数据库441中获得具体领取条件的信息,以用于进行条件判断,等等。
需要说明的是,尽管上述设备仅示出了处理器410、视频显示适配器411、磁盘驱动器412、输入/输出接口414、网络接口414,存储器420,总线440等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例提供的技术方案带来的有益效果是:
本发明公开的技术方案将事务日志和事务的全局事务标识符分开存储,并将事务日志的存储地址和全局事务标识符关联,使全局事务标识符能够对应到事务日志,如此使得事务日志存储时,仅需要将全局事务标识符串行存储即可,事务日志可以采用并行的存储方式,从而解决了现有技术中当事务日志数据量过大时,事务日志的串行存储存在的写入进程慢甚至宕机的问题。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种事务日志的处理方法,其特征在于,包括:
存储事务的事务日志,获得存储地址;
识别所述事务的全局事务标识符,所述全局事务标识符为所述事务提交的唯一标识;
将所述全局事务标识符和所述存储地址关联,并将所述全局事务标识符按照所述事务的提交时间以串行的方式存储,所述存储地址用于为所述全局事务标识符确定其对应的所述事务日志。
2.如权利要求1所述的方法,其特征在于,采用并发的方式存储所述事务日志。
3.如权利要求1所述的方法,其特征在于,所述全局事务标识符按照所述事务提交的时间以串行的方式存储至非易失性内存设备中。
4.如权利要求1~3中任意一项所述的方法,其特征在于,所述全局事务标识符的获取,包括:
在所述事务开始后,为所述事务配置预选标识符;
在所述事务处理并产生所述事务日志后,当确认所述事务提交时,将所述预选标识符作为所述全局事务标识符。
5.如权利要求4所述的方法,其特征在于,所述方法,还包括:
在所述事务开始后,判断自旋锁是否处于释放状态,
若否,则将所述预选标识符写入等待队列,
若是,则获取所述自旋锁,若获取成功,则存储所述预选标识符,若获取失败,则将所述预选标识符写入等待队列,待成功获取所述自旋锁后,处理所述事务,产生所述事务日志。
6.如权利要求4所述的方法,其特征在于,所述方法,还包括:
当确认所述事务不提交后,则判断所述事务是否进行回滚操作,若是,则执行事务回滚,存储回滚产生的事务回滚日志。
7.如权利要求5所述的方法,其特征在于,所述方法,还包括:
当确认所述事务提交后,获取所述自旋锁,
若获取成功,则将所述全局事务标识符,按照所述事务的提交时间以串行的方式存储,存储完成后,释放所述自旋锁。
8.一种事务日志的处理装置,其特征在于,包括:
事务日志存储模块,用于存储事务的事务日志,获得存储地址;
全局事务标识符识别模块,用于识别所述事务的全局事务标识符,所述全局事务标识符为所述事务提交的唯一标识;
关联模块,用于将所述全局事务标识符和所述存储地址关联,所述存储地址用于为所述全局事务标识符确定其对应的所述事务日志;
标识符存储模块,用于按照所述事务的提交时间以串行的方式存储所述全局事务标识符。
9.如权利要求8所述的装置,其特征在于,所述事务日志存储模块,具体用于以并发的方式存储所述事务日志。
10.一种计算机系统,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行上述权利要求1~7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011016358.5A CN112162833B (zh) | 2020-09-24 | 2020-09-24 | 一种事务日志的处理方法、装置及系统 |
CA3141599A CA3141599C (en) | 2020-09-24 | 2021-09-24 | Transaction log processing method, device and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011016358.5A CN112162833B (zh) | 2020-09-24 | 2020-09-24 | 一种事务日志的处理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112162833A true CN112162833A (zh) | 2021-01-01 |
CN112162833B CN112162833B (zh) | 2022-11-15 |
Family
ID=73862704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011016358.5A Active CN112162833B (zh) | 2020-09-24 | 2020-09-24 | 一种事务日志的处理方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112162833B (zh) |
CA (1) | CA3141599C (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104899117A (zh) * | 2015-06-17 | 2015-09-09 | 江苏师范大学 | 面向非易失性内存的内存数据库并行日志方法 |
US20170344595A1 (en) * | 2016-05-31 | 2017-11-30 | Vmware, Inc. | Commit coalescing for micro-journal based transaction logging |
CN109446173A (zh) * | 2018-09-18 | 2019-03-08 | 平安科技(深圳)有限公司 | 日志数据处理方法、装置、计算机设备和存储介质 |
-
2020
- 2020-09-24 CN CN202011016358.5A patent/CN112162833B/zh active Active
-
2021
- 2021-09-24 CA CA3141599A patent/CA3141599C/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104899117A (zh) * | 2015-06-17 | 2015-09-09 | 江苏师范大学 | 面向非易失性内存的内存数据库并行日志方法 |
US20170344595A1 (en) * | 2016-05-31 | 2017-11-30 | Vmware, Inc. | Commit coalescing for micro-journal based transaction logging |
CN109446173A (zh) * | 2018-09-18 | 2019-03-08 | 平安科技(深圳)有限公司 | 日志数据处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CA3141599A1 (en) | 2022-03-24 |
CN112162833B (zh) | 2022-11-15 |
CA3141599C (en) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10387313B2 (en) | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot | |
KR101203297B1 (ko) | 직접 업데이트 소프트웨어 트랜잭션 메모리 | |
US8489815B2 (en) | Managing cache data and metadata | |
CN114580344B (zh) | 测试激励生成方法、验证方法、验证系统及相关设备 | |
WO2013152660A1 (zh) | 加速操作系统启动的方法、装置、终端及计算机存储介质 | |
US20170286150A1 (en) | Transaction Processing Method and Apparatus, and Computer System | |
CN104866388B (zh) | 数据处理方法及装置 | |
CN110928890B (zh) | 数据存储方法、装置、电子设备及计算机可读存储介质 | |
CN112162833B (zh) | 一种事务日志的处理方法、装置及系统 | |
CN112559385A (zh) | 提升ssd写性能的方法、装置、计算机设备及存储介质 | |
CN117112522A (zh) | 并发进程日志管理方法、装置、设备和存储介质 | |
CN111611104B (zh) | 一种InfluxDB数据备份方法、系统及终端设备 | |
CN112463037B (zh) | 一种元数据保存方法、装置、设备、产品 | |
CN109445686B (zh) | 一种存储磁盘以及存取数据的方法 | |
CN114722261A (zh) | 一种资源的处理方法、装置、电子设备及存储介质 | |
WO2019169615A1 (zh) | 访问指令sram的方法和电子设备 | |
CN114510490B (zh) | 提升数据库数据插入性能的方法和装置 | |
CN117234431B (zh) | 缓存管理方法、装置、电子设备及存储介质 | |
US20230297236A1 (en) | Far memory direct caching | |
CN114153610A (zh) | 一种基于线程的用户配额方法、装置及存储介质 | |
CN118152034A (zh) | Bios配置方法和电子设备 | |
CN115599756A (zh) | 数据库的数据写盘方法、存储介质与设备 | |
CN117971554A (zh) | 一种内存数据的处理方法及计算设备 | |
CN115757290A (zh) | 文件数据的写读方法、装置、系统、终端设备及存储介质 | |
CN115309668A (zh) | Sdd写入性能优化方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |