CN107797849A - 分布式事务处理的方法、装置与系统 - Google Patents

分布式事务处理的方法、装置与系统 Download PDF

Info

Publication number
CN107797849A
CN107797849A CN201610786511.XA CN201610786511A CN107797849A CN 107797849 A CN107797849 A CN 107797849A CN 201610786511 A CN201610786511 A CN 201610786511A CN 107797849 A CN107797849 A CN 107797849A
Authority
CN
China
Prior art keywords
affairs
coordinator
transaction
branch
affairs coordinator
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
Application number
CN201610786511.XA
Other languages
English (en)
Other versions
CN107797849B (zh
Inventor
姜宇
张松树
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610786511.XA priority Critical patent/CN107797849B/zh
Publication of CN107797849A publication Critical patent/CN107797849A/zh
Application granted granted Critical
Publication of CN107797849B publication Critical patent/CN107797849B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明提供一种分布式事务处理的方法、装置与系统,方法包括:接收终端发送的第一目标事务的业务请求,第一目标事务包括多个依次排序的分支事务,并根据业务请求在第一事务协调器的内存中生成第一目标事务的事务日志;向第二事务协调器发送业务请求,以使第二事务协调器根据业务请求在第二事务协调器的内存中生成第一目标事务的事务日志;向终端发送第一事务协调器和第二事务协调器的信息,以使终端在识别出第一事务协调器发生故障后,向第二事务协调器发送分支事务的目标请求。根据本发明,能够提高事务处理的速度。

Description

分布式事务处理的方法、装置与系统
技术领域
本申请涉及互联网技术,尤其涉及一种分布式事务处理的方法、装置与系统。
背景技术
所谓事务,是数据库中一个操作单元,在该操作单元中所有的操作要么都成功,要么都失败,执行结果不可逆转,事务具备四个基本的特性:原子性、一致性、隔离性、持久性,也简称为事务的ACID特性。随着互联网的发展和用户需求的不断变化,分布式事务系统的应用越来越广泛。
分布式事务系统通常包含客户端、资源管理器、事务协调器几个角色,分别位于分布式系统的不同节点之上。其中,事务协调器负责协调整个事务从开始到完成的所有相关处理流程,是系统核心角色,其可用性决定了分布式事务整体的可用性。为了避免因为一个事务协调器不可用而造成其负责的事务无法进行下去,需要事务协调器的高可用性。
现有技术中,通常一个集群事务协调器把事务日志存储在同一数据库,该数据库位于各事务协调器的外部,即位于外设的数据库服务器中,各事务协调器需要通过网络在数据库中创建、更新或删除事务日志。这样,当该集群事务协调器中某个事务协调器不可用时,客户端可以通过该集群中别的事务协调器调用该同一数据库的事务日志完成当前事务,这样就能够保证事务协调器的高可用性。但是,这种方法会受到数据库的性能制约。
例如,对于一个分布式事务来说,会有很多的事务日志,包括全局日志的创建、状态更新、删除,分支日志的创建、状态更新、删除,如果这些日志都保存在同一个数据库,一个6分支的分布式事务就有21个数据库写操作(18个分支日志写操作和3个全局日志写操作),即一个完整的事务需要21个数据库写操作。而数据库的服务能力都是有上限的,假设数据库(数据库服务器)的服务能力为10000tps(每秒事务处理量),每个分布式事务平均6个事务分支,则可以计算出一组事务协调器的处理能力上限是10000/21=476个事务。从以上举例可以看出,无论一个集群事务处理器的处理能力有多快,其都受到数据库的服务能力的制约,进而导致事务处理较慢。
发明内容
本申请提供一种分布式事务处理的方法、装置与系统,以解决事务处理器受到数据库的服务能力的制约的问题。
一个方面,本申请提供一种分布式事务处理的系统,包括:
终端,用于向第一事务协调器发送第一目标事务的业务请求,所述第一目标事务包括多个依次排序的分支事务;
第一事务协调器,用于接收所述终端发送的业务请求,并根据所述业务请求在第一事务协调器的内存中生成所述第一目标事务的事务日志,以及向第二事务协调器发送所述业务请求;
所述终端还用于接收所述第一事务协调器发送的所述第一事务协调器和第二事务协调器的信息,以使所述终端在识别出所述第一事务协调器发生故障后,向所述第二事务协调器发送分支事务的目标请求,以使所述第二事务协调器处理所述目标请求。
另一个方面,本申请提供一种分布式事务处理的方法,包括:
接收终端发送的第一目标事务的业务请求,所述第一目标事务包括多个依次排序的分支事务,并根据所述业务请求在第一事务协调器的内存中生成所述第一目标事务的事务日志;
向所述第二事务协调器发送所述业务请求,以使所述第二事务协调器根据所述业务请求在第二事务协调器的内存中生成所述第一目标事务的事务日志;
向所述终端发送所述第一事务协调器和第二事务协调器的信息,以使所述终端在识别出所述第一事务协调器发生故障后,向所述第二事务协调器发送分支事务的目标请求。
再一方面,本申请提供一种分布式事务处理的装置,包括:
生成模块,用于接收终端发送的第一目标事务的业务请求,所述第一目标事务包括多个依次排序的分支事务,并根据所述业务请求在第一事务协调器的内存中生成所述第一目标事务的事务日志;
第一发送模块,用于向所述第二事务协调器发送所述业务请求,以使所述第二事务协调器根据所述业务请求在第二事务协调器的内存中生成所述第一目标事务的事务日志;
第二发送模块,用于向所述终端发送所述第一事务协调器和第二事务协调器的信息,以使所述终端在识别出所述第一事务协调器发生故障后,向所述第二事务协调器发送分支事务的目标请求。
另一方面,本申请提供一种分布式事务处理的装置,包括:输入设备、处理器,
所述输入设备用于接收终端发送的第一目标事务的业务请求,所述第一目标事务包括多个依次排序的分支事务;
所述处理器用于根据所述业务请求在第一事务协调器的内存中生成所述第一目标事务的事务日志,向所述第二事务协调器发送所述业务请求,以使所述第二事务协调器根据所述业务请求在第二事务协调器的内存中生成所述第一目标事务的事务日志,并向所述终端发送所述第一事务协调器和第二事务协调器的信息,以使所述终端在识别出所述第一事务协调器发生故障后,向所述第二事务协调器发送分支事务的目标请求。
再一方面,本申请提供一种分布式事务处理的系统,包括:
终端,用于向第一事务协调器发送支付事务的业务请求,所述支付事务包括依次排序的第一分支事务和第二分支事务,所述第一分支事务为第一账户的金额减少预设金额,所述第二分支事务为第二账户的金额增加所述预设金额;
第一事务协调器,用于接收所述业务请求,并根据所述业务请求在第一事务协调器的内存中生成所述支付事务的事务日志,以及向第二事务协调器发送所述业务请求;
所述终端还用于接收所述第一事务协调器发送的所述第一事务协调器和第二事务协调器的信息,以使所述终端在识别出所述第一事务协调器发生故障后,向所述第二事务协调器发送分支事务的目标请求,以使所述第二事务协调器处理所述目标请求,所述目标请求为所述第一分支事务的目标请求或者所述第二分支事务的目标请求;
对应于所述第一账户的第一资源管理器,用于接收所述第一事务协调器或第二事务协调器发送的第一分支事务的执行请求,并根据所述第一分支事务将所述第一账户的金额减少所述预设金额;
对应于所述第二账户的第二资源管理器,用于接收所述第一事务协调器或第二事务协调器发送的第二分事务的执行请求,并根据所述第二分支事务将所述第二账户的金额增加所述预设金额。
另一方面,本申请提供一种分布式事务处理的方法,包括:
接收终端发送的支付事务的业务请求,所述支付事务包括依次排序的第一分支事务和第二分支事务,所述第一分支事务为第一账户的金额减少预设金额,所述第二分支事务为第二账户的金额增加所述预设金额;
根据所述业务请求在第一事务协调器的内存中生成所述支付事务的事务日志;
向所述第二事务协调器发送所述业务请求,以使所述第二事务协调器根据所述业务请求在第二事务协调器的内存中生成所述支付事务的事务日志;
向所述终端发送所述第一事务协调器和第二事务协调器的信息,以使所述终端在识别出所述第一事务协调器发生故障后,向所述第二事务协调器发送目标请求,以使所述第二事务协调器处理所述目标请求,所述目标请求为所述第一分支事务的目标请求或者所述第二分支事务的目标请求。
再一方面,本申请提供一种分布式事务处理的装置,包括:
接收业务请求模块,用于接收终端发送的支付事务的业务请求,所述支付事务包括依次排序的第一分支事务和第二分支事务,所述第一分支事务为第一账户的金额减少预设金额,所述第二分支事务为第二账户的金额增加所述预设金额;
事务日志生成模块,用于根据所述业务请求在第一事务协调器的内存中生成所述支付事务的事务日志;
请求发送模块,用于向所述第二事务协调器发送所述业务请求,以使所述第二事务协调器根据所述业务请求在第二事务协调器的内存中生成所述支付事务的事务日志;
信息发送模块,用于向所述终端发送所述第一事务协调器和第二事务协调器的信息,以使所述终端在识别出所述第一事务协调器发生故障后,向所述第二事务协调器发送目标请求,以使所述第二事务协调器处理所述目标请求,所述目标请求为所述第一分支事务的目标请求或者所述第二分支事务的目标请求。
又一方面,本申请提供一种分布式事务处理的方法,包括:
接收第一事务协调器发送的目标事务的业务请求,所述目标事务包括多个依次排序的分支事务;
根据所述目标事务在第二事务协调器的内存中生成所述目标事务的事务日志。
再一方面,本申请提供一种分布式事务处理的装置,包括:
请求接收模块,用于接收第一事务协调器发送的目标事务的业务请求,所述目标事务包括多个依次排序的分支事务;
日志生成模块,用于根据所述目标事务在第二事务协调器的内存中生成所述目标事务的事务日志。
在本申请中,通过将第一目标事务对应的事务日志存储在第一事务协调器的内存中,并在第二事务协调器的内存中备份该第一目标事务对应的事务日志,进而在第一事务协调器发生故障之后,可以通过第二事务协调器来完成第一目标事务,以实现事务协调器的高可用性。此外,由于将事务日志持久化在各事务协调器的内存中,无需通过网络在外部的数据库中生成事务日志并对事务日志进行操作,这样就不会受到数据库本身服务能力的限制以及网络的限制,在同等配置的条件下,事务协调器处理内存中的数据的速度远比在数据库中处理数据的速度快很多,这样能够加快事务的处理速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例的分布式事务处理的方法的流程示意图;
图2A为本发明另一实施例的事务协调器集群的结构示意图;
图2B为本发明另一实施例的全局事务日志和分支事务日志的关系示意图;
图3为本发明再一实施例的分布式事务处理的装置的结构示意图;
图4为本发明又一实施例的分布式事务处理的装置的结构示意图;
图5为本发明另一实施例的分布式事务处理的装置的结构示意图;
图6为本发明再一实施例的分布式事务处理的装置的结构示意图;
图7位本发明一实施例的分布式事务处理的系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
为了清楚起见,首先说明本发明的分布式事务处理的系统的架构。
本发明的分布式事务处理的系统包括终端和第一事物管理器。其中,终端用于向第一事务协调器发送第一目标事务的业务请求,第一目标事务包括多个依次排序的分支事务;第一事务协调器用于接收终端发送的业务请求,并根据业务请求在第一事务协调器的内存中生成第一目标事务的事务日志,以及向第二事务协调器发送业务请求;终端还用于接收第一事务协调器发送的第一事务协调器和第二事务协调器的信息,以使终端在识别出第一事务协调器发生故障后,向第二事务协调器发送分支事务的目标请求,以使第二事务协调器处理目标请求。
可选地,该系统还包括第二事务协调器,该第二事务协调器用于根据业务请求在第二事务协调器的内存中生成第一目标事务的事务日志。
下面,具体说明本发明的分布式事务处理的系统的结构。
如图7所示,为根据本发明的分布式事务处理的系统的结构示意图。该分布式事务系统包括客户端901和/或软负载902、事务协调器和资源管理器905。
其中,客户端901位于用户侧,具体可以位于用户的各种终端上,例如手机、电脑上。用户通过客户端901发起目标事务的业务请求。该目标事务包括多个依次排序的分支事务,即该业务请求中可以包括多个子请求,例如目标事务的创建请求、各分支事务的目标请求,这些请求被依次发送到事务协调器。该客户端901可以是下文中所提到的终端。
软负载902用于向资源管理器转发业务请求。具体地,软负载按照预设规则从各事务协调器中选择一台来处理该业务请求,记为第一事务协调器903。
第一事务协调器903接收终端发送的目标事务的创建请求,并根据创建请求在第一事务协调器903的内存中生成目标事务的全局事务日志,依次接收各分支事务的目标请求,并根据目标请求触发第一事务协调器903和第二事务协调器904在各自的内存中生成各分支事务的分支事务日志,分支事务日志属于目标事务的全局事务日志。例如,第一事务协调器903将目标事物的创建请求发送给第二事务协调器904,第二事务协调器904在内存中生成目标事务的全局事务日志。为了使第一事务协调器903在重启之后能够恢复目标事务的处理,可以在第一事务协调器903的内存中持久化各事务日志。
本实施例中,全局事务指的是对于一次性操作多个资源管理器的事务。在全局事务中,某一个资源管理器有自己独立的任务,这些任务的集合作为这个资源管理器的分支任务。
以下实施例中所描述的业务请求,可以仅包括目标事务的创建请求,也可以同时包括目标事务的创建请求和至少一个目标事务的分支事务的目标请求,创建请求与各分支事务的目标请求依次发送至事务协调器。
具体地,第一事务协调器903接收到业务请求后,首先根据目标事务的创建请求在第一事务协调器903的内存中创建目标事务的全局事务日志,并根据分支事务的目标请求在内存中生成分支事务日志,然后触发各分支事务对应的各资源管理器905执行分支事务。当各资源管理器905执行分支事务完成后,向该第一事务协调器903返回执行结果,第一事务协调器903根据执行结果修改对应的分支事务日志。例如,目标事务向客户端901返回各执行结果,若所有分支事务日志执行结果均为成功,则客户端901向第一事务协调器903发送全局提交指令,第一事务协调器903根据该全局提交指令修改全局事务日志,接下来,第一事务协调器903根据全局提交命令删除内存中第一目标事务对应的所有事务日志,并触发第二事务协调器904删除内存中第一目标事务对应的所有事务日志,具体地,第一事务协调器903根据全局提交指令依次删除各分支事务日志,并最后删除全局事务日志。若客户端901根据各执行结果判断出有异常,例如有一个分支事务执行不成功,则发出回滚指令,第一事务协调器903修改全局事务日志,并且所有分支事务对应的资源管理器905根据第一事务协调器903转发的回滚指令需将程序或数据恢复到上一次正确状态的行为,相应地,第一事务协调器903在各分支事务的回滚完成后,也要删除各分支事务日志以及全局事务日志。此处,全局提交指令可以看作是删除指令。
本实施例中,第一事务协调器903在接收到目标事务的业务请求后,还要从第一事务协调器903所在的事务协调器集群中选择出第二事务协调器904,例如随机选取或者根据负载均衡方式选取,还可以根据其它预设规则选择出第二事务协调器904,并向第二事务协调器904发送业务请求,以在第二事务协调器904的内存中做备份事务日志,并向客户端901发送第二事务协调器904的信息,这样当第一事务协调器903出现故障无法推进目标事务的完成时,客户端901可以通过第二事务协调器904来完成目标事务,以保证事务协调器的高可用。该第二事务协调器904所接受的创建请求、目标请求、资源管理器的执行结果均是第一事务协调器发送的。
此外,第二事务协调器904的个数为一个或多个,可以根据实际需要确定,在此不再赘述。
实施例一
本实施例提供一种分布式事务处理的方法,用于对分布式事务进行处理。该方法的执行主体为分布式事务处理的装置,该装置可以设置在第一事务协调器中。
如图1所示,为根据本实施例的分布式事务处理的方法的流程示意图。该分布式事务包括:
步骤101,接收终端发送的第一目标事务的业务请求,第一目标事务包括多个依次排序的分支事务。
该第一目标事务可以是任何事务,具体可以包括多个分支事务。当用户想要完成第一目标事务时,可以首先通过终端向分布式事务处理的装置发送第一目标事务的创建请求,该创建请求用于分布式事务处理的装置创建第一目标事务的全局事务日志。
本实施例的终端可以是用户将第一目标事务的创建请求发送至第一事务协调器时所经历的任何设备,例如位于用户侧的手机、电脑、IPad等。
步骤102,根据业务请求在第一事务协调器的内存中生成第一目标事务的事务日志。
当分布式事务处理的装置接收到该创建请求,就在第一事务协调器的内存中生成第一目标事务对应的全局事务日志。为了避免突然掉电造成事务日志的丢失,可以在内存中持久化该全局事务日志,即,使全局事务日志在内存中保持持久状态。
可选地,第一分布式事务处理器后续还会接收到第一目标事务的目标请求,该目标请求例如为第一目标事务的分支事务的创建请求、修改请求、删除请求。
举例来说,若第一目标事务为A向B转账200元钱,则第一目标事务可以包括2个分支事务,1个分支事务为A账户减少200元钱,另1个分支事务为B账户增加200元钱。在用户看来,只发送了一个业务请求,就是A向B转账200元钱,实际上在业务协调器这里会这对该第一目标事务创建3个日志,一个是针对第一目标事务的全局事务日志,另外两个是针对2个分支事务的分支事务日志。并且在后续针对这3个事务日志执行修改和删除操作。
步骤103,向第二事务协调器发送业务请求,以使第二事务协调器根据业务请求在第二事务协调器的内存中生成第一目标事务的事务日志。
第一事务协调器可以根据预设规则在第一事务协调器的集群中选择一个第二事务协调器,例如随机选择一个第二事务协调器。具体地,第一事务协调器中可以存储有所在的事务协调器集群中的事务协调器的信息,也可以向软负载发送实时询问信息,由软负载向第一事务协调器返回集群中各事务协调器的实时信息,当然还可以采用其它方式,具体不再赘述。
第二事务协调器具体如何在内存中生成第一目标事务的事务日志与第一事务协调器相同,在此不再赘述。该第二事务协调器与第一事务协调器位于同一个集群。
该第二事务协调器作为第一事务协调器的备用协调器,当第一事务协调器出现问题之后,采用第二事务协调器来继续完成第一目标事务,这样能够保证事务协调器的高可用性,不会因为一个事务协调器的故障而使得第一目标事务无法完成。
步骤104,向终端发送第一事务协调器和第二事务协调器的信息,以使终端在识别出第一事务协调器发生故障后,向第二事务协调器发送分支事务的目标请求。
终端识别第一事务协调器发生故障的方式有很多,例如当终端识别出其与第一事务协调器之间的链接断开时,可以确定第一事务协调器发生故障,进而向第二事务协调器发送第一目标事务的目标请求,目标请求包括以下请求中的至少一种:第一目标事务的分支事务的创建请求、修改请求、删除请求。
可选地,若识别出第一目标事务完成,则触发第一事务协调器和第二事务协调器删除内存中第一目标事务对应的所有事务日志,例如全局事务日志和对应的所有分支事务日志。第一事务协调器接收各资源管理器针对分支事务的执行结果,并发送至客户端,若客户端根据各执行结果判断出第一目标事务执行成功,则发送全局提交指令至第一事务协调器,第一事务协调器可以根据该全局提交指令修改全局事务日志为成功,接下来删除该第一目标事务的所有事务日志。例如,第一事务协调器可以对分支事务分别进行删除操作,然后再删除全局事务日志。第二事务协调器可以接收第一事务协调器发送的全局提交指令,进而删除第二事务协调器内存中的所有第一目标事务对应的事务日志。这样,能够避免过多无用的事务日志占用内存的空间,节省各事务协调器中内存空间。
根据本实施例,通过将第一目标事务对应的事务日志存储在第一事务协调器的内存中,并在第二事务协调器的内存中备份该第一目标事务对应的事务日志,进而在第一事务协调器发生故障之后,可以通过第二事务协调器来完成第一目标事务,以实现事务协调器的高可用性。此外,由于将事务日志持久化在各事务协调器的内存中,无需通过网络在外部的数据库中生成事务日志并对事务日志进行操作,这样就不会受到数据库本身服务能力的限制以及网络的限制,在同等配置的条件下,事务协调器处理内存中的数据的速度远比在数据库中处理数据的速度快很多,这样能够加快事务的处理速度。
实施例二
本实施例对上述实施例的分布式事务处理的方法做进一步补充说明。
本实施例的第一事务协调器还作为第三事务协调器的备份协调器,即,本实施例的分布式事务处理的方法还包括:
接收第三事务协调器发送的第二目标事务的业务请求;
根据第二目标事务的业务请求在第一事务协调器的内存中生成第二目标事务的事务日志。
该第一事务协调器接收到第二目标事务的创建请求后,首先生成全局事务日志,然后根据第二目标事务的分支事务的目标请求生成分支事务对应的分支事务日志,具体执行方式与接收到第一目标事务的业务请求相同,在此不再赘述。
假设,一个事务协调器集群包括三个事务协调器,分别为前述提到的第一事务协调器、第二事务协调器和第三事务协调器。那么,本实施例中,在生成第一目标事务的事务日志之后,还包括:
接收终端发送的分支事务的目标请求,目标请求中包括修改项的信息;
查询第一事务协调器的内存中的是否有与修改项对应的事务日志;
若查询结果为否,则执行向第二事务协调器发送业务请求的操作,以确定修改项在第二事务协调器中是否有对应的事务日志;
若确定结果为否,则触发分支事务的执行。
本实施例中,修改项的信息可以包括第一目标事务在对应的数据表中位置信息。
该分支事务的目标请求可以包括分支事务的修改请求,分支事务的修改请求发送至分布式事务处理的装置之后,该分布式事务处理的装置首先需要根据修改项的信息查询第一事务协调器中是否有与修改项对应的事务日志,如果有,则说明当前修改项正被其他事务占用,如果没有,则需要在第二事务协调器中查询是否有修改项对应的事务日志,若没有,则说明当前修改项未被其它事务占用,可以进行修改,具体可以在第二事务协调器中建立该修改项与第一目标事务的事务日志的映射关系,以表明该修改项当前被第一目标事务占用,相当于为该修改项加锁,这样就可以尽量避免对同一修改项发生修改冲突的问题。
可选地,向第二事务协调器发送业务请求包括:
向第二事务协调器发送目标请求,以使第二事务协调器根据目标请求确定第二事务协调器的内存中是否有修改项对应的事务日志;
接收第二事务协调器返回的用于表示修改项是否有对应的事务日志的应答信息。
由于一个目标事务一般都会因为需要修改而触发,因此,第二事务协调器若接收到目标请求,就可以根据该目标请求的修改项在内存中进行查询。
具体事务协调器如何识别请求的类型属于现有技术,例如根据预先约定的请求格式进行识别。
可选地,若查询出第一事务协调器中的有与修改项对应的事务日志,可以重复执行查询第一事务协调器的内存中的是否有与修改项对应的事务日志的操作,直至查询结果为否。由于第一事务协调器的内存中已经能够查找到有与修改项对应的事务日志,则无需询问第二事务协调器中是否有修改项对应的事务日志。由于第一事务协调器中有自己的事务和第三事务协调器中事务的备份,因此,当查询结果为否时,还需要向第二事务协调器进行询问。
为了避免用户等待时间过长,可选地,需要为重复执行查询第一事务协调器中是否有与修改项对应的全局事务日志的操作设置条件,以避免无限制的重复执行。具体地,若重复执行查询第一事务协调器的内存中的是否有与修改项对应的事务日志的操作的时间超过预设时间阈值或者次数超过预设次数,则向终端发送用于表示分支事务执行失败的信息。
可选地,若确定出修改项在第二事务协调器的内存中有对应的事务日志,则重复执行向第二事务协调器发送用于询问修改项是否有对应的事务日志的询问信息的操作,直至确定出修改项在第二事务协调器的内存中没有对应的事务日志。由于一个目标事务的执行时间非常短暂,很有可能,一个修改项对应的目标事务很快就执行完毕,并被删除相应的映射关系,此时,该修改项就可以被修改了,因此,可以通过重复执行查询操作来等到该修改项能够被修改的时机。
可选地,若重复执行向第二事务协调器发送询问信息的操作的时间超过预设时间阈值或者次数超过预设次数,则向终端发送用于表示分支事务执行失败的信息。这样可以避免无限次重复执行向第二事务协调器发送询问信息的操作。
本实施例中,与修改项对应的事务日志为全局务日志。
可选地,本实施例的方法还包括:
接收第三事务协调服务器发送的第三目标事务的询问信息,询问信息中包括第三目标事务的修改项的信息;
根据询问信息在第一事务协调器的内存中查询是否有修改项的信息对应的事务日志;
向第三事务协调器返回用于表示第三目标事务的修改项是否有对应的事务日志的应答信息。
若查询结果为否,则生成第三目标事务的事务日志,并建立第三目标事务的修改项与第三目标事务的事务日志的映射关系。
若识别出第三目标事务完成,则删除第三目标事务的修改项与第三目标事务的事务日志的映射关系。
即该第一事务协调器作为第三事务协调器的备用协调器时,需接收查询信息,该查询信息可以就是第三目标事务的分支事务的目标请求,当然第三事务协调器也可以单独生成查询信息,具体可以根据实际需要设定。
根据本实施例,由于将事务日志分别放置在各事务协调器的内存中,因此,为了避免修改项发生冲突而导致修改失败,需要为修改项建立加锁机制,本实施例中采用修改项与事务日志建立映射关系的方式为修改项加锁,能够尽量避免修改项被不同的事务同时修改而导致发生冲突。
实施例三
本实施例对前述实施例的分支事务的处理方法做举例说明。
如图2A和2B所示,为根据一示例性的事务协调器集群200的结构示意图。该事务协调器集群中具有3个事务协调器,即第一事务协调器A、第二事务协调器B和第三事务协调器C。
其中,A中的事务日志备份在B中,B中的事务日志备份在C中,C中的事务日志备份在A中。
假设,客户端201通过应用程序向软负载(图中未示出)发送第一目标事务的业务请求,该第一目标事务为从N的余额宝向M的余额宝转账200元钱,该业务请求包括2个分支事务,一个分支事务P为N的余额宝账户减少200元钱,另外一个分支事务Q是M的余额宝账户增加200元钱。该业务请求可以为二进制消息。
当软负载接收到业务请求后,就从事务协调器集群中按照预设规则选择A,并将业务请求发送至A,A接收到业务请求之后,首先可以将该业务请求持久化,以备程序重启后的事务恢复。接着A解析该业务请求,根据业务请求创建全局事务日志S,并将S的信息以及B的信息发送至客户端201,该S的信息例如为S的标识,以便在A发生故障之后,可以继续通过B完成第一目标事务,例如在A发生故障后,可以在向B的发送分支事务的目标请求时增加S的信息,以使B识别该分支事务具体属于哪个目标事务。本实施例的预设规则可以是负载均衡规则或者随机选取等规则。
A依次获取第一目标事务的2个分支事务的目标请求P1和Q1,根据2个分支事务的创建请求首先创建S的分支事务日志P2和Q2,该步骤可以与解析业务请求的操作一同完成。其中P1是N账户减少200元钱,Q1是M账户增加200元钱,P1对应的修改项是,其中,DB_A代表数据库A,Table_A代表表A,1代表主键(Primary Key)是1,主键即主关键字(primary key),其是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。即需要余额宝对应的资源管理器修改数据库A中的表A的主键1,减少200元,Q对应的修改项为DB_B/Table_B/1,DB_A代表数据库B,Table_B代表表B,1代表主键是1,即需要余额宝对应的资源管理器修改数据库B中表B的主键1,增加200元,A生成该第一目标事务的全局事务日志,A先在A的内存中查询是否有DB_A/TableA/1对应的全局事务日志,若有,则重复执行在A的内存中查询是否有该修改项对应的全局事务日志的操作,若在预设时间内查询出没有该修改项对应的全局事务日志,则向B发送询问信息,该询问信息中有P1的目标请求,即询问信息中修改项的信息。这是由于A中有自己接收到的第一目标事务的事务日志以及第三目标事务的事务日志,这样,A就可以获知A和C中是否有DB_A/TableA/1对应的全局事务日志,但是不知道B中是否有DB_A/TableA/1对应的全局事务日志,因此需要请求B进行查询并返回查询结果。
B接收到该询问信息之后,同样以将该业务请求持久化,以备程序重启后的事务恢复。可选地,A也可以向B发送的询问请求中只携带DB_A/TableA/1的信息,并在B查询出其内存中没有DB_A/TableA/1对应的全局事务日志之后,A接收B的查询结果,再向B发送P的目标请求,具体可以根据实际需要设定,在此不再赘述。
B查询出其内存中没有DB_A/TableA/1对应的全局事务日志之后,根据业务请求生成第一目标事务的全局事务日志S,并建立DB_A/TableA/1与全局事务日志S的映射关系。接着将查询结果告知A。
A根据该DB_A/TableA/1对应的查询结果的值该DB_A/TableA/1未被任何事务占用,可以被修改,而且B也已经准备好了P的备份事务日志,这样A就触发P对应的资源管理器执行P,即将N账户减少200元,并接收该资源管理器返回的执行结果,为成功,修改A中的P的分支事务日志,并将执行结果发送B,触发B修改B中P的分支事务日志。
对于DB_B/Table_B/1同样执行上述操作。假设B在自己的内存中查询到DB_B/Table_B/1有对应的全局事务日志,则重复执行查询DB_B/Table_B/1是否有对应的全局事务日志,直至在预设时间内查询结果为否,将查询结果告知A,并建立DB_B/Table_B/1与全局事务日志S的映射关系。
A根据该DB_B/TableBA/1对应的查询结果的值该DB_B/TableN/1未被任何事务占用,可以被修改,而且B也已经准备好了Q的备份事务日志,这样A就触发Q对应的资源管理器执行Q,即将M账户增加200元,将并接收该资源管理器返回的执行结果,为完成,修改A中的Q的分支事务日志,记录成功,并将执行结果发送B,触发B修改B中Q的分支事务日志,记录成功。
相应地,A和B根据各分支事务日志的执行结果修改全局事务日志,均为成功,接下来,A和B将全局事务日志的结果发送至客户端,客户端判断出没有异常后,发送全局提交指令,事务协调器根据该全局提交指令依次删除第一目标事务日志对应的分支事务日志,并删除第一目标事务对应的全局事务日志。
实施例四
本实施例提供一种分布式事务处理的装置,用于执行前述实施例的分布式事务处理的方法。该装置可以设置在第一事务协调器中。
如图3所示,为根据本实施例的分布式事务处理的装置的结构示意图。该装置300包括生成模块301、第一发送模块302和第二发送模块303。
其中,生成模块301用于接收终端发送的第一目标事务的业务请求,第一目标事务包括多个依次排序的分支事务,并根据业务请求在第一事务协调器的内存中生成第一目标事务的事务日志;第一发送模块302用于向第二事务协调器发送业务请求,以使第二事务协调器根据业务请求在第二事务协调器的内存中生成第一目标事务的事务日志;第二发送模块303用于向终端发送第一事务协调器和第二事务协调器的信息,以使终端在识别出第一事务协调器发生故障后,向第二事务协调器发送分支事务的目标请求。
可选地,本实施例的生成模块具体用于:
根据业务请求在第一事务协调器的内存中生成第一目标事务的事务日志,并在内存中持久化事务日志。
可选地,如图4所示,本实施例的装置300还包括触发模块401,该触发模块401用于:
若接收到终端发送的全局提交命令,则触发第一事务协调器和第二事务协调器删除内存中第一目标事务对应的所有事务日志。
可选地,触发模块401具体用于:
接收针对各分支事务的执行结果;
向终端发送各执行结果,并接收终端返回的全局提交命令。
可选地,目标请求包括以下请求中的至少一种:
创建请求、修改请求、删除请求。
关于本实施例中的装置300,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本实施例,通过将第一目标事务对应的事务日志存储在第一事务协调器的内存中,并在第二事务协调器的内存中备份该第一目标事务对应的事务日志,进而在第一事务协调器发生故障之后,可以通过第二事务协调器来完成第一目标事务,以实现事务协调器的高可用性。此外,由于将事务日志持久化在各事务协调器的内存中,无需通过网络在外部的数据库中生成事务日志并对事务日志进行操作,这样就不会受到数据库本身服务能力的限制以及网络的限制,在同等配置的条件下,事务协调器处理内存中的数据的速度远比在数据库中处理数据的速度快很多,这样能够加快事务的处理速度。
实施例五
本实施例对实施例四的装置做进一步补充说明。
如图5所示,为根据本实施例的装置的结构示意图。本实施例的装置300还包括备份模块501,该备份模块501用于:
接收第三事务协调器发送的第二目标事务的业务请求;
根据第二目标事务的业务请求在第一事务协调器的内存中生成第二目标事务的事务日志。
可选地,如图5所示,本实施例的装置还包括第一接收模块502和查询模块503。其中,第一接收模块502用于接收终端发送的分支事务的目标请求,目标请求中包括修改项的信息;查询模块503用于查询第一事务协调器的内存中的是否有与修改项对应的事务日志,若查询结果为否,则触发第一发送模块,以确定修改项在第二事务协调器中是否有对应的事务日志,若确定结果为否,则触发分支事务的执行。
可选地,第一发送模块302具体用于:
向第二事务协调器发送目标请求,以使第二事务协调器根据目标请求确定第二事务协调器的内存中是否有修改项对应的事务日志;
本实施例的装置300还包括第二接收模块504,第二接收模块504用于接收第二事务协调器返回的用于表示修改项是否有对应的事务日志的应答信息。
可选地,查询模块503还用于:
若查询结果为是,则重复执行查询第一事务协调器的内存中的是否有与修改项对应的事务日志的操作,直至查询结果为否。
可选地,查询模块503还用于:
若重复执行查询第一事务协调器的内存中的是否有与修改项对应的事务日志的操作的时间超过预设时间阈值或者次数超过预设次数,则向终端发送用于表示分支事务执行失败的信息。
可选地,查询模块503还用于:
若确定出修改项在第二事务协调器的内存中有对应的事务日志,则重复执行向第二事务协调器发送用于询问修改项是否有对应的事务日志的询问信息的操作,直至确定出修改项在第二事务协调器的内存中没有对应的事务日志。
可选地,查询模块503还用于:
若重复执行向第二事务协调器发送询问信息的操作的时间超过预设时间阈值或者次数超过预设次数,则向终端发送用于表示分支事务执行失败的信息。
可选地,本实施例与修改项对应的事务日志为全局务日志。
可选地,如图5所示,本实施例的装置还包括处理模块505,该处理模块505用于:
接收第三事务协调服务器发送的第三目标事务的询问信息,询问信息中包括第三目标事务的修改项的信息;
根据询问信息在第一事务协调器的内存中查询是否有修改项的信息对应的事务日志;
向第三事务协调器返回用于表示第三目标事务的修改项是否有对应的事务日志的应答信息。
可选地,处理模块505还用于:
若识别出第三目标事务完成,则删除第三目标事务的修改项与第三目标事务的事务日志的映射关系。
可选地,生成模块301具体用于:
接收终端发送的第一目标事务的创建请求,并根据创建请求在第一事务协调器的内存中生成第一目标事务的全局事务日志;
依次接收各分支事务的目标请求,并根据目标请求触发第一事务协调器和第二事务协调器在内存中生成各分支事务的分支事务日志,分支事务日志属于第一目标事务的全局事务日志。
可选地,生成模块301还用于:
持久化第一目标事务的业务请求。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本实施例,由于将事务日志分别放置在各事务协调器的内存中,因此,为了避免修改项发生冲突而导致修改失败,需要为修改项建立加锁机制,本实施例中采用修改项与事务日志建立映射关系的方式为修改项加锁,能够尽量避免修改项被不同的事务同时修改而导致发生冲突。
实施例六
本实施例提供另一种分布式事务处理的装置,用于执行前述实施例的方法。该装置可以设置在事务协调器中。
该装置包括输入设备和处理器,其中,输入设备用于接收终端发送的第一目标事务的业务请求,第一目标事务包括多个依次排序的分支事务;处理器用于根据业务请求在第一事务协调器的内存中生成第一目标事务的事务日志,向第二事务协调器发送业务请求,以使第二事务协调器根据业务请求在第二事务协调器的内存中生成第一目标事务的事务日志,并向终端发送第一事务协调器和第二事务协调器的信息,以使终端在识别出第一事务协调器发生故障后,向第二事务协调器发送分支事务的目标请求。
参照图6,装置600可以包括以下一个或多个组件:处理组件602,存储器604,电力组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制装置600的整体操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604被配置为存储各种类型的数据以支持在设备600的操作。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电力组件606为装置600的各种组件提供电力。电力组件606可以包括电源管理系统,一个或多个电源,及其他与为装置600生成、管理和分配电力相关联的组件。
多媒体组件608包括在装置600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当装置600处于操作模式,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为装置600提供各个方面的状态评估。在一些实施例中,该传感器组件614还可以包括磁传感器,压力传感器或温度传感器。
通信组件616被配置为便于装置600和其他设备之间有线或无线方式的通信。装置600可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
由上可知,在实施例中所涉及的通信组件616、音频组件610以及输入/输出接口612均可以作为本实施例中的输入设备的实现方式。
可选地,本实施例的输入设备和处理器还可以对应执行前述任何实施例的步骤,在此不再赘述。
根据本实施例,通过将第一目标事务对应的事务日志存储在第一事务协调器的内存中,并在第二事务协调器的内存中备份该第一目标事务对应的事务日志,进而在第一事务协调器发生故障之后,可以通过第二事务协调器来完成第一目标事务,以实现事务协调器的高可用性。此外,由于将事务日志持久化在各事务协调器的内存中,无需通过网络在外部的数据库中生成事务日志并对事务日志进行操作,这样就不会受到数据库本身服务能力的限制以及网络的限制,在同等配置的条件下,事务协调器处理内存中的数据的速度远比在数据库中处理数据的速度快很多,这样能够加快事务的处理速度。
实施例七
本实施例提供另一种分布式事务处理的系统。
本实施例的系统包括终端、第一事务协调器、第一资源管理器和第二资源管理器。
其中,终端用于向第一事务协调器发送支付事务的业务请求,支付事务包括依次排序的第一分支事务和第二分支事务,第一分支事务为第一账户的金额减少预设金额,第二分支事务为第二账户的金额增加预设金额;第一事务协调器用于接收业务请求,并根据业务请求在第一事务协调器的内存中生成支付事务的事务日志,以及向第二事务协调器904发送业务请求;终端还用于接收第一事务协调器903发送的第一事务协调器和第二事务协调器的信息,以使终端在识别出第一事务协调器发生故障后,向第二事务协调器发送分支事务的目标请求,以使第二事务协调器处理目标请求,目标请求为第一分支事务的目标请求或者第二分支事务的目标请求;对应于第一账户的第一资源管理器,用于接收第一事务协调器或第二事务协调器发送的第一分支事务的执行请求,并根据第一分支事务将第一账户的金额减少预设金额;对应于第二账户的第二资源管理器,用于接收第一事务协调器或第二事务协调器发送的第二分事务的执行请求,并根据第二分支事务将第二账户的金额增加预设金额。
本实施例的预设金额可以根据实际需要设定,在此不做限定。支付业务可以包括任意与金额有关的业务,例如转账、付款、还信用卡、支付宝交付等任意业务。
可选地,本实施例的系统还包括第二事务协调器。该第二事务协调器所执行的操作与前述实施例相同。
对于本实施例的终端所执行的分布式事务处理的方法包括:
接收终端发送的支付事务的业务请求,支付事务包括依次排序的第一分支事务和第二分支事务,第一分支事务为第一账户的金额减少预设金额,第二分支事务为第二账户的金额增加预设金额;
根据业务请求在第一事务协调器的内存中生成支付事务的事务日志;
向第二事务协调器发送业务请求,以使第二事务协调器根据业务请求在第二事务协调器的内存中生成支付事务的事务日志;
向终端发送第一事务协调器和第二事务协调器的信息,以使终端在识别出第一事务协调器发生故障后,向第二事务协调器发送目标请求,以使第二事务协调器处理目标请求,目标请求为第一分支事务的目标请求或者第二分支事务的目标请求。
可选地,在根据业务请求在第一事务协调器的内存中生成支付事务的事务日志之后,还包括:
向对应于第一账户对应的第一资源管理器发送第一分支事务的执行请求,以使第一资源管理器根据第一分支事务将第一账户的金额减少预设金额;
向对应于第二账户的第二资源管理器发送的第二分事务的执行请求,以使第二资源管理器根据第二分支事务将第二账户的金额增加预设金额。
可选地,根据业务请求在第一事务协调器的内存中生成支付事务的事务日志包括:
根据业务请求在第一事务协调器的内存中生成支付事务的事务日志,并在内存中持久化事务日志。
可选地,若接收到终端发送的全局提交命令,则触发第一事务协调器和第二事务协调器删除内存中支付事务对应的所有事务日志。
可选地,触发第一事务协调器和第二事务协调器删除内存中支付事务对应的所有事务日志包括:
接收针对第一分支事务的执行结果和第二分支事务的执行结果;
向终端发送各执行结果,并接收终端返回的全局提交命令。
相应地,本实施的终端包括接收业务请求模块、事务日志生成模块、请求发送模块和信息发送模块。
其中,接收业务请求模块用于接收终端发送的支付事务的业务请求,支付事务包括依次排序的第一分支事务和第二分支事务,第一分支事务为第一账户的金额减少预设金额,第二分支事务为第二账户的金额增加预设金额;事务日志生成模块用于根据业务请求在第一事务协调器的内存中生成支付事务的事务日志;请求发送模块用于向第二事务协调器发送业务请求,以使第二事务协调器根据业务请求在第二事务协调器的内存中生成支付事务的事务日志;信息发送模块用于向终端发送第一事务协调器和第二事务协调器的信息,以使终端在识别出第一事务协调器发生故障后,向第二事务协调器发送目标请求,以使第二事务协调器处理目标请求,目标请求为第一分支事务的目标请求或者第二分支事务的目标请求。
本实施例的终端、第一事务协调器、第二事务协调器、第一资源管理器和第二资源管理器还可以执行前述任意实施例的方法。
根据本实施例,通过将第一目标事务对应的事务日志存储在第一事务协调器的内存中,并在第二事务协调器的内存中备份该第一目标事务对应的事务日志,进而在第一事务协调器发生故障之后,可以通过第二事务协调器来完成第一目标事务,以实现事务协调器的高可用性。此外,由于将事务日志持久化在各事务协调器的内存中,无需通过网络在外部的数据库中生成事务日志并对事务日志进行操作,这样就不会受到数据库本身服务能力的限制以及网络的限制,在同等配置的条件下,事务协调器处理内存中的数据的速度远比在数据库中处理数据的速度快很多,这样能够加快事务的处理速度。
实施例八
本实施例提供一种分布式事务处理的方法,执行主体为分布式事务处理的装置,该装置可以设置在任意的事务协调中。
本实施例的方法包括:
接收第一事务协调器发送的目标事务的业务请求,目标事务包括多个依次排序的分支事务;
根据目标事务在第二事务协调器的内存中生成目标事务的事务日志。
本实施例的第一事务协调器与装置所在的事务协调器不同。
可选地,在接收第一事务协调器发送的目标事务的业务请求之后,还包括:
接收第一事务协调器发送的分支事务的目标请求,并处理目标请求。
可选地,本实施例的处理目标请求包括:
根据目标请求生成分支事务对应的事务日志;
触发分支事务对应的资源管理器执行分支事务。
相应地,本实施例的装置可以包括请求接收模块和日志生成模块。
其中,请求接收模块用于接收第一事务协调器发送的目标事务的业务请求,目标事务包括多个依次排序的分支事务;日志生成模块用于根据目标事务在第二事务协调器的内存中生成目标事务的事务日志。
根据本实施例的分布式事务处理的方法,通过备份第一事物协调器所接收到的目标事物对应的业务请求以及分支事务对应的目标请求,能够实现事务协调器的高可用性。
本发明还提供一种事务协调器,包括前述任一实施例的分布式事务处理的装置。
本发明还提供另外一种分布式事务处理器的装置,包括终端、前述任意实施例的事务协调器以及资源管理器。其中客户端可以是终端。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (53)

1.一种分布式事务处理的系统,其特征在于,包括:
终端,用于向第一事务协调器发送第一目标事务的业务请求,所述第一目标事务包括多个依次排序的分支事务;
第一事务协调器,用于接收所述终端发送的业务请求,并根据所述业务请求在第一事务协调器的内存中生成所述第一目标事务的事务日志,以及向第二事务协调器发送所述业务请求;
所述终端还用于接收所述第一事务协调器发送的所述第一事务协调器和第二事务协调器的信息,以使所述终端在识别出所述第一事务协调器发生故障后,向所述第二事务协调器发送分支事务的目标请求,以使所述第二事务协调器处理所述目标请求。
2.根据权利要求1所述的系统,其特征在于,还包括所述第二事务协调器,用于根据所述业务请求在第二事务协调器的内存中生成所述第一目标事务的事务日志。
3.根据权利要求1所述的系统,其特征在于,所述第一事务协调器具体用于:
根据所述业务请求在第一事务协调器的内存中生成所述第一目标事务的事务日志,并在所述内存中持久化所述事务日志。
4.根据权利要求1所述的系统,其特征在于,
所述终端还用于:向所述第一事务协调器发送全局提交命令;
所述第一事务协调器还用于:根据所述全局提交命令,删除内存中所述第一目标事务对应的所有事务日志,并触发所述第二事务协调器删除内存中所述第一目标事务对应的所有事务日志。
5.根据权利要求4所述的系统,其特征在于,
所述第一事务协调器还用于接收针对各分支事务的执行结果,并向所述终端发送各执行结果;
所述终端还用于:根据所述执行结果返回全局提交命令。
6.根据权利要求1所述的系统,其特征在于,所述目标请求包括以下请求中的至少一种:
创建请求、修改请求、删除请求。
7.根据权利要求1所述的系统,其特征在于,所述第一事务协调器还用于:
接收所述第三事务协调器发送的第二目标事务的业务请求;
根据所述第二目标事务的业务请求在所述第一事务协调器的内存中生成所述第二目标事务的事务日志。
8.根据权利要求1-7中任一项所述的系统,其特征在于,
所述终端还用于:发送所述分支事务的目标请求,所述目标请求中包括修改项的信息;
所述第一事务协调器还用于:
查询内存中的是否有与修改项对应的事务日志;
若查询结果为否,则执行向所述第二事务协调器发送所述业务请求的操作,以确定所述修改项在所述第二事务协调器中是否有对应的事务日志;
若确定结果为否,则触发所述分支事务的执行。
9.根据权利要求8所述的系统,其特征在于,
所述第一事务协调器具体用于:向所述第二事务协调器发送所述目标请求;
所述第二事务协调器用于:根据所述目标请求确定第二事务协调器的内存中是否有所述修改项对应的事务日志,并根据确定的结果向所述第一事务协调器返回应答信息,所述应答信息用于表示修改项是否有对应的事务日志。
10.根据权利要求8所述的系统,其特征在于,所述第一事务协调器还用于:
若查询结果为是,则重复执行查询所述第一事务协调器的内存中的是否有与修改项对应的事务日志的操作,直至查询结果为否。
11.根据权利要求10所述的系统,其特征在于,所述第一事务协调器还用于:
若重复执行查询所述第一事务协调器的内存中的是否有与修改项对应的事务日志的操作的时间超过预设时间阈值或者次数超过预设次数,则向终端发送用于表示所述分支事务执行失败的信息。
12.根据权利要求9所述的系统,其特征在于,所述第一事务协调器还用于:
若确定出所述修改项在所述第二事务协调器的内存中有对应的事务日志,则重复执行向所述第二事务协调器发送用于询问所述修改项是否有对应的事务日志的询问信息的操作,直至确定出所述修改项在所述第二事务协调器的内存中没有对应的事务日志。
13.根据权利要求12所述的系统,其特征在于,所述第一事务协调器还用于:
若重复执行向所述第二事务协调器发送所述询问信息的操作的时间超过预设时间阈值或者次数超过预设次数,则向终端发送用于表示所述分支事务执行失败的信息。
14.根据权利要求8所述的系统,其特征在于,与修改项对应的事务日志为全局事务日志。
15.根据权利要求7所述的系统,其特征在于,所述第一事务协调器还用于:
接收所述第三事务协调服务器发送的第三目标事务的询问信息,所述询问信息中包括第三目标事务的修改项的信息;
根据所述询问信息在所述第一事务协调器的内存中查询是否有所述修改项的信息对应的事务日志;
向所述第三事务协调器返回用于表示所述第三目标事务的修改项是否有对应的事务日志的应答信息。
16.根据权利要求15所述的系统,其特征在于,所述第一事务协调器还用于:
若查询结果为否,则生成所述第三目标事务的事务日志,并建立所述第三目标事务的修改项与第三目标事务的事务日志的映射关系。
17.根据权利要求16所述的系统,其特征在于,所述第一事务协调器还用于:
若识别出所述第三目标事务完成,则删除所述第三目标事务的修改项与第三目标事务的事务日志的映射关系。
18.根据权利要求1-7中任一项所述的系统,其特征在于,所述第一事务协调器具体用于:
接收所述终端发送的第一目标事务的创建请求,并根据所述创建请求在所述第一事务协调器的内存中生成所述第一目标事务的全局事务日志;
依次接收各所述分支事务的目标请求,并根据所述目标请求触发所述第一事务协调器和所述第二事务协调器在内存中生成各所述分支事务的分支事务日志,所述分支事务日志属于所述第一目标事务的全局事务日志。
19.根据权利要求1-7中任一项所述的系统,其特征在于,所述第一事务协调器还用于:持久化所述第一目标事务的业务请求。
20.根据权利要求1-7中任一项所述的系统,其特征在于,所述第一事务协调器还用于:
在所述第一事务协调器所在的事务协调器集群中选择第二事务协调器。
21.根据权利要求1-7中任一项所述的系统,其特征在于,还包括:
资源管理器,用于执行所述分支事务。
22.一种分布式事务处理的方法,其特征在于,包括:
接收终端发送的第一目标事务的业务请求,所述第一目标事务包括多个依次排序的分支事务,并根据所述业务请求在第一事务协调器的内存中生成所述第一目标事务的事务日志;
向所述第二事务协调器发送所述业务请求,以使所述第二事务协调器根据所述业务请求在第二事务协调器的内存中生成所述第一目标事务的事务日志;
向所述终端发送所述第一事务协调器和第二事务协调器的信息,以使所述终端在识别出所述第一事务协调器发生故障后,向所述第二事务协调器发送分支事务的目标请求,以使所述第二事务协调器处理所述目标请求。
23.根据权利要求22所述的方法,其特征在于,
所述根据所述业务请求在第一事务协调器的内存中生成所述第一目标事务的事务日志包括:
根据所述业务请求在第一事务协调器的内存中生成所述第一目标事务的事务日志,并在所述内存中持久化所述事务日志。
24.根据权利要求22所述的方法,其特征在于,还包括:
若接收到终端发送的全局提交命令,则触发所述第一事务协调器和所述第二事务协调器删除内存中所述第一目标事务对应的所有事务日志。
25.根据权利要求24所述的方法,其特征在于,所述触发所述第一事务协调器和所述第二事务协调器删除内存中所述第一目标事务对应的所有事务日志之前,包括:
接收针对各分支事务的执行结果;
向所述终端发送各执行结果,并接收所述终端返回的全局提交命令。
26.根据权利要求22所述的方法,其特征在于,所述目标请求包括以下请求中的至少一种:
创建请求、修改请求、删除请求。
27.根据的权利要求22所述的方法,其特征在于,还包括:
接收所述第三事务协调器发送的第二目标事务的业务请求;
根据所述第二目标事务的业务请求在所述第一事务协调器的内存中生成所述第二目标事务的事务日志。
28.根据权利要求22-27中任一项所述的方法,其特征在于,在生成所述第一目标事务的事务日志之后,还包括:
接收终端发送的所述分支事务的目标请求,所述目标请求中包括修改项的信息;
查询所述第一事务协调器的内存中的是否有与修改项对应的事务日志;
若查询结果为否,则执行向所述第二事务协调器发送所述业务请求的操作,以确定所述修改项在所述第二事务协调器中是否有对应的事务日志;
若确定结果为否,则触发所述分支事务的执行。
29.根据权利要求28所述的方法,其特征在于,所述向所述第二事务协调器发送所述业务请求包括:
向所述第二事务协调器发送所述目标请求,以使所述第二事务协调器根据所述目标请求确定第二事务协调器的内存中是否有所述修改项对应的事务日志;
接收所述第二事务协调器返回的用于表示修改项是否有对应的事务日志的应答信息。
30.根据权利要求28所述的方法,其特征在于,还包括:
若查询结果为是,则重复执行查询所述第一事务协调器的内存中的是否有与修改项对应的事务日志的操作,直至查询结果为否。
31.根据权利要求30所述的方法,其特征在于,若重复执行查询所述第一事务协调器的内存中的是否有与修改项对应的事务日志的操作的时间超过预设时间阈值或者次数超过预设次数,则向终端发送用于表示所述分支事务执行失败的信息。
32.根据权利要求31所述的方法,其特征在于,还包括:
若确定出所述修改项在所述第二事务协调器的内存中有对应的事务日志,则重复执行向所述第二事务协调器发送用于询问所述修改项是否有对应的事务日志的询问信息的操作,直至确定出所述修改项在所述第二事务协调器的内存中没有对应的事务日志。
33.根据权利要求32所述的方法,其特征在于,还包括:
若重复执行向所述第二事务协调器发送所述询问信息的操作的时间超过预设时间阈值或者次数超过预设次数,则向终端发送用于表示所述分支事务执行失败的信息。
34.根据权利要求28所述的方法,其特征在于,与修改项对应的事务日志为全局事务日志。
35.根据权利要求27所述的方法,其特征在于,还包括:
接收所述第三事务协调服务器发送的第三目标事务的询问信息,所述询问信息中包括第三目标事务的修改项的信息;
根据所述询问信息在所述第一事务协调器的内存中查询是否有所述修改项的信息对应的事务日志;
向所述第三事务协调器返回用于表示所述第三目标事务的修改项是否有对应的事务日志的应答信息。
36.根据权利要求25所述的方法,其特征在于,
若查询结果为否,则生成所述第三目标事务的事务日志,并建立所述第三目标事务的修改项与第三目标事务的事务日志的映射关系。
37.根据权利要求26所述的方法,其特征在于,还包括:
若识别出所述第三目标事务完成,则删除所述第三目标事务的修改项与第三目标事务的事务日志的映射关系。
38.根据权利要求22-27中任一项所述的方法,其特征在于,所述接收终端发送的第一目标事务的业务请求,根据所述业务请求在第一事务协调器的内存中生成所述第一目标事务的事务日志包括:
接收所述终端发送的第一目标事务的创建请求,并根据所述创建请求在所述第一事务协调器的内存中生成所述第一目标事务的全局事务日志;
依次接收各所述分支事务的目标请求,并根据所述目标请求触发所述第一事务协调器和所述第二事务协调器在内存中生成各所述分支事务的分支事务日志,所述分支事务日志属于所述第一目标事务的全局事务日志。
39.根据权利要求22-27中任一项所述的方法,其特征在于,在接收终端发送的第一目标事务的业务请求之后,还包括:
持久化所述第一目标事务的业务请求。
40.根据权利要求22-27中任一项所述的方法,其特征在于,在接收终端发送的第一目标事务的业务请求之后,且在向所述第二事务协调器发送所述业务请求之前,还包括:
在所述第一事务协调器所在的事务协调器集群中选择第二事务协调器。
41.一种分布式事务处理的装置,其特征在于,包括:
生成模块,用于接收终端发送的第一目标事务的业务请求,所述第一目标事务包括多个依次排序的分支事务,并根据所述业务请求在第一事务协调器的内存中生成所述第一目标事务的事务日志;
第一发送模块,用于向所述第二事务协调器发送所述业务请求,以使所述第二事务协调器根据所述业务请求在第二事务协调器的内存中生成所述第一目标事务的事务日志;
第二发送模块,用于向所述终端发送所述第一事务协调器和第二事务协调器的信息,以使所述终端在识别出所述第一事务协调器发生故障后,向所述第二事务协调器发送分支事务的目标请求。
42.一种分布式事务处理的装置,其特征在于,包括:输入设备、处理器,
所述输入设备用于接收终端发送的第一目标事务的业务请求,所述第一目标事务包括多个依次排序的分支事务;
所述处理器用于根据所述业务请求在第一事务协调器的内存中生成所述第一目标事务的事务日志,向所述第二事务协调器发送所述业务请求,以使所述第二事务协调器根据所述业务请求在第二事务协调器的内存中生成所述第一目标事务的事务日志,并向所述终端发送所述第一事务协调器和第二事务协调器的信息,以使所述终端在识别出所述第一事务协调器发生故障后,向所述第二事务协调器发送分支事务的目标请求。
43.一种分布式事务处理的系统,其特征在于,包括:
终端,用于向第一事务协调器发送支付事务的业务请求,所述支付事务包括依次排序的第一分支事务和第二分支事务,所述第一分支事务为第一账户的金额减少预设金额,所述第二分支事务为第二账户的金额增加所述预设金额;
第一事务协调器,用于接收所述业务请求,并根据所述业务请求在第一事务协调器的内存中生成所述支付事务的事务日志,以及向第二事务协调器发送所述业务请求;
所述终端还用于接收所述第一事务协调器发送的所述第一事务协调器和第二事务协调器的信息,以使所述终端在识别出所述第一事务协调器发生故障后,向所述第二事务协调器发送分支事务的目标请求,以使所述第二事务协调器处理所述目标请求,所述目标请求为所述第一分支事务的目标请求或者所述第二分支事务的目标请求;
对应于所述第一账户的第一资源管理器,用于接收所述第一事务协调器或第二事务协调器发送的第一分支事务的执行请求,并根据所述第一分支事务将所述第一账户的金额减少所述预设金额;
对应于所述第二账户的第二资源管理器,用于接收所述第一事务协调器或第二事务协调器发送的第二分事务的执行请求,并根据所述第二分支事务将所述第二账户的金额增加所述预设金额。
44.一种分布式事务处理的方法,其特征在于,包括:
接收终端发送的支付事务的业务请求,所述支付事务包括依次排序的第一分支事务和第二分支事务,所述第一分支事务为第一账户的金额减少预设金额,所述第二分支事务为第二账户的金额增加所述预设金额;
根据所述业务请求在第一事务协调器的内存中生成所述支付事务的事务日志;
向所述第二事务协调器发送所述业务请求,以使所述第二事务协调器根据所述业务请求在第二事务协调器的内存中生成所述支付事务的事务日志;
向所述终端发送所述第一事务协调器和第二事务协调器的信息,以使所述终端在识别出所述第一事务协调器发生故障后,向所述第二事务协调器发送目标请求,以使所述第二事务协调器处理所述目标请求,所述目标请求为所述第一分支事务的目标请求或者所述第二分支事务的目标请求。
45.根据权利要求44所述的方法,其特征在于,在根据所述业务请求在第一事务协调器的内存中生成所述支付事务的事务日志之后,还包括:
向对应于所述第一账户对应的第一资源管理器发送第一分支事务的执行请求,以使所述第一资源管理器根据所述第一分支事务将所述第一账户的金额减少所述预设金额;
向对应于所述第二账户的第二资源管理器发送的第二分事务的执行请求,以使所述第二资源管理器根据所述第二分支事务将所述第二账户的金额增加所述预设金额。
46.根据权利要求45所述的方法,其特征在于,所述根据所述业务请求在第一事务协调器的内存中生成所述支付事务的事务日志包括:
根据所述业务请求在第一事务协调器的内存中生成所述支付事务的事务日志,并在所述内存中持久化所述事务日志。
47.根据权利要去46所述的方法,其特征在于,若接收到终端发送的全局提交命令,则触发所述第一事务协调器和所述第二事务协调器删除内存中所述支付事务对应的所有事务日志。
48.根据权利要求47所述的方法,其特征在于,所述触发所述第一事务协调器和所述第二事务协调器删除内存中所述支付事务对应的所有事务日志包括:
接收针对所述第一分支事务的执行结果和所述第二分支事务的执行结果;
向所述终端发送各执行结果,并接收所述终端返回的全局提交命令。
49.一种分布式事务处理的装置,其特征在于,包括:
接收业务请求模块,用于接收终端发送的支付事务的业务请求,所述支付事务包括依次排序的第一分支事务和第二分支事务,所述第一分支事务为第一账户的金额减少预设金额,所述第二分支事务为第二账户的金额增加所述预设金额;
事务日志生成模块,用于根据所述业务请求在第一事务协调器的内存中生成所述支付事务的事务日志;
请求发送模块,用于向所述第二事务协调器发送所述业务请求,以使所述第二事务协调器根据所述业务请求在第二事务协调器的内存中生成所述支付事务的事务日志;
信息发送模块,用于向所述终端发送所述第一事务协调器和第二事务协调器的信息,以使所述终端在识别出所述第一事务协调器发生故障后,向所述第二事务协调器发送目标请求,以使所述第二事务协调器处理所述目标请求,所述目标请求为所述第一分支事务的目标请求或者所述第二分支事务的目标请求。
50.一种分布式事务处理的方法,其特征在于,包括:
接收第一事务协调器发送的目标事务的业务请求,所述目标事务包括多个依次排序的分支事务;
根据所述目标事务在第二事务协调器的内存中生成所述目标事务的事务日志。
51.根据权利要求50所述的方法,其特征在于,在接收第一事务协调器发送的目标事务的业务请求之后,还包括:
接收所述第一事务协调器发送的所述分支事务的目标请求,并处理所述目标请求。
52.根据权利要求51所述的方法,其特征在于,所述处理所述目标请求包括:
根据所述目标请求生成所述分支事务对应的事务日志;
触发所述分支事务对应的资源管理器执行所述分支事务。
53.一种分布式事务处理的装置,其特征在于,包括:
请求接收模块,用于接收第一事务协调器发送的目标事务的业务请求,所述目标事务包括多个依次排序的分支事务;
日志生成模块,用于根据所述目标事务在第二事务协调器的内存中生成所述目标事务的事务日志。
CN201610786511.XA 2016-08-30 2016-08-30 分布式事务处理的方法、装置与系统 Active CN107797849B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610786511.XA CN107797849B (zh) 2016-08-30 2016-08-30 分布式事务处理的方法、装置与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610786511.XA CN107797849B (zh) 2016-08-30 2016-08-30 分布式事务处理的方法、装置与系统

Publications (2)

Publication Number Publication Date
CN107797849A true CN107797849A (zh) 2018-03-13
CN107797849B CN107797849B (zh) 2021-06-08

Family

ID=61528481

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610786511.XA Active CN107797849B (zh) 2016-08-30 2016-08-30 分布式事务处理的方法、装置与系统

Country Status (1)

Country Link
CN (1) CN107797849B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108563693A (zh) * 2018-03-16 2018-09-21 阿里巴巴集团控股有限公司 一种事务的处理方法、装置及设备
CN110955670A (zh) * 2019-10-30 2020-04-03 成都摩宝网络科技有限公司 基于分布式事务的支付交易数据一致性控制方法及系统
CN112527473A (zh) * 2020-12-11 2021-03-19 中信银行股份有限公司 一种分布式事务处理方法及装置
CN113760519A (zh) * 2020-06-07 2021-12-07 北京金山云网络技术有限公司 分布式事务处理方法、装置、系统和电子设备
WO2022206429A1 (zh) * 2021-03-30 2022-10-06 华为云计算技术有限公司 一种分布式事务实现方法及分布式系统
WO2022206426A1 (zh) * 2021-03-30 2022-10-06 华为云计算技术有限公司 一种分布式事务处理方法、系统及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183979A (zh) * 2007-11-27 2008-05-21 上海华为技术有限公司 一种配置备份的方法和装置
CN103473318A (zh) * 2013-09-12 2013-12-25 中国科学院软件研究所 一种面向内存数据网格的分布式事务保障方法
CN103827832A (zh) * 2011-09-29 2014-05-28 甲骨文国际公司 用于在事务中间件机器环境中持久化事务记录的系统与方法
US9311144B1 (en) * 2015-05-08 2016-04-12 Xactly Corporation Processing virtual transactions of a workflow in atomic manner in a workflow management computer system
CN105760252A (zh) * 2014-12-19 2016-07-13 中兴通讯股份有限公司 实现事务日志镜像备份的方法及装置
US20160232178A1 (en) * 2015-02-09 2016-08-11 Red Hat, Inc. Transaction log for audit purposes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183979A (zh) * 2007-11-27 2008-05-21 上海华为技术有限公司 一种配置备份的方法和装置
CN103827832A (zh) * 2011-09-29 2014-05-28 甲骨文国际公司 用于在事务中间件机器环境中持久化事务记录的系统与方法
CN103473318A (zh) * 2013-09-12 2013-12-25 中国科学院软件研究所 一种面向内存数据网格的分布式事务保障方法
CN105760252A (zh) * 2014-12-19 2016-07-13 中兴通讯股份有限公司 实现事务日志镜像备份的方法及装置
US20160232178A1 (en) * 2015-02-09 2016-08-11 Red Hat, Inc. Transaction log for audit purposes
US9311144B1 (en) * 2015-05-08 2016-04-12 Xactly Corporation Processing virtual transactions of a workflow in atomic manner in a workflow management computer system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108563693A (zh) * 2018-03-16 2018-09-21 阿里巴巴集团控股有限公司 一种事务的处理方法、装置及设备
CN110955670A (zh) * 2019-10-30 2020-04-03 成都摩宝网络科技有限公司 基于分布式事务的支付交易数据一致性控制方法及系统
CN113760519A (zh) * 2020-06-07 2021-12-07 北京金山云网络技术有限公司 分布式事务处理方法、装置、系统和电子设备
CN112527473A (zh) * 2020-12-11 2021-03-19 中信银行股份有限公司 一种分布式事务处理方法及装置
WO2022206429A1 (zh) * 2021-03-30 2022-10-06 华为云计算技术有限公司 一种分布式事务实现方法及分布式系统
WO2022206426A1 (zh) * 2021-03-30 2022-10-06 华为云计算技术有限公司 一种分布式事务处理方法、系统及相关设备

Also Published As

Publication number Publication date
CN107797849B (zh) 2021-06-08

Similar Documents

Publication Publication Date Title
CN107797849A (zh) 分布式事务处理的方法、装置与系统
US20240040006A1 (en) Provisioning multiple network resources
US11620277B2 (en) Transaction processing at non-relational databases
CN107437222B (zh) 基于银行柜面前端的联机业务数据的处理方法及系统
US9720920B2 (en) Employing user-context in connection with backup or restore of data
CN109165940A (zh) 一种防盗方法、装置及电子设备
CN109087116A (zh) 积分兑换方法、积分交易系统和计算机可读存储介质
WO2019014004A1 (en) MESSAGING CONVERSATION MANAGEMENT SYSTEMS
CN107797850A (zh) 分布式事务处理的方法、装置与系统
CN111179091A (zh) 一种业务数据处理方法、装置、电子设备及存储介质
WO2021036583A1 (zh) 基于区块链的清算方法、装置、设备及计算机存储介质
CN113626002A (zh) 一种服务执行方法及装置
CN109614271A (zh) 多个集群数据一致性的控制方法、装置、设备及存储介质
CN111916077B (zh) 一种语音控制方法及设备
CN112800066A (zh) 索引管理的方法、相关设备及存储介质
CN204926177U (zh) 通过识别码实现刷卡的系统
CN113721936B (zh) 一种应用管理方法及智能终端、装置及存储介质
CN110347659A (zh) 数据处理方法和装置、交易数据处理方法和装置
CN109614442A (zh) 数据同步的数据表维护方法、装置、存储介质和电子设备
CN111290805B (zh) 一种聚合功能快捷调用方法及系统
CN108846041A (zh) 流程中操作冲突的处理方法、装置和存储介质及电子设备
CN111562947B (zh) 一种业务处理方法、装置及电子设备
CN114066370A (zh) 库存服务调用方法、装置、设备、存储介质及程序产品
CN109308197A (zh) 设置项的还原方法和装置
WO2012162939A1 (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230531

Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Aliyun Computing Co.,Ltd.

Address before: Box 847, box four, Grand Cayman capital building, Cayman Islands

Patentee before: ALIBABA GROUP HOLDING Ltd.

TR01 Transfer of patent right