CN111858641A - 事务处理方法、装置、电子设备和可读存储介质 - Google Patents
事务处理方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN111858641A CN111858641A CN202010754769.8A CN202010754769A CN111858641A CN 111858641 A CN111858641 A CN 111858641A CN 202010754769 A CN202010754769 A CN 202010754769A CN 111858641 A CN111858641 A CN 111858641A
- Authority
- CN
- China
- Prior art keywords
- transaction
- operations
- processing
- processing mode
- session
- 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
Images
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/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种事务处理方法,包括:接收目标事务包含的M个操作的操作请求,操作请求包括事务类型,其中,事务类型包括第一类事务和第二类事务;从预设的N个事务处理模式中确定与事务类型匹配的目标处理模式,N个事务处理模式包括与第一类事务匹配的第一处理模式和与第二类事务匹配的第二处理模式;基于目标处理模式和操作请求,执行M个操作,其中,在第一处理模式下,M个操作基于与数据库的同一连接和会话执行;在第二处理模式下,M个操作各自基于与相应数据库的独立连接和会话执行。本公开还提供了一种事务处理装置、一种电子设备和一种计算机可读存储介质。事务处理方法和装置可用于金融领域或其他领域。
Description
技术领域
本公开涉及分布式技术领域,更具体地,涉及事务处理方法、事务处理装置、电子设备和计算机可读存储介质。
背景技术
随着互联网和计算机技术的快速发展,事务处理越来越频繁,事务是指访问并可能更新数据库中的各种数据项的程序执行单元,每个事务可能涉及多种操作。传统的事务处理方式在数据库性能和处理能力上都暴露出了瓶颈,为了提高事务处理的能力,柔性事务被提出,柔性事务与刚性事务相对,柔性事务的特性包括:基本可用、柔性状态、最终一致性。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:
不同场景下对事务的要求不同,例如在一些场景中对事务的一致性和时效性要求较高,而在一些复杂场景中仅需达到事务的最终一致性即可。目前分布式系统实现柔性事务的方式大多是各自实现,大致分为几种常用模式:异步确保型、最大努力通知型、补偿型、两阶段型。其中,异步确保型和最大努力通知型可实现最终一致性,对于要求时效较高的业务系统并不适用;补偿型相比之下数据一致性要好一些,但是对应用的侵入性比较强;两阶段型可以保证事务一致,但效率牺牲较大,对高并发系统不适用。并且,这几种柔性事务模式均不能满足多种场景的不同需求。
发明内容
有鉴于此,本公开提供了一种事务处理方法、一种事务处理装置、一种电子设备和一种计算机可读存储介质。
本公开的一个方面提供了一种事务处理方法,包括:接收目标事务包含的M个操作的操作请求,所述操作请求包括事务类型,其中,所述事务类型包括第一类事务和第二类事务,M为大于等于2的整数;从预设的N个事务处理模式中确定与所述事务类型匹配的目标处理模式,所述N个事务处理模式包括与所述第一类事务匹配的第一处理模式和与所述第二类事务匹配的第二处理模式,N为大于等于2的整数;以及基于所述目标处理模式和所述操作请求,执行所述M个操作,其中,在所述第一处理模式下,所述M个操作基于与数据库的同一连接和会话执行;在所述第二处理模式下,所述M个操作各自基于与相应数据库的独立连接和会话执行。
根据本公开的实施例,在所述M个操作涉及同一数据库的情况下,所述目标事务属于第一类事务;在所述M个操作涉及至少两个数据库的情况下,所述目标事务属于第二类事务。
根据本公开的实施例,所述基于所述目标处理模式和所述操作请求,执行所述M个操作包括:
在第二处理模式下,若所述M个操作中的一个操作执行异常,对所述M个操作中已执行的操作进行回滚处理。
根据本公开的实施例,在所述目标事务属于第二类事务的情况下,所述操作请求还包括事务标识信息、数据库标识信息和执行语句。所述基于所述目标处理模式和所述操作请求,执行所述M个操作包括:在所述第二处理模式下,记录所述事务标识信息、所述数据库标识信息和所述执行语句;对所述执行语句进行反向转换处理,得到反向执行语句并记录所述反向执行语句;若所述M个操作中的一个操作执行异常,基于所述反向执行语句对所述M个操作中已执行的操作进行回滚处理。
根据本公开的实施例,所述接收目标事务包含的M个操作的操作请求包括:从M个应用端接收所述M个操作的操作请求,其中,每个操作对应一个应用端。
根据本公开的实施例,所述M个应用端包括第一应用端和第二应用端,所述第一应用端与第一操作相对应,所述第二应用端与第二操作相对应。所述基于所述目标处理模式和所述操作请求,执行所述M个操作包括:在所述第一处理模式下,基于所述第一操作的操作请求获取与数据库的连接并创建与数据库的会话;将所述连接的连接标识信息和所述会话的会话标识信息发送至所述第一应用端,以使所述第一应用端将所述连接标识信息和所述会话标识信息与所述第二应用端共享,所述第二操作包含所述连接标识信息和所述会话标识信息。
根据本公开的实施例,在所述目标事务属于第一类事务的情况下,所述操作请求包括:获取连接、创建会话、执行语句、生效指令、回滚指令、关闭会话和释放连接中的至少一种。
根据本公开的实施例,所述基于所述目标处理模式和所述操作请求,执行所述M个操作还包括:在所述回滚处理失败的情况下,重复执行预设次数的回滚处理直至回滚成功;若重复执行预设次数的回滚处理后仍然失败,将回滚结果记录为失败。
本公开的另一方面提供了一种事务处理装置,包括:接收模块,用于接收目标事务包含的M个操作的操作请求,所述操作请求包括事务类型,其中,在所述M个操作涉及同一数据库的情况下所述目标事务属于第一类事务;在所述M个操作涉及至少两个数据库的情况下所述目标事务属于第二类事务,M为大于等于2的整数;匹配模块,用于从预设的N个事务处理模式中确定与所述事务类型匹配的目标处理模式,所述N个事务处理模式包括与所述第一类事务匹配的第一处理模式和与所述第二类事务匹配的第二处理模式,N为大于等于2的整数;以及处理模块,用于基于所述目标处理模式和所述操作请求,执行所述M个操作,其中,在所述第一处理模式下,所述M个操作基于与数据库的同一连接和会话执行;在所述第二处理模式下,所述M个操作各自基于与相应数据库的独立连接和会话执行。
本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,可以根据不同的系统技术架构和业务场景适配不同的事务处理模式,更具灵活性,能够适应各种技术架构和业务场景的特点。并且,在第一种处理模式下,可以保证分布式系统在特定场景下的事务强一致性以及较高的时效性;在第二种处理模式下,可以实现了多数据库等复杂场景下的事务最终一致性,对业务逻辑无侵入,能够实现与应用侧完全耦合,且同时支持高并发场景。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用事务处理方法的示例性系统架构;
图2示意性示出了根据本公开实施例的事务处理方法的流程图;
图3示意性示出了根据本公开实施例的适用于第一处理模式的系统架构图;
图4示意性示出了根据本公开实施例的适用于第二处理模式的系统架构图;
图5示意性示出了根据本公开实施例的事务处理装置的框图;以及
图6示意性示出了根据本公开实施例的适于实现事务处理方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
本公开的实施例提供了一种事务处理方法,该事务处理方法包括:接收目标事务包含的M个操作的操作请求,操作请求包括事务类型,其中,事务类型包括第一类事务和第二类事务,M为大于等于2的整数。从预设的N个事务处理模式中确定与事务类型匹配的目标处理模式,N个事务处理模式包括与第一类事务匹配的第一处理模式和与第二类事务匹配的第二处理模式,N为大于等于2的整数。基于目标处理模式和操作请求,执行M个操作,其中,在第一处理模式下,M个操作基于与数据库的同一连接和会话执行;在第二处理模式下,M个操作各自基于与相应数据库的独立连接和会话执行。
图1示意性示出了根据本公开实施例的可以应用事务处理方法的示例性系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构可以包括应用端集合101、事务处理设备102和数据库集合103,其中,应用端集合101可以包括多个应用端(应用1、应用2、应用3、…、应用A),每个应用端例如可以用于实现一种操作,数据库集合103可以包括多个数据库(数据库1、数据库2、数据库3、…、数据库B),数据库的类型例如可以是DB(Database)数据库。
事务处理设备102例如可以通过服务器实现,事务处理设备102可以包括接收模块、第一处理模块、第二处理模块和连接模块等。应用端可以将操作请求发送至事务处理设备102的接收模块。接收模块根据事务类型将请求发送至第一处理模块或者第二处理模块,第一处理模块例如可以提供第一处理模式,第二处理模块例如可以提供第二处理模式。第一处理模块和第二处理模块可以通过连接模块与数据库相连接,以实现对数据库的相应操作。连接模块例如可以是数据库连接池,例如可以是JDBC(Java Database Connectivity)数据库连接池,可以支持各种类型的数据库产品,连接池可以缓存与多个数据库的连接,在各个事务处理模块需要连接数据库时,可以直接从连接池中获取与相应数据库的连接。
作为一种应用场景,事务例如可以是汇款交易事务,该事务可以涉及三个应用,例如涉及汇款应用、余额应用和限额应用,汇款应用可以负责将钱款汇付给收款方,余额应用可以负责将相应钱款从账户中扣除,限额应用可以负责降低账户的汇款额度。在用户执行汇款操作后,汇款应用、余额应用和限额应用可以依次向事务处理设备102发送操作请求,接收模块可以根据操作请求包含的事务类型将操作请求分配至第一处理模块或者第二处理模块。在第一处理模块中,该三个应用的操作均基于与同一数据库的同一连接和同一会话中执行,在操作生效后,汇款、余额扣除和额度降低的结果一同实现,多个应用节点中数据的值是一致的,实现了分布式系统特定场景下的事务强一致性和时效性。在第二处理模块中,该三个应用的操作各自基于与相应数据库的独立连接和会话执行,三个操作各自执行,每个操作均与数据库进行一次连接和会话,最终能够实现汇款、余额扣除和额度降低的结果,实现事务最终一致性,并且对业务逻辑无侵入,实现与应用侧完全耦合,同时支持高并发场景。并且,通过提供至少两种事务处理模式,根据不同系统技术架构和业务场景适配不同的事务处理模式,更具灵活性,能够适应各种技术架构和业务场景的特点。
需要说明的是,本公开实施例所提供的事务处理方法一般可以由事务处理设备102执行。相应地,本公开实施例所提供的事务处理装置一般可以设置于事务处理设备102中。
应该理解,图1中的应用端、事务处理设备和数据库的数目仅仅是示意性的。根据实现需要,可以具有任意数目的应用端、事务处理设备和数据库。并且,上述应用场景仅是一种示例,该任务处理方法除了可以应用于汇款交易事务以外,还可以用于其他类型的事务场景中。
需要说明的是,本公开实施例的事务处理方法和装置可用于处理金融领域的事务,也可用于处理除金融领域之外的任意领域的事务,本公开实施例的事务处理方法和装置的应用领域不做限定。
图2示意性示出了根据本公开实施例的事务处理方法的流程图。
如图2所示,该方法包括操作S210~S230。
在操作S210,接收目标事务包含的M个操作的操作请求,操作请求包括事务类型,其中,事务类型包括第一类事务和第二类事务,M为大于等于2的整数。
例如,事务类型可以按照事务的业务种类或者事务涉及的服务器数量进行分类,或者可以由用户根据其他需求自行设定。不同的业务种类的要求不同,例如可以将对时效性和一致性要求不同的业务归为不同的事务类型,例如将对时效性和一致性要求较高的业务划分为第一类事务,将对时效性和一致性要求不高、只要能保证在一定时间内达到一致的业务划分为第二类事务。
对于按照事务涉及的服务器数量进行分类的实施例中,在M个操作涉及同一数据库的情况下,目标事务可以属于第一类事务。在M个操作涉及至少两个数据库的情况下,目标事务可以属于第二类事务。
例如,对于将一个整体应用纵向分割为多个应用的情况,多个应用虽然负责不同的操作,但是仍然共享一个数据库,多个应用的操作也仅针对同一个数据库执行,这种情况下,若事务涉及的应用均共享一个数据库,也即事务涉及的应用操作均对同一个数据库执行,可以将这类事务划分为第一类事务。在另一种情况下,若事务涉及的多个应用对应的数据库不同,事务包含的操作需要对至少两个数据库执行,可以将这类事务划分为第二类事务。
根据本公开的实施例,接收目标事务包含的M个操作的操作请求可以包括:从M个应用端接收M个操作的操作请求,其中,每个操作对应一个应用端。例如,目标事务可以包含三种操作:第一操作、第二操作和第三操作,第一操作的操作请求例如是由第一应用端发送,第二操作的操作请求例如是由第二应用端发送,第三操作的操作请求例如是由第三应用端发送。
在操作S220,从预设的N个事务处理模式中确定与事务类型匹配的目标处理模式,N个事务处理模式包括与第一类事务匹配的第一处理模式和与第二类事务匹配的第二处理模式,N为大于等于2的整数。
例如,从预设的N个事务处理模式中确定出一种与事务类型匹配的事务处理模式作为目标处理模式。参照图1,第一处理模块例如可以负责实现第一处理模式,第二处理模块例如可以负责实现第二处理模式,接收模块在接收到应用端发送的每个操作请求后,可以先从操作请求中分解出事务类型,然后根据事务类型将操作请求分配至第一处理模块或者第二处理模块。例如将第一类事务分配至第一处理模块,将第二类事务分配至第二处理模块。在本公开其他实施例中,用户可以根据需要设定第三种或更多种事务处理模式。
在操作S230,基于目标处理模式和操作请求,执行M个操作,其中,在第一处理模式下,M个操作基于与数据库的同一连接和会话执行;在第二处理模式下,M个操作各自基于与相应数据库的独立连接和会话执行。
根据本公开的实施例,在第一处理模式下,事务涉及的全部操作均基于与数据库的同一连接和会话执行。第一操作例如最先发送操作请求,则第一操作的操作请求不仅包括事务类型还可以包括与数据库的连接请求和会话请求,第一处理模块可以根据请求获得与相应数据库的连接并创建会话,第一应用端可以将连接和会话的标识信息共享给第二应用端和第三应用端。第二应用端和第三应用端发送的请求不仅包括事务类型还可以包括连接和会话的标识信息,第二应用端和第三应用端发送的请求由接收模块分配至第一处理模块之后,可以基于连接和会话的标识信息与同一数据库进行连接和会话,基于这一方案,第一应用端、第二应用端和第三应用端想要对数据库执行的操作均可以在同一连接和同一会话中执行完毕。
根据本公开的实施例,在第二处理模式下,事务包含的各个操作基于与相应数据库的独立连接和会话执行。例如,事务涉及第一操作、第二操作和第三操作,第一操作例如是由第一应用端执行,第二操作例如是由第二应用端执行,第三操作例如是由第三应用端执行。第一操作、第二操作和第三操作可以单独发送各自的请求,每个操作请求均包含事务类型,可以由接收模块分配至第二处理模块,第二处理模块可以按照请求接收的顺序,依次执行各个操作,每个操作均需要各自建立与数据库的连接和会话,各个操作之间互不影响和干扰。
根据本公开的实施例,可以根据不同的系统技术架构和业务场景适配不同的事务处理模式,更具灵活性,能够适应各种技术架构和业务场景的特点。并且,在第一种处理模式下,可以保证分布式系统在特定场景下的事务强一致性以及较高的时效性;在第二种处理模式下,可以实现了多数据库等复杂场景下的事务最终一致性,对业务逻辑无侵入,能够实现与应用侧完全耦合,且同时支持高并发场景。
根据本公开的实施例,基于目标处理模式和操作请求,执行M个操作可以包括:在第二处理模式下,若M个操作中的一个操作执行异常,对M个操作中已执行的操作进行回滚处理。
例如,M个操作包括第一操作、第二操作和第三操作,在第二处理模式中,若其中的第一操作和第二操作均已执行完毕,但是在执行第三操作的过程中出现异常,则需要回溯已执行的第一操作和第二操作,使整个事务回退至未开始的状态,可以避免事务被错误处理。
以下内容中以基于事务涉及的数据库数量进行分类为例,对第一处理模式和第二处理模式进行详细描述。
图3示意性示出了根据本公开实施例的适用于第一处理模式的系统架构图。
如图3所示,根据本公开的实施例,M个应用端可以包括第一应用端311和第二应用端312,第一应用端311与第一操作相对应,第二应用端312与第二操作相对应。
例如,第一应用端311和第二应用端312可以共享第一数据库331。每个应用端均可以部署有数据源(DateSource),数据源可以实现为标准JDBC接口的DataSource,可以适配任何使用JDBC协议的应用,应用端可以通过数据源将操作请求发送至事务处理设备320,应用端可以使用标准SQL进行开发。例如,第一应用端311可以将第一操作的操作请求通过其数据源发送至事务处理设备320的接收模块321,第二应用端312可以将第二操作的操作请求通过其数据源发送至接收模块321。事务处理设备320还可以包括第一处理模块322、第二处理模块323和连接模块331。
根据本公开的实施例,在目标事务属于第一类事务的情况下,操作请求可以包括:获取连接、创建会话、执行语句、生效指令、回滚指令、关闭会话和释放连接中的至少一种。
例如,在目标事务属于第一类事务的情况下,每个操作请求可以包括多个请求报文,应用端一次可以发送一个报文请求,每个报文请求可以包括获取连接、创建会话、执行语句、生效指令、回滚指令、关闭会话和释放连接中的一种子操作。因此,每个操作请求可以分为多次发送。其中,每个报文请求的内容可以包含以下内容:(1)~(6)
(1)数据库id:指定本次操作要连接的数据库的标识信息;
(2)连接id:数据库连接唯一编号;
(3)会话id:会话唯一编号;
(4)事务类型;
(5)子操作类型:获取连接、释放连接、创建会话、关闭会话、生效指令(commit)、回滚指令(rollback)、查询、更新等子操作中的一种;
(6)SQL:具体的SQL语句。
根据本公开的实施例,接收模块可以负责接收各个应用数据源发送的请求报文并转发至第一处理模块或第二处理模块。接收模块例如可以包括两个处理单元:连接管理单元和适配处理单元。连接管理单元主要作用是接收数据源发送的连接请求,与应用端的数据源建立长连接,连接建立后监听数据源发送的报文并按照如上格式进行解析,解析后将各个字段传递给适配处理单元;适配处理单元可以根据事务类型选择不同的事务处理模块并将报文转发至对应的事务处理模块进行后续处理。
根据数据源发送的不同的子操作类型,第一处理模块的处理流程可以包括如下流程(a)~(f):
(a)获取连接:解析得到的子操作类型为获取连接的情况下,根据数据库id,从连接池中获取与相应数据库的连接,以数据库id+连接id作为新的连接id,并以连接id作为key、以连接实体作为value进行存储,同时返回连接id给相应应用端的数据源,数据源接收到连接id后可以进行保存,其中,连接实体是与相应数据库保持连接的实体,基于该实体可以与相应数据库连接。
(b)创建会话:解析得到的子操作类型为创建会话情况下,根据连接id,从之前保存的key-value记录中获取连接id对应的连接实体,在当前与数据库的连接中创建新会话,以数据库id+连接id+会话id作为新会话id,并以会话id作为key、以会话实体作为value进行存储,同时返回会话id给应用端的数据源,数据源接收到会话id后进行保存,其中,会话实体是与相应数据库保持会话的实体,基于该实体可以与相应数据库进行会话。
(c)执行SQL:SQL语句对应的子操作可以是查询数据或者更新数据等,在解析得到的子操作类型为查询、更新的情况下,可以根据会话id,从之前保存的key-value记录中获取会话id对应的会话实体,使用当前会话执行SQL命令并返回结果。
(d)生效指令或回滚指令:解析得到的子操作类型为生效指令(commit)或者回滚指令(rollback)的情况下,可以根据连接id获取连接id对应的连接实体,在与数据库的连接中,执行生效指令或回滚指令,并返回结果。其中,在执行以上查询数据或者更新数据等SQL操作之后可以在数据库中先不生效,然后数据库在接收到生效指令后,再使相应操作生效。回滚指令可以用于将已执行的操作进行回滚。
(e)关闭会话:解析得到的子操作类型为关闭会话的情况下,可恶意根据会话id,获取会话id对应的会话实体,关闭会话并返回结果。
(f)释放连接:解析得到的子操作类型为释放连接的情况下,根据连接id,获取连接id对应的连接实体,连接归还至连接池并返回结果。
根据本公开的实施例,操作S330中的基于目标处理模式和操作请求,执行M个操作可以包括:(1)在第一处理模式下,基于第一操作的操作请求获取与数据库的连接并创建与数据库的会话;(2)将连接的连接标识信息和会话的会话标识信息发送至第一应用端,以使第一应用端将连接标识信息和会话标识信息与第二应用端共享,第二操作包含连接标识信息和会话标识信息。
例如,目标事务为第一类事务且目标事务包含两种操作:第一操作和第二操作。参见图3所示,第一操作的操作请求例如是由第一应用端发送至接收模块,第二操作的操作请求例如是由第二应用端发送至接收模块。在第一操作早于第二操作的情况下,第一应用端可以先将第一操作的操作请求发送至接收模块,第一操作可以分为多个报文请求发送。第一应用端可以先发送“获取连接”的报文请求,第一处理模块接收到报文请求时,可以基于以上“获取连接”的流程(a)获得与第一数据库的连接,并将连接id返给第一应用端。然后,第一应用端可以发送“创建会话”的报文请求,第一处理模块接收到报文请求时,可以基于以上“创建会话”的流程(b)创建与第一数据库的会话,并将会话id返给第一应用端。然后,第一应用端可以将连接id和会话id共享给第二应用端,同时,第一应用端可以继续向接收模块发送“执行SQL”的报文请求,以使第一处理模块基于以上“执行SQL”的流程(c)对第一数据库进行读取数据或者更新数据等第一应用端需要执行的操作。第二应用端获得连接id和会话id后,可以根据连接id和会话id直接向接收模块发送“执行SQL”的报文请求,无需再建立与第一数据库的连接和会话,第一处理模块接收到第二应用端发送的“执行SQL”的报文请求后,可以基于以上“执行SQL”的流程(c)对第一数据库进行读取数据或者更新数据等第二应用端需要执行的操作。
然后,在第一应用端和第二应用端的“执行SQL”报文请求均被执行之后,第一应用端可以向接收模块发送“生效指令”或者“回滚操作”的报文请求,以使第一处理模块基于以上“生效指令”或者“回滚操作”的流程(d)对报文请求进行处理。之后,可以依次向接收模块发送“关闭会话”和“释放连接”的报文请求,以使第一处理模块基于以上流程(e)和(f)关闭与第一数据库的会话和连接。
根据本公开的实施例,第一处理模式可以针对多个应用共享同一数据库模式下对事务强一致性的保障机制,事务内的所有操作均基于同一数据库物理连接和会话实现,可以有效保证事务整体提交或回滚。
图4示意性示出了根据本公开实施例的适用于第二处理模式的系统架构图。
如图4所示,M个应用端可以包括第一应用端411、第二应用端412和第三应用端413,其中,第一应用端411发送第一操作、第二应用端412发送第二操作、第三应用端413发送第三操作。第一操作、第二操作和第三操作涉及三个数据库,第一操作例如涉及第一数据库431、第二操作例如涉及第二数据库432、第三操作例如涉及第三数据库433。事务处理设备420包括接收模块421、第一处理模块422、第二处理模块423、对账模块425和连接模块424。
根据本公开的实施例,在目标事务属于第二类事务的情况下,操作请求还包括事务标识信息、数据库标识信息和执行语句。
根据本公开的实施例,基于目标处理模式和操作请求,执行M个操作可以包括:在第二处理模式下,记录事务标识信息、数据库标识信息和执行语句;对执行语句进行反向转换处理,得到反向执行语句并记录反向执行语句;若M个操作中的一个操作执行异常,基于反向执行语句对M个操作中已执行的操作进行回滚处理。
根据本公开的实施例,基于目标处理模式和操作请求,执行M个操作还包括:在回滚处理失败的情况下,重复执行预设次数的回滚处理直至回滚成功;若重复执行预设次数的回滚处理后仍然失败,将回滚结果记录为失败。
下面根据一次处理过程(1)~(5)描述本公开实施例的第二处理模式下的操作执行流程和回滚流程:
(1)由发起应用端(例如第一应用端)的数据源生成全局事务id=x1,并向其他应用端(第二应用端和第三应用端)传递,三个分布式应用的数据源依次执行SQL1、SQL2、SQL3操作,SQL1、SQL2、SQL3操作分别针对第一数据库431、第二数据库432、第三数据库433执行。具体地,第一应用端411、第一应用端412和第三应用端413可以分别生成第一操作请求、第二操作请求和第三操作请求并发送至接收模块421,其中,第一操作请求、第二操作请求和第三操作请求均包含事务id、SQL、数据库id和事务类型。
(2)接收模块421依次接收三个操作请求后,可以根据事务类型依次将三个操作请求发送至第二处理模块423。
(3)第二处理模块423依次接收三个操作请求后,通过连接模块424获取相应数据库的物理连接并执行相应的SQL,同时将事务id、数据库id和SQL命令发送至对账模块425进行异步处理。第二处理模块423与对账模块425可以通过kafka分布式消息队列实现异步交互,发送报文格式例如为:
<事务id=x1,数据库id=数据库1,SQL=SQL1>、
<事务id=x1,数据库id=数据库2,SQL=SQL2>、
<事务id=x1,数据库id=数据库3,SQL=SQL3>。
(4)对账模块425可以根据SQL内容进行反向转换,生成反向SQL即RSQL1、RSQL2和RSQL3,并将反向SQL存储于对账模块425的存储单元中。对账模块425中存储单元可以以事务id为key,以数组:
[<序号=1,数据库id=数据库1,SQL=SQL1,RSQL=RSQL1>
<序号=2,数据库id=数据库2,RSQL=RSQL2>
<序号=3,数据库id=数据库3,SQL=SQL3,RSQL=RSQL3>]为value进行存储。
(5)如整个事务执行过程中某一步出现异常,例如第二操作执行异常,异常操作涉及的第二应用端可以向接受模块421发送回滚请求,接受模块421将回滚请求发送至第二处理模块423,第二处理模块423接收到回滚请求后,可以查询对账模块425中存储的事务x1的执行路径,倒叙执行列表中RSQL1、RSQL2和RSQL3实现自动回溯。如回溯过程出现失败,则根据可配置参数revcount实现revcount次重试,如到达重试上限仍未成功则将存储模块中对应的信息写入数据库,后续作为异常报表进行手工处理。
根据本公开的实施例,第二处理模式可以针对一个事务跨多个数据库场景,第二处理模式与第一处理模式不同,第二处理模式对于每次应用端发出的请求没有缓存连接和会话,而是直接执行对应的SQL操作,同时将SQL语句通过异步消息队列发送至对账模块进行解析和存储,待整个事务中某一步出现异常后从对账模块读取整个事务的反向SQL执行实现回溯。通过全局事务id和对账模块,实现了基于自动回溯的事务模式。
本公开实施例的另一方面提供了一种事务处理装置。
图5示意性示出了根据本公开实施例的事务处理装置的框图。
如图5所示,该事务处理装置500包括接收模块510、匹配模块520和处理模块530。其中,接收模块510和匹配模块520可以组成上述方法实施例中的接收模块,处理模块530可以包括第一处理模块和第二处理模块。
接收模块510用于接收目标事务包含的M个操作的操作请求,操作请求包括事务类型,其中,在M个操作涉及同一数据库的情况下目标事务属于第一类事务;在M个操作涉及至少两个数据库的情况下目标事务属于第二类事务,M为大于等于2的整数。
匹配模块520用于从预设的N个事务处理模式中确定与事务类型匹配的目标处理模式,N个事务处理模式包括与第一类事务匹配的第一处理模式和与第二类事务匹配的第二处理模式,N为大于等于2的整数。
处理模块530用于基于目标处理模式和操作请求,执行M个操作,其中,在第一处理模式下,M个操作基于与数据库的同一连接和会话执行;在第二处理模式下,M个操作各自基于与相应数据库的独立连接和会话执行。
根据本公开的实施例,在所述M个操作涉及同一数据库的情况下,所述目标事务属于第一类事务;在所述M个操作涉及至少两个数据库的情况下,所述目标事务属于第二类事务。
根据本公开的实施例,所述基于所述目标处理模式和所述操作请求,执行所述M个操作包括:在第二处理模式下,若所述M个操作中的一个操作执行异常,对所述M个操作中已执行的操作进行回滚处理。
根据本公开的实施例,在所述目标事务属于第二类事务的情况下,所述操作请求还包括事务标识信息、数据库标识信息和执行语句。所述基于所述目标处理模式和所述操作请求,执行所述M个操作包括:在所述第二处理模式下,记录所述事务标识信息、所述数据库标识信息和所述执行语句;对所述执行语句进行反向转换处理,得到反向执行语句并记录所述反向执行语句;若所述M个操作中的一个操作执行异常,基于所述反向执行语句对所述M个操作中已执行的操作进行回滚处理。
根据本公开的实施例,所述接收目标事务包含的M个操作的操作请求包括:从M个应用端接收所述M个操作的操作请求,其中,每个操作对应一个应用端。
根据本公开的实施例,所述M个应用端包括第一应用端和第二应用端,所述第一应用端与第一操作相对应,所述第二应用端与第二操作相对应。所述基于所述目标处理模式和所述操作请求,执行所述M个操作包括:在所述第一处理模式下,基于所述第一操作的操作请求获取与数据库的连接并创建与数据库的会话;将所述连接的连接标识信息和所述会话的会话标识信息发送至所述第一应用端,以使所述第一应用端将所述连接标识信息和所述会话标识信息与所述第二应用端共享,所述第二操作包含所述连接标识信息和所述会话标识信息。
根据本公开的实施例,在所述目标事务属于第一类事务的情况下,所述操作请求包括:获取连接、创建会话、执行语句、生效指令、回滚指令、关闭会话和释放连接中的至少一种。
根据本公开的实施例,所述基于所述目标处理模式和所述操作请求,执行所述M个操作还包括:在所述回滚处理失败的情况下,重复执行预设次数的回滚处理直至回滚成功;若重复执行预设次数的回滚处理后仍然失败,将回滚结果记录为失败。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,接收模块510、匹配模块520和处理模块530中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,接收模块510、匹配模块520和处理模块530中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,接收模块510、匹配模块520和处理模块530中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中事务处理装置部分与本公开的实施例中事务处理方法部分是相对应的,事务处理装置部分的描述具体参考事务处理方法部分,在此不再赘述。
本公开实施例的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的事务处理方法。
图6示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的框图。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,根据本公开实施例的电子设备600包括处理器601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 603中,存储有电子设备600操作所需的各种程序和数据。处理器601、ROM602以及RAM 603通过总线604彼此相连。处理器601通过执行ROM 602和/或RAM 603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 602和RAM 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备600还可以包括输入/输出(I/O)接口605,输入/输出(I/O)接口605也连接至总线604。电子设备600还可以包括连接至I/O接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 602和/或RAM 603和/或ROM 602和RAM 603以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (11)
1.一种事务处理方法,包括:
接收目标事务包含的M个操作的操作请求,所述操作请求包括事务类型,其中,所述事务类型包括第一类事务和第二类事务,M为大于等于2的整数;
从预设的N个事务处理模式中确定与所述事务类型匹配的目标处理模式,所述N个事务处理模式包括与所述第一类事务匹配的第一处理模式和与所述第二类事务匹配的第二处理模式,N为大于等于2的整数;以及
基于所述目标处理模式和所述操作请求,执行所述M个操作,其中,在所述第一处理模式下,所述M个操作基于与数据库的同一连接和会话执行;在所述第二处理模式下,所述M个操作各自基于与数据库的独立连接和会话执行。
2.根据权利要求1所述的方法,其中:
在所述M个操作涉及同一数据库的情况下,所述目标事务属于第一类事务;在所述M个操作涉及至少两个数据库的情况下,所述目标事务属于第二类事务。
3.根据权利要求2所述的方法,其中,所述基于所述目标处理模式和所述操作请求,执行所述M个操作包括:
在第二处理模式下,若所述M个操作中的一个操作执行异常,对所述M个操作中已执行的操作进行回滚处理。
4.根据权利要求3所述的方法,其中:
在所述目标事务属于第二类事务的情况下,所述操作请求还包括事务标识信息、数据库标识信息和执行语句;
所述基于所述目标处理模式和所述操作请求,执行所述M个操作包括:
在所述第二处理模式下,记录所述事务标识信息、所述数据库标识信息和所述执行语句;
对所述执行语句进行反向转换处理,得到反向执行语句并记录所述反向执行语句;
若所述M个操作中的一个操作执行异常,基于所述反向执行语句对所述M个操作中已执行的操作进行回滚处理。
5.根据权利要求1所述的方法,其中,所述接收目标事务包含的M个操作的操作请求包括:
从M个应用端接收所述M个操作的操作请求,
其中,每个操作对应一个应用端。
6.根据权利要求5所述的方法,其中:
所述M个应用端包括第一应用端和第二应用端,所述第一应用端与第一操作相对应,所述第二应用端与第二操作相对应;
所述基于所述目标处理模式和所述操作请求,执行所述M个操作包括:
在所述第一处理模式下,基于所述第一操作的操作请求获取与数据库的连接并创建与数据库的会话;
将所述连接的连接标识信息和所述会话的会话标识信息发送至所述第一应用端,以使所述第一应用端将所述连接标识信息和所述会话标识信息与所述第二应用端共享,所述第二操作包含所述连接标识信息和所述会话标识信息。
7.根据权利要求1所述的方法,其中:
在所述目标事务属于第一类事务的情况下,所述操作请求包括:获取连接、创建会话、执行语句、生效指令、回滚指令、关闭会话和释放连接中的至少一种。
8.根据权利要求3或4所述的方法,其中,所述基于所述目标处理模式和所述操作请求,执行所述M个操作还包括:
在所述回滚处理失败的情况下,重复执行预设次数的回滚处理直至回滚成功;
若重复执行预设次数的回滚处理后仍然失败,将回滚结果记录为失败。
9.一种事务处理装置,包括:
接收模块,用于接收目标事务包含的M个操作的操作请求,所述操作请求包括事务类型,其中,所述事务类型包括第一类事务和第二类事务,M为大于等于2的整数;
匹配模块,用于从预设的N个事务处理模式中确定与所述事务类型匹配的目标处理模式,所述N个事务处理模式包括与所述第一类事务匹配的第一处理模式和与所述第二类事务匹配的第二处理模式,N为大于等于2的整数;以及
处理模块,用于基于所述目标处理模式和所述操作请求,执行所述M个操作,其中,在所述第一处理模式下,所述M个操作基于与数据库的同一连接和会话执行;在所述第二处理模式下,所述M个操作各自基于与相应数据库的独立连接和会话执行。
10.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010754769.8A CN111858641A (zh) | 2020-07-30 | 2020-07-30 | 事务处理方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010754769.8A CN111858641A (zh) | 2020-07-30 | 2020-07-30 | 事务处理方法、装置、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111858641A true CN111858641A (zh) | 2020-10-30 |
Family
ID=72946602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010754769.8A Pending CN111858641A (zh) | 2020-07-30 | 2020-07-30 | 事务处理方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858641A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380184A (zh) * | 2020-11-20 | 2021-02-19 | 北京百度网讯科技有限公司 | 事务处理方法、装置、电子设备及可读存储介质 |
CN112395316A (zh) * | 2020-11-10 | 2021-02-23 | 杭州萤石软件有限公司 | 一种数据查询方法及装置 |
CN112732820A (zh) * | 2021-01-26 | 2021-04-30 | 中国人寿保险股份有限公司上海数据中心 | 一种数据库会话管理系统及其方法 |
CN114138888A (zh) * | 2021-12-03 | 2022-03-04 | 北京宇信科技集团股份有限公司 | 一种分布式数据路由的处理方法、系统、介质和设备 |
CN115188190A (zh) * | 2022-07-08 | 2022-10-14 | 阿波罗智能技术(北京)有限公司 | 交通数据处理模式的更新方法、装置和车路协同系统 |
CN116302845A (zh) * | 2023-05-17 | 2023-06-23 | 建信金融科技有限责任公司 | 事务运行方式的确定方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070233699A1 (en) * | 2006-03-30 | 2007-10-04 | Fujitsu Limited | Database system management method and database system |
CN101212481A (zh) * | 2007-12-21 | 2008-07-02 | 华为技术有限公司 | 一种事务控制方法、系统和装置 |
CN102567399A (zh) * | 2010-12-31 | 2012-07-11 | 北京新媒传信科技有限公司 | 一种访问数据库的方法和装置 |
CN106557514A (zh) * | 2015-09-29 | 2017-04-05 | 中兴通讯股份有限公司 | 一种分布式事务回滚方法及装置 |
CN108572991A (zh) * | 2017-03-14 | 2018-09-25 | 北京京东尚科信息技术有限公司 | 数据库处理方法、装置和存储介质 |
CN108874587A (zh) * | 2018-06-06 | 2018-11-23 | 亚信科技(中国)有限公司 | 一种事务的最终一致性保障方法及系统 |
CN111259083A (zh) * | 2020-02-13 | 2020-06-09 | 神州数码融信软件有限公司 | 分布式事务处理方法及装置 |
-
2020
- 2020-07-30 CN CN202010754769.8A patent/CN111858641A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070233699A1 (en) * | 2006-03-30 | 2007-10-04 | Fujitsu Limited | Database system management method and database system |
CN101212481A (zh) * | 2007-12-21 | 2008-07-02 | 华为技术有限公司 | 一种事务控制方法、系统和装置 |
CN102567399A (zh) * | 2010-12-31 | 2012-07-11 | 北京新媒传信科技有限公司 | 一种访问数据库的方法和装置 |
CN106557514A (zh) * | 2015-09-29 | 2017-04-05 | 中兴通讯股份有限公司 | 一种分布式事务回滚方法及装置 |
CN108572991A (zh) * | 2017-03-14 | 2018-09-25 | 北京京东尚科信息技术有限公司 | 数据库处理方法、装置和存储介质 |
CN108874587A (zh) * | 2018-06-06 | 2018-11-23 | 亚信科技(中国)有限公司 | 一种事务的最终一致性保障方法及系统 |
CN111259083A (zh) * | 2020-02-13 | 2020-06-09 | 神州数码融信软件有限公司 | 分布式事务处理方法及装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395316A (zh) * | 2020-11-10 | 2021-02-23 | 杭州萤石软件有限公司 | 一种数据查询方法及装置 |
CN112395316B (zh) * | 2020-11-10 | 2023-08-29 | 杭州萤石软件有限公司 | 一种数据查询方法及装置 |
CN112380184A (zh) * | 2020-11-20 | 2021-02-19 | 北京百度网讯科技有限公司 | 事务处理方法、装置、电子设备及可读存储介质 |
CN112732820A (zh) * | 2021-01-26 | 2021-04-30 | 中国人寿保险股份有限公司上海数据中心 | 一种数据库会话管理系统及其方法 |
CN112732820B (zh) * | 2021-01-26 | 2024-05-17 | 中国人寿保险股份有限公司上海数据中心 | 一种数据库会话管理系统及其方法 |
CN114138888A (zh) * | 2021-12-03 | 2022-03-04 | 北京宇信科技集团股份有限公司 | 一种分布式数据路由的处理方法、系统、介质和设备 |
CN115188190A (zh) * | 2022-07-08 | 2022-10-14 | 阿波罗智能技术(北京)有限公司 | 交通数据处理模式的更新方法、装置和车路协同系统 |
CN115188190B (zh) * | 2022-07-08 | 2023-09-26 | 阿波罗智能技术(北京)有限公司 | 交通数据处理模式的更新方法、装置和车路协同系统 |
CN116302845A (zh) * | 2023-05-17 | 2023-06-23 | 建信金融科技有限责任公司 | 事务运行方式的确定方法、装置、电子设备及存储介质 |
CN116302845B (zh) * | 2023-05-17 | 2023-08-15 | 建信金融科技有限责任公司 | 事务运行方式的确定方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111858641A (zh) | 事务处理方法、装置、电子设备和可读存储介质 | |
CN111277639B (zh) | 一种保持数据一致性的方法和装置 | |
CN111198751A (zh) | 业务处理方法和装置 | |
US9251227B2 (en) | Intelligently provisioning cloud information services | |
CN110888718A (zh) | 分布式事务的实现方法及装置 | |
CN111598650A (zh) | 基于区块链网络的资源请求交易方法及相关装置 | |
CA3059719A1 (en) | Payment processing method, device, medium and electronic device | |
CN115114044A (zh) | 消息推送方法、装置、设备和介质 | |
CN112288577A (zh) | 分布式服务的交易处理方法、装置、电子设备和介质 | |
CN114327799B (zh) | 分布式事务处理方法及装置、电子设备、存储介质 | |
US10425778B2 (en) | Distributed transactions on mobile devices via a messaging service provided by a mobile network operator | |
CN109995585B (zh) | 一种异常处理方法、设备和存储介质 | |
CN112714042B (zh) | 压力测试方法、装置、电子设备和存储介质 | |
CN113988992A (zh) | 订单信息发送方法、装置、电子设备和计算机可读介质 | |
CN115705476A (zh) | 信息展示方法、装置、电子设备和计算机可读介质 | |
CN113726885A (zh) | 一种流量配额的调整方法和装置 | |
US20220327526A1 (en) | Method for enabling efficient evaluation of transactions in a distributed ledger network | |
CN113722315A (zh) | 数据生成方法、装置、电子设备和计算机可读介质 | |
CN112395104A (zh) | 一种分布式事务上下文在路由层传递的实现方法与装置 | |
US8250146B2 (en) | Service adaptation machine | |
CN111273970A (zh) | 智能合约的调用方法、装置、系统、介质及电子设备 | |
CN111275543A (zh) | 一种信息处理方法、装置、服务器及存储介质 | |
CN111292028A (zh) | 库存信息处理方法及系统、计算机系统和可读存储介质 | |
CN113077241A (zh) | 审批处理方法、装置、设备及存储介质 | |
CN112671877B (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 |