CN111694851B - 分布式事务的交易处理方法及相关设备 - Google Patents

分布式事务的交易处理方法及相关设备 Download PDF

Info

Publication number
CN111694851B
CN111694851B CN202010467818.XA CN202010467818A CN111694851B CN 111694851 B CN111694851 B CN 111694851B CN 202010467818 A CN202010467818 A CN 202010467818A CN 111694851 B CN111694851 B CN 111694851B
Authority
CN
China
Prior art keywords
transaction
target
distributed
database
version number
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.)
Active
Application number
CN202010467818.XA
Other languages
English (en)
Other versions
CN111694851A (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202010467818.XA priority Critical patent/CN111694851B/zh
Priority to PCT/CN2020/099297 priority patent/WO2021114628A1/zh
Publication of CN111694851A publication Critical patent/CN111694851A/zh
Application granted granted Critical
Publication of CN111694851B publication Critical patent/CN111694851B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及区块链技术领域,提供一种分布式事务的交易处理方法、装置及相关设备,包括:获取并反序列化处理当前交易得到目标交易;判断目标交易的交易类型是否为分布式事务;当判断结果为是时,选取目标数据库;获取目标交易的第一交易版本号与目标数据库的第二交易版本号;判断第一交易版本号与第二交易版本号是否一致;当判断结果为是时,获取分布式事务的ID;分别校验目标交易是否正确提交;当判断结果为目标交易为正确提交时,将目标交易更新至预设数据库。本发明通过改进的mvcc机制,实现了跨链的分布式事务操作的正确性。

Description

分布式事务的交易处理方法及相关设备
技术领域
本发明涉及区块链技术领域,尤其涉及一种分布式事务的交易处理方法、装置、计算机设备及计算机可读存储介质。
背景技术
目前,区块链技术由于具有去中心化、开放性、自治性、信息不可篡改性及匿名性等重要特征而被广泛应用,各种不同的区块链技术纷纷涌现出来,区块链之间的互操作(也即跨链操作)成为了一个非常重要而又迫切的需求。
跨链操作必然涉及到不同区块节点的交易数据增删改查,为了满足不同节点的交易数据的ACID(原子性、一致性、隔离性及持久性)特性,需要在跨链技术中引入分布式事务的操作。然而,现有的分布式事务操作无法针对跨链的分布式事务交易进行校验处理,因而无法确保跨链交易的正确性。
因此,有必要提供一种方法,能够针对跨链的分布式事务交易进行mvcc校验处理,从而满足跨链的分布式事务操作的正确性。
发明内容
鉴于此,有必要提供一种分布式事务的交易处理方法、分布式事务的交易处理装置、计算机设备及计算机可读存储介质,针对跨链的分布式事务交易进行mvcc校验处理,从而实现跨链的分布式事务操作的正确性。
本发明实施例第一方面提供一种分布式事务的交易处理方法,应用于区块链的跨链节点设备中,所述分布式事务的交易处理方法包括:
获取目标区块的当前交易;
反序列化处理所述当前交易得到目标交易;
判断所述目标交易的交易类型是否为分布式事务;
当判断结果为所述目标交易的交易类型为分布式事务时,选取与所述交易类型对应的目标数据库;
获取所述目标交易的第一交易版本号与所述目标数据库的第二交易版本号;
判断所述第一交易版本号与所述第二交易版本号是否一致;
当判断结果为所述第一交易版本号与所述第二交易版本号一致时,获取所述目标交易的分布式事务的ID;
根据所述分布式事务的ID分别校验所述目标交易是否正确提交;
当判断结果为所述目标交易为正确提交时,将所述目标交易更新至预设数据库。
进一步地,在本发明实施例提供的上述分布式事务的交易处理方法中,在所述获取目标区块的当前交易之后,所述方法还包括:
根据预先指定的背书策略调用VSCC机制;
获取执行所述当前交易的智能合约;
关联所述VSCC机制与所述智能合约;
判断所述当前交易是否有效;
当判断结果为所述当前交易无效时,输出提示至预设客户端;
当判断结果为所述当前交易有效时,反序列化处理所述当前交易得到目标交易。
进一步地,在本发明实施例提供的上述分布式事务的交易处理方法中,所述反序列化处理所述当前交易得到目标交易包括:
确定与所述当前交易对应的目标序列化规则;
匹配出与所述目标序列化规则对应的目标反序列化规则;
调用所述目标反序列化规则对所述当前交易进行处理,得到目标交易。
进一步地,在本发明实施例提供的上述分布式事务的交易处理方法中,所述选取与所述交易类型对应的目标数据库包括:
当所述交易类型为分布式读事务时,选取状态数据库与分布式写集数据库作为目标数据库;
当所述交易类型为分布式写事务时,选取分布式读集数据库与分布式写集数据库作为目标数据库。
进一步地,在本发明实施例提供的上述分布式事务的交易处理方法中,所述根据所述分布式事务的ID分别校验所述目标交易是否正确提交包括:
校验所述分布式事务的ID是否存在于分布式事务数据库中;
当校验结果为所述分布式事务的ID存在于分布式事务数据库中时,判断所述分布式事务处于第一阶段还是第二阶段;
当所述分布式事务处于第一阶段时,确定所述目标交易为错误提交;
当所述分布式事务处于第二阶段时,确定所述目标交易为正确提交。
进一步地,在本发明实施例提供的上述分布式事务的交易处理方法中,所述将所述目标交易更新至预设数据库包括:
当所述分布式事务处于第一阶段时,获取所述分布式事务的读集与写集,更新所述读集与所述写集至分布式事务数据库中;或者
当所述分布式事务处于第二阶段时,获取所述分布式事务处于第一阶段的读集与写集,更新所述写集至状态数据库中,并删除所述分布式事务数据库中的所述读集与所述写集。
进一步地,在本发明实施例提供的上述分布式事务的交易处理方法中,所述方法还包括:
当所述分布式事务处于第一阶段时,获取所述分布式事务数据库的目标交易版本号;
判断所述目标交易版本号是否处于锁定状态;
当判断结果为所述目标交易版本号处于锁定状态时,输出提示至预设客户端。
本发明实施例第二方面还提供一种分布式事务的交易处理方法,应用于区块链的跨链节点设备中,所述分布式事务的交易处理方法包括:
交易获取模块,用于获取目标区块的当前交易;
序列处理模块,用于反序列化处理所述当前交易得到目标交易;
类型判断模块,用于判断所述目标交易的交易类型是否为分布式事务;
数据库选取模块,用于当判断结果为所述目标交易的交易类型为分布式事务时,选取与所述交易类型对应的目标数据库;
版本号获取模块,用于获取所述目标交易的第一交易版本号与所述目标数据库的第二交易版本号;
一致判断模块,用于判断所述第一交易版本号与所述第二交易版本号是否一致;
ID获取模块,用于当判断结果为所述第一交易版本号与所述第二交易版本号一致时,获取所述目标交易的分布式事务的ID;
ID校验模块,用于根据所述分布式事务的ID分别校验所述目标交易是否正确提交;
交易更新模块,用于当判断结果为所述目标交易为正确提交时,将所述目标交易更新至预设数据库。
本发明实施例第三方面还提供一种计算机设备,所述计算机设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现上述任意一项所述分布式事务的交易处理方法。
本发明实施例第二方面还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述分布式事务的交易处理方法。
本发明实施例提供一种分布式事务的交易处理方法、分布式事务的交易处理装置、计算机设备及计算机可读存储介质,获取目标区块的当前交易;反序列化处理所述当前交易得到目标交易;判断所述目标交易的交易类型是否为分布式事务;当判断结果为所述目标交易的交易类型为分布式事务时,选取与所述交易类型对应的目标数据库;获取所述目标交易的第一交易版本号与所述目标数据库的第二交易版本号;判断所述第一交易版本号与所述第二交易版本号是否一致;当判断结果为所述第一交易版本号与所述第二交易版本号一致时,获取所述目标交易的分布式事务的ID;根据所述分布式事务的ID分别校验所述目标交易是否正确提交;当判断结果为所述目标交易为正确提交时,将所述目标交易更新至预设数据库。利用本发明,通过对现有的mvcc机制进行改进,针对跨链的分布式事务交易进行mvcc校验处理,从而实现跨链的分布式事务操作的并发性和正确性。
附图说明
图1是本发明第一实施方式提供的分布式事务的交易处理方法的流程图。
图2是本发明一实施方式的计算机设备的结构示意图。
图3是图2所示的计算机设备的示例性的功能模块图。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本发明实施例提供的分布式事务的交易处理方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述分布式事务的交易处理方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
图1是本发明第一实施方式提供的分布式事务的交易处理方法的流程图。所述分布式事务的交易处理方法应用于区块链技术的跨链节点设备中,如图1所示,所述分布式事务的交易处理方法包括如下步骤:
S11、获取目标区块的当前交易。
在本发明的至少一实施例中,所述目标区块为不同区块链上区块高度最高的区块,其中,区块高度是指区块链接在主链的个数,也即链接在区块链上的块数。所述区块高度可以用来标识区块在区块链上位置,所述区块高度中包含区块相关的基础属性与交易数据,其中,所述基础属性包括神奇数(区块之间的分隔符)、区块大小及版本号等信息;所述交易数据包括交易计数(当前区块所记录的交易数)及交易详情(例如,交易时间戳等)。
在本发明的至少一实施例中,在所述获取目标区块的当前交易的步骤之后,所述方法还包括:根据预先指定的背书策略调用VSCC机制;获取执行所述当前交易的智能合约;关联所述VSCC机制与所述智能合约;判断所述当前交易是否有效;当判断结果为所述当前交易无效时,输出提示至预设客户端;当判断结果为所述当前交易有效时,反序列化处理所述当前交易得到目标交易。
其中,VSCC(Validator System Chaincode)机制用于交易背书的验证。所述交易背书的验证可以包括:校验背书节点是否来自智能合约中的节点;校验背书节点的数量是否满足智能合约中预先要求的数量;以及,校验背景节点的证书和签名是否有效等。通过对交易背书进行校验,能够判断当前交易是否有效。当判断结果为当前交易无效时,输出提示至预设客户端,所述预设客户端可以是执行所述当前交易的客户端;当判断结果为当前交易有效时,执行反序列化处理所述当前交易得到目标交易的步骤。
S12、反序列化处理所述当前交易得到目标交易。
在本发明的至少一实施例中,所述当前交易经序列化处理后存储在目标区块中,序列化规则可以包括Protobuf协议、Thrift协议或Java serialization协议中的一种或多种,在此不做限制。其中,不同的交易对应的序列化规则可以相同,也可以根据实际需求(例如,序列化效率等)选择不同的序列化规则。
具体地,确定不同的交易对应的序列化规则的步骤可以包括:获取原始交易数据,所述原始交易数据为未经过序列化规则处理的交易数据;获取所述原始交易数据对应的序列化规则集(所述序列化规则集中的序列化规则数量至少为一个);确定调用所述序列化规则集对所述原始交易数据进行序列化处理所需的时间集;获取所述时间集中所需时间最短的目标序列化规则,并根据所述目标序列化规则对所述原始交易数据进行序列化处理。可以理解的是,根据实际序列化处理效率调用目标序列化规则,能够提高目标交易获取效率,从而提高mvcc数据处理效率。
在本发明的至少一实施例中,通过调用与所述目标序列化规则对应的目标反序列化规则对区块中的当前交易进行处理,从而得到能够查看与分析的当前交易数据。具体地,所述反序列化处理所述当前交易得到目标交易的步骤包括:确定与所述当前交易对应的目标序列化规则;匹配出与所述目标序列化规则对应的目标反序列化规则;调用所述目标反序列化规则对所述当前交易进行处理,得到目标交易。
S13、判断所述目标交易的交易类型是否为分布式事务,当判断结果为所述目标交易的交易类型为分布式事务时,执行步骤S14。
在本发明的至少一实施例中,所述交易类型包括普通事务与分布式事务,其中,事务是指作为单个逻辑工作单元来执行的一系列操作,其具有原子性,也即事务或是完整地执行,或是完全不执行。通过将一组相关的操作组合成事务,可以确保除非事务中所有操作都成功完成,并且事务被成功提交,否则该事务所涉及的数据更新(包括增加、删除、更改等)均将被回滚。所述普通事务又包括普通的读事务与普通的写事务,所述分布式事务又包括分布式读事务与分布式写事务。
S14、选取与所述交易类型对应的目标数据库。
在本发明的至少一实施例中,所述目标数据库是指按照数据结构来组织、存储和管理数据的仓库,典型地,所述目标数据库可以为关系型数据库。所述目标数据库可以通过特定的接口或网络与预设客户端建立通讯连接,从而所述预设客户端可以向目标数据库发送操作指令,并且从目标数据库中接收操作指令对应的执行结果。
所述目标数据库包括状态数据库与分布式事务数据库,其中,所述状态数据库中存储不同交易类型交易的当前状态信息(包含交易的key值版本,也即交易版本号),所述分布式事务数据库包括分布式读集数据库与分布式写集数据库(也包含交易的key值版本,也即交易版本号)。所述交易的key值版本是指存储在目标数据库中的数据由于被多个事务先后操作所生成的具有先后顺序的各个版本的数据。
在本发明的至少一实施例中,当所述目标交易的交易类型为普通的读事务与分布式读事务时,由于分布式事务数据库中的交易版本号(key值版本)与状态数据库的交易版本号(key值版本)一致,所以只需要调用改进的mvcc机制校验状态数据库中的交易版本号(key值版本)。为了确认当前的交易版本号(key值版本)是否被锁,又因为即使当前交易版本号(key值版本)因为分布式事务数据库的读集合被锁定,也不会影响读出来的值,所以只需要调用改进的mvcc机制校验分布式写集数据库中的交易版本号(key值版本)。
当所述目标交易的交易类型为普通的写事务与分布式写事务时,由于交易版本号(key值版本)是一个写操作,仅需要调用改进的mvcc机制校验是否被锁即可,也即需要调用改进的mvcc机制校验分布式读集数据库与分布式写集数据库中的交易版本号(key值版本)。
由此可见,当所述目标交易的交易类型为普通事务时,具体地,当所述目标交易的交易类型为普通的读事务时,选取状态数据库与分布式写集数据库作为目标数据库;当所述目标交易的交易类型为普通的写事务时,选取分布式读集数据库与分布式写集数据库作为目标数据库。
当所述目标交易的交易类型为分布式事务时,具体地,当所述目标交易的交易类型为分布式读事务时,选取状态数据库与分布式写集数据库作为目标数据库;当所述目标交易的交易类型为分布式写事务时,选取分布式读集数据库与分布式写集数据库作为目标数据库。
S15、获取所述目标交易的第一交易版本号与所述目标数据库的第二交易版本号。
在本发明的至少一实施例中,获取所述目标交易的第一交易版本号与所述目标数据库的第二交易版本号,所述目标交易中携带有交易版本号与事务号。所述第一交易版本号是指所述目标交易携带的交易版本号,所述第二交易版本号是指由目标数据库所分配的指示数据的历史版本的编号。
所述获取所述目标交易的第一交易版本号的步骤可以包括:解析所述目标交易;根据解析结果确定所述目标交易的第一交易版本号。所述获取所述目标数据库的第二交易版本号的步骤可以包括:解析所述目标交易;根据解析结果确定所述目标交易对应的目标事务号;获取所述目标数据库对应所述目标事务号的第二交易版本号。其中,所述目标事务号可以为分布式事务的ID,在此不作限制。
S16、判断所述第一交易版本号与所述第二交易版本号是否一致,当判断结果为所述第一交易版本号与所述第二交易版本号一致时,执行步骤S17。
在本发明的至少一实施例中,通过判断所述第一交易版本号与所述第二交易版本号是否一致,从而判断所述目标交易的执行是否正常。当判断结果为所述第一交易版本号与所述第二交易版本号不一致时,说明目标交易执行出现混乱,则输出提示至预设客户端;当判断结果为所述第一交易版本号与所述第二交易版本号一致时,说明目标交易执行正常,可以继续调用改进的mvcc机制进行其他校验处理。
在本发明的至少一实施例中,可以采用XA规范来保证分布式事务的一致性。XA规范为一种分布式事务协议,XA采用两阶段提交协议(The two-phase commit protocol,2PC)方式来管理分布式事务。其中,在第一阶段,所有数据库进行提交准备。在第二阶段,当收到所有数据库的提交准备就绪的应答后,所有数据库正式提交该事务,并且,当某个数据库提交失败时,所有数据库回滚该事务。为简明起见,在本文中,当涉及到分布式事务处理时,所述分布式事务符合XA规范。
对于分布式事务交易,为了防止分布式事务交易在第一阶段提交而在第二阶段未提交导致的交易版本号混乱的问题,所述方法还包括:对交易版本号进行加锁处理。具体地,当分布式事务交易处于第一阶段(提交阶段)时,获取涉及到的目标交易版本号(key值版本),并将所述目标交易版本号写到分布式事务数据库中,标记为加锁(加锁后的key值版本将被占用,无法执行更改操作);当分布式事务交易处于第二阶段时,对所述目标交易版本号进行释放锁操作。其中,无论分布式事务交易处于第二阶段时的状态为commit,或者是rollback,都需要对涉及的交易版本(key值版本)释放锁,也即从分布式事务数据库中删除。
因而,在本发明的至少一实施例中,为了支持分布式事务交易,改进的mvcc机制还添加了基于分布式事务交易的其他校验处理。也即分布式事务交易的第一阶段涉及到的交易版本号除了需要做普通的版本校验,还需要调用改进的mvcc机制校验所述交易版本号是否被锁。具体地,所述方法还包括:检测所述分布式事务是否处于第一阶段;当检测结果为所述分布式事务处于第一阶段时,获取所述分布式事务数据库的目标交易版本号;判断所述目标交易版本号是否处于锁定状态;当判断结果为所述目标交易版本号处于锁定状态时,输出提示至预设客户端。
S17、获取所述目标交易的分布式事务的ID。
在本发明的至少一实施例中,改进的mvcc机制还添加了根据分布式事务的ID,对分布式事务是否正确提交的校验。具体地,改进后的mvcc机制可以对分布式事务是否重复提交与所述分布式事务在第二阶段是否有效提交的校验。
S18、根据所述分布式事务的ID分别校验所述目标交易是否正确提交,当判断结果为所述目标交易为正确提交时,执行步骤S19。
在本发明的至少一实施例中,所述根据所述分布式事务的ID分别校验所述目标交易是否正确提交包括:校验所述分布式事务的ID是否存在于分布式事务数据库中;当校验结果为所述分布式事务的ID存在于分布式事务数据库中时,判断所述分布式事务处于第一阶段还是第二阶段;当所述分布式事务处于第一阶段时,确定所述目标交易为错误提交;当所述分布式事务处于第二阶段时,确定所述目标交易为正确提交。其中,所述正确提交可以包括不重复提交与有效提交。
在本发明的至少一实施例中,当分布式事务处于第一阶段时,分布式事务交易(包括分布式事务的ID)会被写入分布式事务数据库中。从而,每次的分布式事务的第一阶段提交,都需要调用改进的mvcc机制校验是否重复提交。具体地,根据所述分布式事务的ID校验所述目标交易是否重复提交的步骤可以包括:当所述分布式事务处于第一阶段时,校验所述分布式事务的ID是否存在于分布式事务数据库中,当校验结果为所述分布式事务的ID存在于分布式事务数据库中时,确定所述目标交易为重复提交。
当分布式事务处于第二阶段时,需要调用改进的mvcc机制校验分布式事务的ID在分布式数据库中是否存在,从而判断是否有效。具体地,根据所述分布式事务的ID校验所述目标交易是否有效提交的步骤包括:当所述分布式事务处于第二阶段时,校验所述分布式事务的ID是否存在于分布式事务数据库中,当校验结果为所述分布式事务的ID存在于分布式事务数据库中时,确定所述目标交易为有效提交。
在本发明的至少一实施例中,当判断结果为所述目标交易为重复提交和/或所述目标交易为无效提交时,所述方法还包括:输出提示至预设客户端,提示内容包括校验不通过的具体原因。优选地,设置一数据库,用于存储改进的mvcc机制校验不通过的原因及对应的解决方案。通过查询该数据库,能够匹配出具体的解决方案,从而提高改进的mvcc机制的校验效率。
S19、将所述目标交易更新至预设数据库。
在本发明的至少一实施例中,在区块链的跨链操作时,对于分布式事务交易,当分布式事务交易处于第一阶段时,将涉及到的读写集经过改进的mvcc机制校验通过后,写入分布式事务数据库中;当分布式事务交易处于第二阶段时,将分布式事务交易通过改进的mvcc机制校验通过后,将第一阶段的写集写入状态数据库,并将第一阶段涉及到的读写集从分布式事务数据库中删除。
具体地,所述将所述目标交易更新至预设数据库的步骤包括:当所述分布式事务处于第一阶段时,获取所述分布式事务的读集与写集,更新所述读集与所述写集至分布式事务数据库中;或者当所述分布式事务处于第二阶段时,获取所述分布式事务处于第一阶段的读集与写集,更新所述写集至状态数据库中,并删除所述分布式事务数据库中的所述读集与所述写集。
本发明实施例提供的一种分布式事务的交易处理方法,通过对现有的mvcc机制进行改进,针对跨链的分布式事务交易进行mvcc校验处理,从而满足跨链的分布式事务操作的并发性和正确性。
以上是对本发明实施例所提供的方法进行的详细描述。根据不同的需求,所示流程图中方块的执行顺序可以改变,某些方块可以省略。下面对本发明实施例所提供的计算机设备1进行描述。
图2是本发明一实施方式的计算机设备的结构示意图,如图2所示,计算机设备1包括存储器10,存储器10中存储有所述分布式事务的交易处理装置100。所述计算机设备1可以是计算机、平板电脑、个人数字助理等具有数据处理、分析、程序执行及显示等功能的电子设备。所述分布式事务的交易处理装置100获取目标区块的当前交易;反序列化处理所述当前交易得到目标交易;判断所述目标交易的交易类型是否为分布式事务;当判断结果为所述目标交易的交易类型为分布式事务时,选取与所述交易类型对应的目标数据库;获取所述目标交易的第一交易版本号与所述目标数据库的第二交易版本号;判断所述第一交易版本号与所述第二交易版本号是否一致;当判断结果为所述第一交易版本号与所述第二交易版本号一致时,获取所述目标交易的分布式事务的ID;根据所述分布式事务的ID分别校验所述目标交易是否正确提交;当判断结果为所述目标交易为正确提交时,将所述目标交易更新至预设数据库。利用本发明,通过改进的mvcc机制,针对跨链的分布式事务交易进行mvcc校验处理,从而满足跨链的分布式事务操作的并发性和正确性。
本实施方式中,计算机设备1还可以包括显示屏20及处理器30。存储器10、显示屏20可以分别与处理器30电连接。
所述的存储器10可以是不同类型存储设备,用于存储各类数据。例如,可以是计算机设备1的存储器、内存,还可以是可外接于该计算机设备1的存储卡,如闪存、SM卡(SmartMedia Card,智能媒体卡)、SD卡(Secure Digital Card,安全数字卡)等。此外,存储器10可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。存储器10用于存储各类数据,例如,所述计算机设备1中安装的各类应用程序(Applications)、应用上述分布式事务的交易处理方法而设置、获取的数据等信息。
显示屏20安装于计算机设备1,用于显示信息。
处理器30用于执行所述分布式事务的交易处理方法以及所述计算机设备1内安装的各类软件,例如操作系统及应用显示软件等。处理器30包含但不限于处理器(CentralProcessing Unit,CPU)、微控制单元(Micro Controller Unit,MCU)等用于解释计算机指令以及处理计算机软件中的数据的装置。
所述的分布式事务的交易处理装置100可以包括一个或多个的模块,所述一个或多个模块被存储在计算机设备1的存储器10中并被配置成由一个或多个处理器(本实施方式为一个处理器30)执行,以完成本发明实施例。例如,参阅图3所示,所述分布式事务的交易处理装置100可以包括交易获取模块101、序列处理模块102、类型判断模块103、数据库选取模块104、版本号获取模块105、一致判断模块106、ID获取模块107、ID校验模块108及交易更新模块109。本发明实施例所称的模块可以是完成一特定功能的程序段,比程序更适合于描述软件在处理器30中的执行过程。
可以理解的是,对应上述分布式事务的交易处理方法中的各实施方式,分布式事务的交易处理装置100可以包括图3中所示的各功能模块中的一部分或全部,各模块的功能将在以下具体介绍。需要说明的是,以上分布式事务的交易处理方法的各实施方式中相同的名词、相关名词及其具体的解释说明也可以适用于以下对各模块的功能介绍。为节省篇幅及避免重复起见,在此就不再赘述。
交易获取模块101可以用于获取目标区块的当前交易。
序列处理模块102可以用于反序列化处理所述当前交易得到目标交易。
类型判断模块103可以用于判断所述目标交易的交易类型是否为分布式事务。
数据库选取模块104可以用于当判断结果为所述目标交易的交易类型为分布式事务时,选取与所述交易类型对应的目标数据库。
版本号获取模块105可以用于获取所述目标交易的第一交易版本号与所述目标数据库的第二交易版本。
一致判断模块106可以用于判断所述第一交易版本号与所述第二交易版本号是否一致。
ID获取模块107可以用于当判断结果为所述第一交易版本号与所述第二交易版本号一致时,获取所述目标交易的分布式事务的ID。
ID校验模块108可以用于根据所述分布式事务的ID分别校验所述目标交易是否正确提交。
交易更新模块109可以用于当判断结果为所述目标交易为正确提交时,将所述目标交易更新至预设数据库。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器30执行时实现上述任一实施方式中的分布式事务的交易处理方法的步骤。
所述分布式事务的交易处理装置100如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施方式方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器30执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)等。
所称处理器30可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器30是所述分布式事务的交易处理装置100/计算机设备1的控制中心,利用各种接口和线路连接整个分布式事务的交易处理装置100/计算机设备1的各个部分。
所述存储器10用于存储所述计算机程序和/或模块,所述处理器30通过运行或执行存储在所述存储器10内的计算机程序和/或模块,以及调用存储在存储器10内的数据,实现所述分布式事务的交易处理装置100/计算机设备1的各种功能。所述存储器10可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备1的使用所创建的数据等。
在本发明所提供的几个具体实施方式中,应该理解到,所揭露的计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的系统实施方式仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
对于本领域技术人员而言,显然本发明实施例不限于上述示范性实施例的细节,而且在不背离本发明实施例的精神或基本特征的情况下,能够以其他的具体形式实现本发明实施例。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明实施例的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明实施例内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。系统、装置或计算机设备权利要求中陈述的多个单元、模块或装置也可以由同一个单元、模块或装置通过软件或者硬件来实现。
以上实施方式仅用以说明本发明实施例的技术方案而非限制,尽管参照以上较佳实施方式对本发明实施例进行了详细说明,本领域的普通技术人员应当理解,可以对本发明实施例的技术方案进行修改或等同替换都不应脱离本发明实施例的技术方案的精神和范围。

Claims (10)

1.一种分布式事务的交易处理方法,应用于区块链的跨链节点设备中,其特征在于,所述分布式事务的交易处理方法包括:
获取目标区块的当前交易;
根据预先指定的背书策略调用VSCC机制;
获取执行所述当前交易的智能合约;
关联所述VSCC机制与所述智能合约;
判断所述当前交易是否有效;
当判断结果为所述当前交易有效时,反序列化处理所述当前交易得到目标交易;
判断所述目标交易的交易类型是否为分布式事务;
当判断结果为所述目标交易的交易类型为分布式事务时,选取与所述交易类型对应的目标数据库;
获取所述目标交易的第一交易版本号与所述目标数据库的第二交易版本号;
判断所述第一交易版本号与所述第二交易版本号是否一致;
当判断结果为所述第一交易版本号与所述第二交易版本号一致时,获取所述目标交易的分布式事务的ID;
根据所述分布式事务的ID分别校验所述目标交易是否正确提交;
当判断结果为所述目标交易为正确提交时,将所述目标交易更新至预设数据库。
2.根据权利要求1所述的分布式事务的交易处理方法,其特征在于,在所述获取目标区块的当前交易之后,所述方法还包括:
当判断结果为所述当前交易无效时,输出提示至预设客户端。
3.根据权利要求1所述的分布式事务的交易处理方法,其特征在于,所述反序列化处理所述当前交易得到目标交易包括:
确定与所述当前交易对应的目标序列化规则;
匹配出与所述目标序列化规则对应的目标反序列化规则;
调用所述目标反序列化规则对所述当前交易进行处理,得到目标交易。
4.根据权利要求1所述的分布式事务的交易处理方法,其特征在于,所述选取与所述交易类型对应的目标数据库包括:
当所述交易类型为分布式读事务时,选取状态数据库与分布式写集数据库作为目标数据库;
当所述交易类型为分布式写事务时,选取分布式读集数据库与分布式写集数据库作为目标数据库。
5.根据权利要求1所述的分布式事务的交易处理方法,其特征在于,所述根据所述分布式事务的ID分别校验所述目标交易是否正确提交包括:
校验所述分布式事务的ID是否存在于分布式事务数据库中;
当校验结果为所述分布式事务的ID存在于分布式事务数据库中时,判断所述分布式事务处于第一阶段还是第二阶段;
当所述分布式事务处于第一阶段时,确定所述目标交易为错误提交;
当所述分布式事务处于第二阶段时,确定所述目标交易为正确提交。
6.根据权利要求5所述的分布式事务的交易处理方法,其特征在于,所述将所述目标交易更新至预设数据库包括:
当所述分布式事务处于第一阶段时,获取所述分布式事务的读集与写集,更新所述读集与所述写集至分布式事务数据库中;或者
当所述分布式事务处于第二阶段时,获取所述分布式事务处于第一阶段的读集与写集,更新所述写集至状态数据库中,并删除所述分布式事务数据库中的所述读集与所述写集。
7.根据权利要求5所述的分布式事务的交易处理方法,其特征在于,所述方法还包括:
当所述分布式事务处于第一阶段时,获取所述分布式事务数据库的目标交易版本号;
判断所述目标交易版本号是否处于锁定状态;
当判断结果为所述目标交易版本号处于锁定状态时,输出提示至预设客户端。
8.一种分布式事务的交易处理方法,应用于区块链的跨链节点设备中,其特征在于,所述分布式事务的交易处理方法包括:
交易获取模块,用于获取目标区块的当前交易;
序列处理模块,用于根据预先指定的背书策略调用VSCC机制;获取执行所述当前交易的智能合约;关联所述VSCC机制与所述智能合约;判断所述当前交易是否有效;当判断结果为所述当前交易有效时,反序列化处理所述当前交易得到目标交易;
类型判断模块,用于判断所述目标交易的交易类型是否为分布式事务;
数据库选取模块,用于当判断结果为所述目标交易的交易类型为分布式事务时,选取与所述交易类型对应的目标数据库;
版本号获取模块,用于获取所述目标交易的第一交易版本号与所述目标数据库的第二交易版本号;
一致判断模块,用于判断所述第一交易版本号与所述第二交易版本号是否一致;
ID获取模块,用于当判断结果为所述第一交易版本号与所述第二交易版本号一致时,获取所述目标交易的分布式事务的ID;
ID校验模块,用于根据所述分布式事务的ID分别校验所述目标交易是否正确提交;
交易更新模块,用于当判断结果为所述目标交易为正确提交时,将所述目标交易更新至预设数据库。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至7中任意一项所述分布式事务的交易处理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述分布式事务的交易处理方法。
CN202010467818.XA 2020-05-28 2020-05-28 分布式事务的交易处理方法及相关设备 Active CN111694851B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010467818.XA CN111694851B (zh) 2020-05-28 2020-05-28 分布式事务的交易处理方法及相关设备
PCT/CN2020/099297 WO2021114628A1 (zh) 2020-05-28 2020-06-30 分布式事务的交易处理方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010467818.XA CN111694851B (zh) 2020-05-28 2020-05-28 分布式事务的交易处理方法及相关设备

Publications (2)

Publication Number Publication Date
CN111694851A CN111694851A (zh) 2020-09-22
CN111694851B true CN111694851B (zh) 2023-06-16

Family

ID=72478739

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010467818.XA Active CN111694851B (zh) 2020-05-28 2020-05-28 分布式事务的交易处理方法及相关设备

Country Status (2)

Country Link
CN (1) CN111694851B (zh)
WO (1) WO2021114628A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114217978B (zh) * 2022-02-21 2022-05-17 在线途游(北京)科技有限公司 一种基于乐观锁的数据库事务处理方法、系统、计算设备和计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452445A (en) * 1992-04-30 1995-09-19 Oracle Corporation Two-pass multi-version read consistency
CN102419764A (zh) * 2010-10-20 2012-04-18 微软公司 带有多版本化的数据库系统的分布式事务管理
KR20180079847A (ko) * 2017-01-03 2018-07-11 아주대학교산학협력단 블록체인과 dht를 이용한 p2p 거래 방법 및 장치
WO2019211225A1 (en) * 2018-05-01 2019-11-07 International Business Machines Corporation Blockchain implementing cross-chain transactions

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105955804B (zh) * 2016-04-22 2018-06-05 星环信息科技(上海)有限公司 一种处理分布式事务的方法与设备
US20190333029A1 (en) * 2018-04-26 2019-10-31 Dark Matter L.L.C. System, method, and computer program product for validating blockchain or distributed ledger transactions in a service requiring payment
CN109684880A (zh) * 2019-01-07 2019-04-26 江西金格科技股份有限公司 一种基于区块链的网页数据保护方法
CN110163609B (zh) * 2019-05-28 2024-02-27 深圳前海微众银行股份有限公司 一种区块链中数据处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452445A (en) * 1992-04-30 1995-09-19 Oracle Corporation Two-pass multi-version read consistency
CN102419764A (zh) * 2010-10-20 2012-04-18 微软公司 带有多版本化的数据库系统的分布式事务管理
KR20180079847A (ko) * 2017-01-03 2018-07-11 아주대학교산학협력단 블록체인과 dht를 이용한 p2p 거래 방법 및 장치
WO2019211225A1 (en) * 2018-05-01 2019-11-07 International Business Machines Corporation Blockchain implementing cross-chain transactions

Also Published As

Publication number Publication date
CN111694851A (zh) 2020-09-22
WO2021114628A1 (zh) 2021-06-17

Similar Documents

Publication Publication Date Title
US11444777B2 (en) Method and system for providing validated, auditable, and immutable inputs to a smart contract
JP7450678B2 (ja) アンロッキングトランザクションバイトコードの制約注入
EP3523744B1 (en) Method and system for identity and credential protection and verification via blockchain
US10572236B2 (en) System and method for updating or modifying an application without manual coding
EP3779760B1 (en) Blockchain-based data processing method and apparatus, and electronic device
US20140289243A1 (en) Method and system for centralized issue tracking
US20200082349A1 (en) Blockchain Timeclock System
CN105653579B (zh) 一种对分布式事务进行测试的方法和装置
US11003653B2 (en) Method and system for secure digital documentation of subjects using hash chains
CN111694851B (zh) 分布式事务的交易处理方法及相关设备
CN107169767B (zh) 交易冲正方法和系统
CN111694852B (zh) 基于分布式事务的数据处理方法、装置、终端及存储介质
US10417038B2 (en) Batched commit in distributed transactions
WO2021114627A1 (zh) 基于分布式事务的数据处理方法、装置、终端及存储介质
CN112286909A (zh) 执行状态确定方法、装置、服务器及存储介质
CN113672278B (zh) 微服务架构下的服务节点版本控制方法及装置
CN111737303A (zh) 数据查询方法、装置、计算机设备及存储介质
CN117291741A (zh) 账务数据处理方法、装置、设备、存储介质和程序产品
CN115578081A (zh) 代码流程可视化展示方法、装置、电子设备及存储介质
CN116483731A (zh) 函数功能测试方法、装置、设备及存储介质
CN114677215A (zh) 银行数据处理方法、装置、计算机设备和存储介质
Ibrahim et al. Mathematical Model and Algorithms for some Type of Concurrency Control Problems in Database Applications
WO2023080973A1 (en) Method and system for tamper-resistant event sourcing using a distributed ledger
WO2022268905A1 (en) Communication system for deleting a transaction dataset in a blockchain network
CN114862552A (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