CN117453698A - 事务处理方法、装置、计算机设备及存储介质 - Google Patents
事务处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117453698A CN117453698A CN202311212791.XA CN202311212791A CN117453698A CN 117453698 A CN117453698 A CN 117453698A CN 202311212791 A CN202311212791 A CN 202311212791A CN 117453698 A CN117453698 A CN 117453698A
- Authority
- CN
- China
- Prior art keywords
- transaction
- application
- logic
- transaction data
- transactions
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 118
- 230000004044 response Effects 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 39
- 238000000034 method Methods 0.000 claims description 39
- 238000004806 packaging method and process Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 5
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 claims 2
- 238000012856 packing Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- 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/23—Updating
- G06F16/2308—Concurrency control
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种事务处理方法、装置、计算机设备及存储介质,方法包括:获取待处理的事务数据表,事务数据表包括多个逻辑事务及各个逻辑事务对应的多批逻辑事务数据,且每个逻辑事务配置有事务编号;根据事务编号,对各个逻辑事务对应的多批逻辑事务数据进行打包处理,得到应用事务及应用事务对应的应用事务数据;响应于针对应用事务的执行指令,调用数据库事务对应用事务数据进行事务处理,生成事务处理结果,本申请实施例利用事务编号将多个逻辑事务绑定为一个应用事务,完成了应用事务的创建,再调用数据库事务执行应用事务,处理机制简单,实现了对复杂的逻辑事务的处理,确保了客户端的用户无感知,提高了事务处理效率。
Description
技术领域
本申请涉及数据库技术领域,具体涉及一种事务处理方法、装置、计算机设备及存储介质。
背景技术
事务是计算机***中对数据的一组操作,这些操作要保证全部都执行成功,才算该事务执行完成。如果这组操作中间的某一个步骤执行失败,则整组的操作都需要回退到初始状态。大型数据库***有稳定的事务机制,能够在数据库层保证一组数据的操作要么全部执行,要么全部不执行,在关系型数据库***中,一个事务可以是一条SQL语句,一组SQL语句或一个程序。
对于大型计算机应用***,涉及的业务处理往往较复杂,会带来事务内操作过程的复杂化,存在无法直接通过嵌入式数据库事务(Transaction)进行处理的操作,例如,上层软件中的一些复杂逻辑业务操作和一些特殊业务操作,需要启动事务之后,上层软件的计算处理与数据库操作的间隔、交叉执行,如此,会导致事务的执行时间不仅仅包含了数据库操作的时间,还包含了上层软件计算处理的时间,延长了事务的执行时间,降低了事务处理效率。
发明内容
基于此,有必要针对上述技术问题,提供一种事务处理方法、装置、计算机设备及存储介质,以解决嵌入式数据库事务处理复杂事务和特殊事务不足的技术问题,提高事务的处理效率。
第一方面,本申请提供一种事务处理方法,包括:
获取待处理的事务数据表,所述事务数据表包括多个逻辑事务及各个所述逻辑事务对应的多批逻辑事务数据,且每个所述逻辑事务配置有事务编号,所述事务编号用于区分所述逻辑事务实现的功能;
根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据;
响应于针对所述应用事务的执行指令,调用数据库事务对所述应用事务数据进行事务处理,生成事务处理结果。
在本申请一些实施例中,在所述获取待处理的事务数据表之前,还包括:
当接收到一个功能的多批逻辑事务数据时,将多批所述逻辑事务数据保存在一个逻辑事务中;
获取多个所述逻辑事务,根据功能的异同,对所述逻辑事务进行编号,得到所述事务编号;
根据每批所述逻辑事务数据的写入顺序,对每批逻辑事务数据进行顺序编号,得到事务子编号。
在本申请一些实施例中,根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据,包括:
将相同的事务编号对应的逻辑事务合并为一个所述应用事务;
将相同的事务编号对应的逻辑事务的多批所述逻辑事务数据合并为所述应用事务数据。
在本申请一些实施例中,所述调用数据库事务对所述应用事务数据进行事务处理,生成事务处理结果,包括:
将所述事务子编号作为所述应用事务中各批逻辑事务数据的执行优先级;
调用所述数据库事务,按照各批所述逻辑事务数据的执行优先级,对所述应用事务数据中各批所述逻辑事务数据进行事务处理,生成所述事务处理结果。
在本申请一些实施例中,在所述根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据之后,还包括:
创建文件数据库表和内存数据库表,其中,所述文件数据库表和内存数据库表的表结构保持一致;
将所述应用事务和所述应用事务的应用事务数据保存至所述内存数据库表中;
将所述内存数据库表定时同步至所述文件数据库表中。
在本申请一些实施例中,在所述根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据之后,还包括:
创建文件数据库表和内存数据库表,其中,所述文件数据库表和内存数据库表的表结构保持一致;
将所述应用事务和所述应用事务的应用事务数据保存至所述内存数据库表或所述文件数据库表中。
在本申请一些实施例中,所述调用数据库事务对所述应用事务数据进行事务处理,生成事务处理结果,包括:
当所述事务处理为查询和/或***操作时,则在所述内存数据库表中对所述应用事务数据进行事务处理;
当所述事务处理为删除和/或更新操作时,则在所述内存数据库表和所述文件数据库表中对所述应用事务数据进行事务处理。
第二方面,本申请提供一种事务处理装置,包括:
获取模块,用于获取待处理的事务数据表,所述事务数据表包括多个逻辑事务及各个所述逻辑事务对应的多批逻辑事务数据,且每个所述逻辑事务配置有事务编号,所述事务编号用于区分所述逻辑事务实现的功能;
打包模块,用于根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据;
处理模块,用于响应于针对所述应用事务的执行指令,调用数据库事务对所述应用事务数据进行事务处理,生成事务处理结果。
在本申请一些实施例中,所述事务处理装置还包括:
第一保存模块,用于当接收到一个功能的多批逻辑事务数据时,将多批所述逻辑事务数据保存在一个逻辑事务中;
第一编号模块,用于获取多个所述逻辑事务,根据功能的异同,对所述逻辑事务进行编号,得到所述事务编号;
第二编号模块,用于根据每批所述逻辑事务数据的写入顺序,对每批逻辑事务数据进行顺序编号,得到事务子编号。
在本申请一些实施例中,所述打包模块具体用于:将相同的事务编号对应的逻辑事务合并为一个所述应用事务;将相同的事务编号对应的逻辑事务的多批所述逻辑事务数据合并为所述应用事务数据。
在本申请一些实施例中,处理模块具体用于:将所述事务子编号作为所述应用事务中各批逻辑事务数据的执行优先级;调用所述数据库事务,按照各批所述逻辑事务数据的执行优先级,对所述应用事务数据中各批所述逻辑事务数据进行事务处理,生成所述事务处理结果。
在本申请一些实施例中,所述事务处理装置还包括:
创建模块,用于创建文件数据库表和内存数据库表,其中,所述文件数据库表和内存数据库表的表结构保持一致;
第二保存模块,用于将所述应用事务和所述应用事务的应用事务数据保存至所述内存数据库表中;
同步模块,用于将所述内存数据库表定时同步至所述文件数据库表中。
在本申请一些实施例中,所述事务处理装置还包括:
创建模块,用于创建文件数据库表和内存数据库表,其中,所述文件数据库表和内存数据库表的表结构保持一致;
第三保存模块,用于将所述应用事务和所述应用事务的应用事务数据保存至所述内存数据库表或所述文件数据库表中。
在本申请一些实施例中,处理模块具体还用于:当所述事务处理为查询和/或***操作时,则在所述内存数据库表中对所述应用事务数据进行事务处理;当所述事务处理为删除和/或更新操作时,则在所述内存数据库表和所述文件数据库表中对所述应用事务数据进行事务处理。
第三方面,本申请还提供一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器;以及一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现所述的事务处理方法。
第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器进行加载,以执行的事务处理方法中的步骤。
上述事务处理方法、装置、计算机设备及存储介质,通过获取待处理的事务数据表,事务数据表包括多个逻辑事务及各个逻辑事务对应的多批逻辑事务数据,且每个逻辑事务配置有事务编号;根据事务编号,对各个逻辑事务对应的多批逻辑事务数据进行打包处理,得到应用事务及应用事务对应的应用事务数据;响应于针对应用事务的执行指令,调用数据库事务对应用事务数据进行事务处理,生成事务处理结果,本申请实施例,根据事务编号将多个逻辑事务合并为一个应用事务,实现了对多个逻辑事务的分析整理,完成了应用事务的创建,再调用数据库事务执行应用事务,处理机制简单,同时,通过异步方式打包逻辑事务数据和处理逻辑事务,实现了对复杂的逻辑事务的处理,确保了客户端的用户无感知,提高了事务处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例中事务处理方法的流程示意图;
图2是本申请一实施例中事务处理***的架构图;
图3是本申请实施例中事务处理装置的结构示意图;
图4是本申请实施例中计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请的描述中,“例如”一词用来表示“用作例子、例证或说明”。本申请中被描述为“例如”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本发明,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本发明。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本发明的描述变得晦涩。因此,本发明并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
为了更好的理解本发明实施例的技术方案,首先对复杂业务逻辑操作和特殊操作进行解释说明。其中,复杂业务逻辑操作和特殊操作均是指无法直接通过嵌入式数据库事务(Transaction)进行处理的操作,例如,长时间间隔操作、不同菜单操作或预处理类操作,共三种应用场景下的复杂业务逻辑操作和特殊操作。其中的长时间间隔操作是指,多项操作之间相互关联,且至少两项操作之间的时间间隔较长,示例性地,用户在进行了第一项操作之后,需要经过一段时间的等待,如等待第三方***的数据,在待需要的其他数据获取到后,才能进行第二项操作,此时,第一项和第二项操作在相应***的业务逻辑上构成了一个完整的事务,即第一项和第二项操作的组合即为复杂业务操作。其中的不同菜单操作是指需要在不同的菜单上分别进行操作,示例性地,用户的第三项操作和第四项操作在不同的菜单中,在第一项菜单中完成第三项操作后,需要返回主界面,再进入第二项菜单进行第四项操作,此时,第三项和第四项操作在相应***的业务逻辑上构成了一个完整的事务,即第三项和第四项操作的组合即为复杂业务操作。其中的预处理操作是指需要结合预处理操作和后续操作,示例性地,对于工作量大的操作,可以先行预处理一部分数据,即进行第五项操作,但是该第五项操作获得的预处理数据,不能作为完整的事务提交给数据库,还需要进行后续的第六项操作获得的后续数据,然后结合预处理数据和后续数据进行事务处理,即第五项和第六项操作的组合即为特殊业务操作。本实施例中的三种操作只是举例的几个应用场景下的复杂业务逻辑操作和特殊操作,还可以是其他应用场景下的复杂业务逻辑操作和特殊操作。
如图1所示,为本申请实施例中事务处理方法的一个实施例流程示意图,该事务处理方法既可以应用于终端,也可以应用于服务器,本实施例以应用于服务器举例说明。该事务处理方法的执行主体是服务器,该事务处理方法可以包括如下步骤101~103,具体如下:
101,获取待处理的事务数据表,所述事务数据表包括多个逻辑事务及各个所述逻辑事务对应的多批逻辑事务数据,且每个所述逻辑事务配置有事务编号,所述事务编号用于区分所述逻辑事务实现的功能。
其中,事务数据表是指需要进行事务处理,并记录有事务数据的表格,本实施例中的事务数据表包括多个逻辑事务,每个逻辑事务包含有多批逻辑事务数据,逻辑事务是指实现某一功能中,涉及的多个为实现该功能的事务,例如,上述场景中的“长时间间隔操作”的应用场景中,第一项操作为一个逻辑事务,第二项操作为一个逻辑事务。逻辑事务数据是指一个逻辑事务中的事务数据。事务编号是指逻辑事务的标识,可以通过数字和字符的组合表示,用于区分逻辑事务实现的功能,即如果几个逻辑事务实现的功能相同,则其事务编号也相同,以上述场景中的“长时间间隔操作”的应用场景为例,第一项操作的事务编号和第二项操作的事务编号相同;以上述场景中的“不同菜单操作”的应用场景为例,第三项操作的事务编号和第四项操作的事务编号相同。
在一个示例中,一个业务流程的某个节点需要更新数据库中某条记录的10个字段,其中7个字段的数据需要人工首先输入,这7个字段的数据输入工作构成一个逻辑上的事务,也即一个逻辑事务,剩下3个字段的数据需要依靠这7个字段进行运算才能得到,或者,将这7个字段传输给第三方***,与第三方***进行一次通信后才能获取到,这样,剩下的3个字段的数据获取形成一个逻辑事务。
在另一个示例中,对于需要录入100条数据的场景,如果每一条数据作为一个事务去执行,可以将每条数据作为一个逻辑事务,则产生了100个逻辑事务,如果等待录入50条数据时,将50条数据作为一个事务去执行,可以将50条数据作为一个逻辑事务,产生2个逻辑事务。
具体地,可以预先将多批事务数据保存在内存表或者文件***中,根据客户端发起的一个逻辑上的事务,将多批事务数据保存到一个逻辑事务,并根据各个逻辑事务的实现功能,对逻辑事务进行编号,然后,将逻辑事务的编号、逻辑事务和多批事务数据记录在表格中,形成事务数据表,如此,可以从服务器获取到事务数据表。
在一具体实施方式中,步骤101所述获取待处理的事务数据表之前,还可以包括如下步骤104~106,具体如下:
104,当接收到一个功能的多批逻辑事务数据时,将多批所述逻辑事务数据保存在一个逻辑事务中;
105,获取多个所述逻辑事务,根据功能的异同,对所述逻辑事务进行编号,得到所述事务编号;
106,根据每批所述逻辑事务数据的写入顺序,对每批逻辑事务数据进行顺序编号,得到事务子编号。
其中,事务子编号是指逻辑事务中每批逻辑事务分配的编号,可以通过数字进行标识,如1、2、3、4等。
具体地,服务器每接收到一个功能的多批逻辑事务数据时,将该功能的多批逻辑事务数据保存在一个逻辑事务中,如此,在获取到多个逻辑事务时,根据逻辑事务的功能,采用GUID(全局唯一标识符,Globally Unique Identifier)算法生成事务编号,确保各个功能中逻辑事务的编号的唯一性。对于每批逻辑事务数据,可以根据各批逻辑事务数据的写入顺序进行编号,例如,每写入一批逻辑事务数据,则该批逻辑事务数据的事务子标号增加1,使得事务子编号不仅可以区分各批逻辑事务数据,还反映了逻辑事务数据的写入顺序,以便后续基于事务子编号实现对各批逻辑事务数据的顺序执行。可以理解地,本实施例中通过对逻辑事务和逻辑事务数据进行编号,实现了对逻辑事务和逻辑事务数据的分析整理,以便后续基于事务编号和事务子编号对逻辑事务和逻辑事务数据进行高效处理。
102,根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据。
其中,打包处理是一种将多个逻辑事务和各个逻辑事务对应的多批逻辑事务数据进行合并,实现多个逻辑事务组合以及逻辑事务对应的多批逻辑事务数据的组合的数据处理方式。应用事务为多个逻辑事务组合后的一个完整事务,应用事务数据即为应用事务中的所有逻辑事务对应的多批逻辑事务数据组合后的逻辑事务数据。
具体地,由于事务编号可以区分所述逻辑事务实现的功能,因此,根据事务编号对各个逻辑事务对应的多批逻辑事务数据进行打包处理,实现了对各个逻辑事务的分类整理,确保应用事务为完整事务。
在一具体实施方式中,步骤102中所述根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据,可以包括如下步骤102A~102B,具体如下:
102A,将相同的事务编号对应的逻辑事务合并为一个所述应用事务;
102B,将相同的事务编号对应的逻辑事务的多批所述逻辑事务数据合并为所述应用事务数据。
具体地,由于事务编号可以区分所述逻辑事务实现的功能,因此,相同的事务编号的逻辑事务实现的功能是同一功能,将相同的事务编号对应的逻辑事务合并为一个应用事务,如此,一个应用事务可以实现一个完整功能,同时,将相同的事务编号对应的逻辑事务的多批逻辑事务数据合并为应用事务数据,确保应用事务和应用事务数据的完整性和准确性,以便后续基于应用事务和应用事务数据,实现对多个逻辑事务的处理,有利于提高对多个逻辑事务处理效率。
继续以步骤101中的第一项操作和第二项操作为例,由于第一项操作的事务编号和第二项操作的事务编号相同,因此,第一项操作和第二项操作的组合即为一个应用事务,后续在执行该应用事务后,即可实现将长时间间隔操作绑定到一个应用事务中,实现了对复杂业务逻辑的操作的高效处理;继续以步骤101中的第三项操作和第四项操作为例,同理,第三项操作和第四项操作的组合即为一个应用事务,后续在执行该应用事务后,即可实现将不同菜单操作绑定到一个应用事务中,实现了对复杂业务逻辑的操作的高效处理。
步骤102中所述根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据之后,还可以包括如下步骤107~109,具体如下:
107,创建文件数据库表和内存数据库表,其中,所述文件数据库表和内存数据库表的表结构保持一致;
108,将所述应用事务和所述应用事务的应用事务数据保存至所述内存数据库表中;
109,将所述内存数据库表定时同步至所述文件数据库表中。
其中,内存数据库表是指在内存(易失性存储,掉电后无信息保存)中的一种数据库的数据表,文件数据库表是指存储在非易失性存储(硬盘、磁盘)上的一种数据库的数据表,本实施例中的文件数据库表和内存数据库表的表结构一致。
具体地,可以分别创建表结构一致的文件数据库表和内存数据库表,将应用事务和应用事务的应用事务数据保存至内存数据库表中,将内存数据库表定时同步至文件数据库表中,由于内存数据库表是存储在内存中,不需要在硬盘上进行I/O操作,因此,提高了对应用事务数据的处理速度,使得客户端操作无需等待,且形成应用层的脏数据,且确保了客户端客户的操作无感知。
值得说明的是,内存数据库表的表结构创建在磁盘上,应用事务数据存放在内存数据库表中,在服务器启动时被初始化,在服务器停止时将内存数据库表中的应用事务数据缓存到文件数据库表中,以便在服务器下次启动时,能够读取其初始化的内存数据库表。服务器运行过程中,当内存数据库表中的应用事务数据更新时,更新后的应用事务数据也会缓冲到文件数据库表中,防止突然断电导致应用事务数据丢失,保障了应用事务数据的一致性。
在一具体实施方式中,步骤102中所述根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据之后,还可以包括如下步骤107’~108’,具体如下:
107’,创建文件数据库表和内存数据库表,其中,所述文件数据库表和内存数据库表的表结构保持一致;
108’,将所述应用事务和所述应用事务的应用事务数据保存至所述内存数据库表或所述文件数据库表中。
具体地,将应用事务和应用事务的应用事务数据保存至内存数据库表或文件数据库表中,在后续执行应用事务时,可以设置标记用于标识应用事务数据是保存至内存数据库表还是文件数据库表中。本实施例中,通过将应用事务和应用事务的应用事务数据保存至内存数据库表或文件数据库表中,以便后续基于内存数据库表或文件数据库表实现对应用事务的高效处理。
103,响应于针对所述应用事务的执行指令,调用数据库事务对所述应用事务数据进行事务处理,生成事务处理结果。
其中,数据库事务是指数据库应用层的事务,用于执行事务。执行指令是指客户端向服务器发送的用于执行应用事务的命令,事务处理结果是指执行应用事务生成的结果,例如,可以是执行一条SQL语句、一组SQL语句等生成的结果。
具体地,服务器调用数据库事务对应用事务数据进行事务处理,实现了对事务数据表中多个逻辑事务的处理,实现了应用层复杂事务的处理。可以理解地,采用本申请实施例,根据事务编号将多个逻辑事务合并为一个应用事务,实现了对多个逻辑事务的分析整理,完成了应用事务的创建,再调用数据库事务执行应用事务,处理机制简单,通过异步方式打包逻辑事务数据和处理逻辑事务,实现了对复杂的逻辑事务的处理,确保了客户端的用户无感知,提高了事务处理效率。
本实施例中,根据事务编号将多个逻辑事务合并为一个应用事务,实现了对多个逻辑事务的分析整理,完成了应用事务的创建,再调用数据库事务执行应用事务,处理机制简单,通过异步方式打包逻辑事务数据和处理逻辑事务,实现了对复杂的逻辑事务的处理,确保了客户端的用户无感知,提高了事务处理效率。
在一具体实施方式中,步骤103中所述调用数据库事务对所述应用事务数据进行事务处理,生成事务处理结果,可以包括如下步骤103A~103B,具体如下:
103A,将所述事务子编号作为所述应用事务中各批逻辑事务数据的执行优先级;
103B,调用所述数据库事务,按照各批所述逻辑事务数据的执行优先级,对所述应用事务数据中各批所述逻辑事务数据进行事务处理,生成所述事务处理结果。
具体地,将事务子编号作为应用事务中各批逻辑事务数据的执行优先级,按照各批逻辑事务数据的执行优先级,对应用事务数据中各批逻辑事务数据进行事务处理,保证了逻辑事务数据处理的有序性,进一步提高了事务处理效率。
在一具体实施方式中,步骤103中所述调用数据库事务对所述应用事务数据进行事务处理,生成事务处理结果,可以包括如下步骤103C~103D,具体如下:
103C,当所述事务处理为查询和/或***操作时,则在所述内存数据库表中对所述应用事务数据进行事务处理;
103D,当所述事务处理为删除和/或更新操作时,则在所述内存数据库表和所述文件数据库表中对所述应用事务数据进行事务处理。
具体地,当事务处理为查询和/或***操作时,则在内存数据库表中对应用事务数据进行事务处理,以加快应用事务数据的处理速度;当事务处理为删除和/或更新操作时,则在内存数据库表和文件数据库表中对应用事务数据进行事务处理,从而可以实现批量的应用事务数据的事务处理,进一步提高了事务处理效率。
本申请实施例提供一种事务处理***,应用上述实施例所述的方案进行事务处理,如图2所示,为事务处理***的架构图,事务处理***包括客户端1、服务端2、数据库3,其中客户端1包括数据展示模块11、数据输入输出模块12、第一通信模块13;服务端2包括第二通信模块21、事务接口模块22、事务明细数据表23、事务控制表24、事务监测模块25、事务执行结果表26、事务更新模块27、事务手动管理模块28;数据库3为嵌入式数据库,如sqlite,嵌入式数据库的事务处理能力相对较弱。
以更改数据的事务处理方法作为示例,其事务处理***的工作过程如下:某个用户使用客户端登录***后发起一个事务操作,首先在前台交互界面中输入需要更改的数据,数据输入输出模块12获取到用户输入的数据,将数据通过第一通信模块13发送到服务端2的第二通信模块21,第二通信模块21将接收到的数据转发给事务接口模块22,服务端2获取待处理的事务数据表,该事务数据表包括多个逻辑事务及各个逻辑事务对应的多批逻辑事务数据,事务接口模块22根据事务数据表中各个逻辑事务及各个逻辑事务对应的多批逻辑事务数据的数据包大小,对多个逻辑事务及各个逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据,将应用事务及应用事务对应的应用事务数据自动分批存入事务明细数据表23和事务控制表24中,以便后续基于事务明细数据表23和事务控制表24对应用事务及应用事务对应的应用事务数据进行进一步处理。每个逻辑事务配置有事务编号,事务编号用于区分逻辑事务实现的功能,其中的事务明细数据表23、事务控制表24、事务执行结果表26可以是服务端内存中创建的表,事务明细数据表23包括“事务编号”、“事务子编号”、“数据顺序号”、“数据长度”、“事务数据”五个字段。“事务编号”是每个应用事务都有一个唯一的编号,“事务子编号”用于区分每批应用事务数据;“数据顺序号”用于区分每批逻辑事务数据的顺序,“数据长度”用于表明一批逻辑事务数据的数据长度,“事务数据”是一批逻辑事务数据中的具体的数据。
响应于针对应用事务的执行指令,在一个示例中,当一批逻辑事务数据以整体写入完毕后,可以通过写入一条特殊的数据到事务明细数据表23中,以表明该应用事务可以启动操作,即响应针对应用事务的执行指令。例如写入一条除了“事务编号”外,其他字段值都是“111”的记录到事务明细数据表23中,用于响应于对应用事务的执行指令。事务控制表24包含“事务编号”、“用户名”、“是否重启”、“重启次数”、“结束标志”五个字段,“事务编号”字段和事务明细数据表23中的“事务编号”字段保持对应,“用户名”字段表明该应用事务是哪个用户发起的,“是否重启”字段说明在该应用事务执行失败时是否再尝试执行,“重启次数”字段用于指定尝试重启的次数,“结束标志”说明该应用事务是否可以开始执行。事务执行结果表26包括“事务编号”、“执行结果”和“日志信息”三个字段。“执行结果”字段表明该事务是执行成功还是失败,如果值是0表明该事务执行成功,如果是1则表明该事务执行失败,执行失败时,“日志信息”字段中写入的是具体的报错信息,本实施例中的事务执行结果表用于存储事务处理结果。
调用数据库事务对应用事务数据进行事务处理,生成事务处理结果,事务监测模块25是服务端2的一个守护进程,用于监测和判断事务控制表24中的某个事务是否可以启动,如果可以启动,则从事务明细数据表23提取事务的详细数据,提交到事务更新模块27,事务更新模块27则连接到数据库3,启动一个数据库层的事务执行,并将数据库3的事务处理结果返回给事务监测模块25,事务监测模块25收到返回结果时将执行结果更新到事务执行结果表26。服务端2通过数据库事务对应用事务数据进行事务处理,生成事务处理结果,可以将生成的事务处理结果存储在事务执行结果表26中。
事务手动管理模块28提供了对逻辑事务的管理界面,以及手动重启功能。设置了可以重启的逻辑事务,可以通过该模块手动重启,该事务手动管理模块28通过通知事务监测模块25重新开始一次对逻辑事务的处理方案的执行过程。
为了更好实现本申请实施例中事务处理方法,在事务处理方法基础之上,本申请实施例中还提供一种事务处理装置,如图3所示,所述事务处理装置200包括:
获取模块201,用于获取待处理的事务数据表,所述事务数据表包括多个逻辑事务及各个所述逻辑事务对应的多批逻辑事务数据,且每个所述逻辑事务配置有事务编号,所述事务编号用于区分所述逻辑事务实现的功能;
打包模块202,用于根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据;
处理模块203,用于响应于针对所述应用事务的执行指令,调用数据库事务对所述应用事务数据进行事务处理,生成事务处理结果。
在本申请一些实施例中,所述事务处理装置还包括:
第一保存模块,用于当接收到一个功能的多批逻辑事务数据时,将多批所述逻辑事务数据保存在一个逻辑事务中;
第一编号模块,用于获取多个所述逻辑事务,根据功能的异同,对所述逻辑事务进行编号,得到所述事务编号;
第二编号模块,用于根据多批所述逻辑事务数据的写入顺序,对每批逻辑事务数据进行顺序编号,得到事务子编号。
在本申请一些实施例中,所述打包模块202具体用于:将相同的事务编号对应的逻辑事务合并为一个所述应用事务;将相同的事务编号对应的逻辑事务的多批所述逻辑事务数据确定为所述应用事务数据。
在本申请一些实施例中,处理模块203具体用于:将所述事务子编号作为所述应用事务中各批逻辑事务数据的执行优先级;调用所述数据库事务,按照各批所述逻辑事务数据的执行优先级,对所述应用事务数据中各批所述逻辑事务数据进行事务处理,生成所述事务处理结果。
在本申请一些实施例中,所述事务处理装置还包括:
创建模块,用于创建文件数据库表和内存数据库表,其中,所述文件数据库表和内存数据库表的表结构保持一致;
第二保存模块,用于将所述应用事务和所述应用事务的应用事务数据保存至所述内存数据库表中;
同步模块,用于将所述内存数据库表定时同步至所述文件数据库表中。
在本申请一些实施例中,所述事务处理装置还包括:第三保存模块,用于将所述应用事务和所述应用事务的应用事务数据保存至所述内存数据库表或所述文件数据库表中。
在本申请一些实施例中,处理模块203具体还用于:当所述事务处理为查询和/或***操作时,则在所述内存数据库表中对所述应用事务数据进行事务处理;当所述事务处理为删除和/或更新操作时,则在所述内存数据库表和所述文件数据库表中对所述应用事务数据进行事务处理。
本申请实施例还提供一种计算机设备,其集成了本申请实施例所提供的任一种事务处理装置,所述计算机设备包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行上述事务处理方法实施例中任一实施例中所述的事务处理方法中的步骤。
本申请实施例还提供一种计算机设备,其集成了本申请实施例所提供的任一种事务处理装置。如图4所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器301、一个或一个以上计算机可读存储介质的存储器302、电源303和输入单元304等部件。本领域技术人员可以理解,图4中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器301是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器302内的软件程序和/或模块,以及调用存储在存储器302内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器301可包括一个或多个处理核心;优选的,处理器301可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器301中。
存储器302可用于存储软件程序以及模块,处理器301通过运行存储在存储器302的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器302可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器302还可以包括存储器控制器,以提供处理器301对存储器302的访问。
计算机设备还包括给各个部件供电的电源303,优选的,电源303可以通过电源管理***与处理器301逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源303还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组间。
该计算机设备还可包括输入单元304,该输入单元304可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器301会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器302中,并由处理器301来运行存储在存储器302中的应用程序,从而实现各种功能,如下:
获取待处理的事务数据表,所述事务数据表包括多个逻辑事务及各个所述逻辑事务对应的多批逻辑事务数据,且每个所述逻辑事务配置有事务编号,所述事务编号用于区分所述逻辑事务实现的功能;
根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据;
响应于针对所述应用事务的执行指令,调用数据库事务对所述应用事务数据进行事务处理,生成事务处理结果。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行本申请实施例所提供的任一种事务处理方法中的步骤。例如,所述计算机程序被处理器进行加载可以执行如下步骤:
获取待处理的事务数据表,所述事务数据表包括多个逻辑事务及各个所述逻辑事务对应的多批逻辑事务数据,且每个所述逻辑事务配置有事务编号,所述事务编号用于区分所述逻辑事务实现的功能;
根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据;
响应于针对所述应用事务的执行指令,调用数据库事务对所述应用事务数据进行事务处理,生成事务处理结果。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。
具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的方法实施例,在此不再赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种事务处理方法、装置及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种事务处理方法,其特征在于,包括:
获取待处理的事务数据表,所述事务数据表包括多个逻辑事务及各个所述逻辑事务对应的多批逻辑事务数据,且每个所述逻辑事务配置有事务编号,所述事务编号用于区分所述逻辑事务实现的功能;
根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据;
响应于针对所述应用事务的执行指令,调用数据库事务对所述应用事务数据进行事务处理,生成事务处理结果。
2.根据权利要求1所述的事务处理方法,其特征在于,在所述获取待处理的事务数据表之前,还包括:
当接收到一个功能的多批逻辑事务数据时,将多批所述逻辑事务数据保存在一个逻辑事务中;
获取多个所述逻辑事务,根据功能的异同,对所述逻辑事务进行编号,得到所述事务编号;
根据每批所述逻辑事务数据的写入顺序,对每批所述逻辑事务数据进行顺序编号,得到事务子编号。
3.根据权利要求2所述的事务处理方法,其特征在于,所述根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据,包括:
将相同的事务编号对应的逻辑事务合并为一个所述应用事务;
将相同的事务编号对应的逻辑事务的多批所述逻辑事务数据合并为所述应用事务数据。
4.根据权利要求3所述的事务处理方法,其特征在于,所述调用数据库事务对所述应用事务数据进行事务处理,生成事务处理结果,包括:
将所述事务子编号作为所述应用事务中各批逻辑事务数据的执行优先级;
调用所述数据库事务,按照各批所述逻辑事务数据的执行优先级,对所述应用事务数据中各批所述逻辑事务数据进行事务处理,生成所述事务处理结果。
5.根据权利要求1所述的事务处理方法,其特征在于,在所述根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据之后,还包括:
创建文件数据库表和内存数据库表,其中,所述文件数据库表和内存数据库表的表结构保持一致;
将所述应用事务和所述应用事务的应用事务数据保存至所述内存数据库表中;
将所述内存数据库表定时同步至所述文件数据库表中。
6.根据权利要求1所述的事务处理方法,其特征在于,在所述根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据之后,还包括:
创建文件数据库表和内存数据库表,其中,所述文件数据库表和内存数据库表的表结构保持一致;
将所述应用事务和所述应用事务的应用事务数据保存至所述内存数据库表或所述文件数据库表中。
7.根据权利要求5所述的事务处理方法,其特征在于,所述调用数据库事务对所述应用事务数据进行事务处理,生成事务处理结果,包括:
当所述事务处理为查询和/或***操作时,则在所述内存数据库表中对所述应用事务数据进行事务处理;
当所述事务处理为删除和/或更新操作时,则在所述内存数据库表和所述文件数据库表中对所述应用事务数据进行事务处理。
8.一种事务处理装置,其特征在于,包括:
获取模块,用于获取待处理的事务数据表,所述事务数据表包括多个逻辑事务及各个所述逻辑事务对应的多批逻辑事务数据,且每个所述逻辑事务配置有事务编号,所述事务编号用于区分所述逻辑事务实现的功能;
打包模块,用于根据所述事务编号,对各个所述逻辑事务以及各个所述逻辑事务对应的多批逻辑事务数据分别进行打包处理,得到应用事务及应用事务对应的应用事务数据;
处理模块,用于响应于针对所述应用事务的执行指令,调用数据库事务对所述应用事务数据进行事务处理,生成事务处理结果。
9.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器;以及一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现权利要求1至7中任一项所述的事务处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器进行加载,以执行权利要求1至7中任一项所述的事务处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311212791.XA CN117453698A (zh) | 2023-09-19 | 2023-09-19 | 事务处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311212791.XA CN117453698A (zh) | 2023-09-19 | 2023-09-19 | 事务处理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117453698A true CN117453698A (zh) | 2024-01-26 |
Family
ID=89593687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311212791.XA Pending CN117453698A (zh) | 2023-09-19 | 2023-09-19 | 事务处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117453698A (zh) |
-
2023
- 2023-09-19 CN CN202311212791.XA patent/CN117453698A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107105009B (zh) | 基于Kubernetes***对接工作流引擎的作业调度方法和装置 | |
CN110442560B (zh) | 一种日志重演方法、装置、服务器和存储介质 | |
US20160260040A1 (en) | Computer Device, Method, and Apparatus for Scheduling Business Flow | |
CN110309161B (zh) | 一种数据同步方法、装置及服务器 | |
CN113157411B (zh) | 一种基于Celery的可靠可配置任务***及装置 | |
WO2020232951A1 (zh) | 一种任务执行方法及装置 | |
EP4170509A1 (en) | Method for playing back log on data node, data node, and system | |
CN111930489A (zh) | 一种任务调度方法、装置、设备及存储介质 | |
CN112000649B (zh) | 一种基于map reduce的增量数据同步的方法和装置 | |
CN112416654A (zh) | 一种数据库日志重演方法、装置、设备及存储介质 | |
EP2606424A2 (en) | System and method for execution of high performance computing applications | |
CN113238815A (zh) | 一种接口访问控制方法、装置、设备及存储介质 | |
CN111858626B (zh) | 一种基于并行执行的数据同步的方法和装置 | |
CN117453698A (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
CN112527497B (zh) | 一种序列化多线程数据处理*** | |
CN113342511A (zh) | 一种分布式任务管理***及方法 | |
CN109241027B (zh) | 数据迁移的方法、装置、电子设备及计算机可读存储介质 | |
CN112115118A (zh) | 数据库压测的优化方法及装置、存储介质、电子设备 | |
CN110908821A (zh) | 任务失败管理的方法、装置、设备和存储介质 | |
CN114510490B (zh) | 提升数据库数据***性能的方法和装置 | |
CN114020357B (zh) | namenode节点的启动方法、装置、***及介质 | |
US20230128133A1 (en) | Distributed smart lock system | |
CN114090626A (zh) | 一种获取数据库数据的方法及装置 | |
WO2024051738A1 (zh) | 数据写入方法、装置、电子设备及存储介质 | |
CN107491347A (zh) | 一种用于虚拟机热迁移的方法与设备 |
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 |