CN113886502A - 一种数据库和区块链同步的数据处理方法及系统 - Google Patents
一种数据库和区块链同步的数据处理方法及系统 Download PDFInfo
- Publication number
- CN113886502A CN113886502A CN202111467809.1A CN202111467809A CN113886502A CN 113886502 A CN113886502 A CN 113886502A CN 202111467809 A CN202111467809 A CN 202111467809A CN 113886502 A CN113886502 A CN 113886502A
- Authority
- CN
- China
- Prior art keywords
- database
- block chain
- data operation
- target data
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 99
- 230000008569 process Effects 0.000 claims abstract description 68
- 238000007726 management method Methods 0.000 claims description 112
- 238000012545 processing Methods 0.000 claims description 13
- 238000013500 data storage Methods 0.000 claims description 5
- 230000002085 persistent effect Effects 0.000 claims description 4
- 230000009471 action Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供一种数据库和区块链同步的数据处理方法及系统。方法包括:事务管理节点根据客户端发起的事务组配置请求,为客户端配置目标事务组并反馈目标事务组的标识。数据库代理节点根据客户端发起的针对目标数据操作的数据库执行请求,创建数据库线程并挂起,并将数据库线程发送到事务管理节点以添加至目标事务组。区块链代理节点根据客户端发起的针对目标数据操作的区块链执行请求,创建区块链线程并挂起,并将区块链线程发送到事务管理节点以添加至目标事务组。之后,事务管理节点先通知区块链代理节点唤醒区块链进程以在区块链完成目标数据操作,再通知数据库代理节点唤醒数据库进程,以在数据库完成目标数据操作。
Description
技术领域
本文件属于信息处理技术领域,尤其涉及一种数据库和区块链同步的数据处理方法及系统。
背景技术
区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”、“全程留痕”、“可以追溯”、“公开透明”和“集体维护”等特征,在目前以得到了广泛的运用。
在配置区块链的业务系统中,通常需要先把业务数据先存储至数据库,然后再异步提交至区块链以进行留证。这就涉及到了数据库和区块链都有可能存在执行数据操作失败的风险。一旦其中一端或两端出现问题,则会导致业务数据无法在数据库和区块链维持同步。在海量业务数据并发的场景下,不管上一时刻的业务数据是为能够完成同步上传,系统都需要开始处理下一时刻的业务数据的同步上传。为此,如何对数据库和区块链进行数据同步的统一管理,是当前亟需解决的技术问题。
发明内容
本说明书实施例目的是提供一种数据库和区块链同步的数据处理方法及系统,能够将客户端发起的数据操作同步存证至数据库与区块链中,并保持数据库与区块链的数据一致性。
为了实现上述目的,本说明书实施例是这样实现的:
第一方面,提供了一种数据库和区块链同步的数据处理方法,包括:
事务管理节点根据客户端发起的事务组配置请求,为所述客户端配置目标事务组并反馈所述目标事务组的标识;
数据库代理节点根据客户端发起的针对目标数据操作的数据库执行请求,创建用于在数据库执行所述目标数据操作的数据库线程并挂起,并将所述数据库线程发送到所述事务管理节点以添加至所述目标事务组,其中,所述数据库执行请求携带有所述目标事务组的标识;以及,
区块链代理节点根据客户端发起的针对所述目标数据操作的区块链执行请求,创建用于在区块链执行所述目标数据操作的区块链线程并挂起,并将所述区块链线程发送到所述事务管理节点以添加至所述目标事务组,其中,所述区块请求携带有所述目标事务组的标识;
区块链代理节点根据事务管理节点发送的针对所述目标数据操作的区块链执行通知,唤醒所述区块链进程,以在所述区块链完成所述目标数据操作;
数据库代理节点根据事务管理节点发送的针对所述目标数据操作的数据库执行通知,唤醒数据库进程,以在所述区块链完成所述目标数据操作,其中,所述数据库执行通知是在所述区块链完成所述目标数据操作后发送的。
第二方面,提供了一种数据处理系统,包括:事务管理节点、数据库代理节点、区块链代理节点、数据库和区块链;其中,
事务管理节点根据客户端发起的事务组配置请求,为所述客户端配置目标事务组并反馈所述目标事务组的标识;
数据库代理节点根据客户端发起的针对目标数据操作的数据库执行请求,创建用于在所述数据库执行所述目标数据操作的数据库线程并挂起,并将所述数据库线程发送到所述事务管理节点以添加至所述目标事务组,其中,所述数据库执行请求携带有所述目标事务组的标识;以及,
区块链代理节点根据客户端发起的针对所述目标数据操作的区块链执行请求,创建用于在所述区块链执行所述目标数据操作的区块链线程并挂起,并将所述区块链线程发送到所述事务管理节点以添加至所述目标事务组,其中,所述区块请求携带有所述目标事务组的标识;
区块链代理节点根据事务管理节点发送的针对所述目标数据操作的区块链执行通知,唤醒所述区块链进程,以在所述区块链完成所述目标数据操作;
数据库代理节点根据事务管理节点发送的针对所述目标数据操作的数据库执行通知,唤醒数据库进程,以在所述区块链完成所述目标数据操作,其中,所述数据库执行通知是在所述区块链完成所述目标数据操作后发送的。
本说明书实施例的方案引入了事务管理节点、数据库代理节点和区块链代理节点。其中,客户端可以请求事务管理节点配置事务组,并以事务组为粒度,向数据库代理节点和区块链代理节点发起针对目标数据操作的执行请求。之后,数据库代理节点和区块链代理节点各自生成执行目标数据操作的线程后挂起,并将线程通知给事务管理节点以关联至目标事务组下。这样一来,事务管理节点能够以目标事务组为粒度,对数据库代理节点和区块链代理节点进行目标数据操作进行统一的管理,确保区块链和数据库能够维持数据同步。此外,基于上述设计,可以针对各个事务组并行完成数据操作,也就是说在同一时刻下,还可以处理其他针对数据库和区块链的数据操作需求,因此适用于高并发的业务场景。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通相关负责人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图;
图1为本说明书实施例提供的数据库和区块链同步的数据处理方法的第一种流程示意图;
图2为本说明书实施例提供的数据库和区块链同步的数据处理方法的第二种流程示意图;
图3为本说明书实施例提供数据处理系统的结构示意图;
图4为本说明书实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通相关负责人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
如前所述,在配置区块链的业务系统中,通常需要先把业务数据先存储至数据库,然后再异步提交至区块链以进行留证。这就涉及到了数据库和区块链都有可能存在执行数据操作失败的风险。一旦其中一端或两端出现问题,则会导致业务数据无法在数据库和区块链维持同步。在海量业务数据并发的场景下,不管上一时刻的业务数据是为能够完成同步上传,系统都需要开始处理下一时刻的业务数据的同步上传。为此,如何同时对数据库和区块链进行数据同步的统一管理,就显得尤为重要。
在此背景下,本文件旨在提出一种能够统一管理数据库和区块链进行数据同步的技术方案。
图1是本说明书的一个实施例数据库和区块链同步的数据处理方法的流程图,如图1所示的方法可以由下文对应的系统执行,具体包括如下步骤:
S102,事务管理节点根据客户端发起的事务组配置请求,为客户端配置目标事务组并反馈目标事务组的标识。
本发明实施例中,客户端需要在数据库和区块链发起数据操作时,可以向事务管理节点请求配置事务组,由事务管理节点分配事务组的标识。客户端以事务组为粒度,发起数据操作,也就是说,基于事务组的标识,可以匹配出,客户端在数据库和区块链所发起的数据操作。
其中,目标事务组可以是事务管理节点新创建的事务组,也可以是事务管理节点已创建的事务组。对于后者而言,已创建的事务组是由其他客户端请求事务管理节点创建的,在具体的应用场景中,可以基于业务流程为粒度,来配置事务组。如果客户端在接下来需要向数据库和区块链发起的数据操作属于参与其他客户端业务流程的环节,则可以向事务管理节点请求配置加入该其他客户端业务流程所对应的事务组。
S104,数据库代理节点根据客户端发起的针对目标数据操作的数据库执行请求,创建用于在数据库执行目标数据操作的数据库线程并挂起,并将数据库线程发送到事务管理节点以添加至目标事务组,其中,数据库执行请求携带有目标事务组的标识。
本发明实施例中,数据库代理节点负责代理客户端需要在数据库中进行的数据操作。这里所述的数据操作可以指数据添加、数据删除、数据替换等操作,本文不做具体限定。
客户端通过在数据库执行请求携带目标事务组的标识,以实现对目标数据操作的标注。这里,客户端可以通过事务管理节点将数据库执行请求间接发送至数据库代理节点,也可以是直接将数据库执行请求发送至数据库代理节。
数据库代理节点在接收到数据库执行请求后,即可创建与目标事务组的标识关联的用于执行目标数据操作的数据库线程,并在创建该数据库线程后挂起,以等待事务管理节点进行调度。
如果一个事务组下可以包含有多个数据操作,则客户端可以针对目标事务组下的每个数据操作,向数据库代理节点发送相对应的数据库执行请求。对应地,数据库代理节点针对目标事务组的每个数据操作创建并管理区块链线程。
数据库代理节点在创建目标数据操作的数据库线程后,即可将数据库线程通知给事务管理节点,由事务管理节点将数据库线程记录在目标事务组下。进一步地,如果需要事务管理节点针对目标事务组的每个数据操作的数据库线程进行管理,则数据库代理节点在创建目标数据操作的数据库线程后,还需要将目标数据操作的标识也通知给事务管理节点以进行关联。
S106,区块链代理节点根据客户端发起的针对目标数据操作的区块链执行请求,创建用于在区块链执行目标数据操作的区块链线程并挂起,并将区块链线程发送到事务管理节点以添加至目标事务组,其中,区块请求携带有目标事务组的标识。
同理,本发明实施例中,区块链代理节点负责代理客户端需要在区块链中进行的数据操作。
客户端通过在区块链执行请求中携带目标事务组的标识,以实现对目标数据操作的标注。这里,客户端可以通过事务管理节点将区块链执行请求间接发送至区块链代理节点,也可以是直接将数据库执行请求发送至区块链代理节。
区块链代理节点在接收区块链执行请求后,即可创建与目标事务组的标识关联的用于执行目标数据操作的区块链线程,并在创建该区块链线程后挂起,以等待事务管理节点进行调度。
此外,如果目标事务组下包含有多个数据操作,则客户端可以针对目标事务组的每个数据操作,向区块链代理节点发送相对应的区块链执行请求。对应地,区块链代理节点针对目标事务组的每个数据操作创建并管理区块链线程。
区块链代理节点在创建目标数据操作的区块链线程后,即可将区块链线程通知给事务管理节点,由事务管理节点将区块链线程记录在目标事务组下。进一步地,如果需要事务管理节点针对目标事务组的每个数据操作的区块链线程进行管理,则区块链代理节点在创建目标数据操作的数据库线程后,还需要将目标数据操作的标识也通知给事务管理节点以进行关联。
S108,区块链代理节点根据事务管理节点发送的针对目标数据操作的区块链执行通知,唤醒区块链进程,以在区块链完成目标数据操作。
本发明实施例中,事务管理节点可以在客户端指示需要执行目标事务组的目标数据操作后,向区块链代理节点发送针对目标数据操作的区块链执行通知。其中,区块链执行通知可以携带的目标事务组的标识,甚至是目标数据操作的标识,从而辅助区块链代理节点匹配出需要唤醒的区块链进程,以完成目标数据操作。
进一步地,区块链代理节点可以将区块链进程的执行消息发送至事务管理节点,以使事务管理节点能够了解目标数据操作是否在区块链中执行成功。这里以目标数据操作为业务数据上传为例,执行成功则表示目标数据操作所对应的业务数据上传至区块链,执行失败则表示目标数据操作所对应的业务数据未能上传至区块链。此外,对于事务管理节点而言,也可以基于区块链进程的执行消息,生成目标数据操作的电子日志,以便后续进行追溯。
此外,如果区块链代理节点在区块链中无法完成目标数据操作,则向事务管理节点发送针对目标数据操作的区块链执行失败消息。之后,事务管理节点基于区块链执行失败消息,向数据库代理节点发送针对数据库进程的回滚指令,从而使数据库代理节点退回客户端针对目标数据操作发起的数据库执行请求,从而与与区块链保持数据同步。
S110,数据库代理节点根据事务管理节点发送的针对目标数据操作的数据库执行通知,唤醒数据库进程,以在区块链完成目标数据操作,其中,数据库执行通知是在区块链完成目标数据操作后发送的。
应理解,考虑到数据上传区块链比较耗时(需要执行区块链的共识流程),因此发明实施例应先在区块链中执行目标数据操作,如果执行成功,则在数据库中执行目标数据操作。这样一来,可以提高数据同步的效率。也就是说,事务管理节点在区块链完成所述目标数据操作后,再通知数据库代理节点执行目标数据操作。同理,数据库执行通知可以携带的目标事务组的标识,甚至是目标数据操作的标识,从而辅助数据库代理节点匹配出需要唤醒的数据库进程,以完成目标数据操作。
进一步地,数据库代理节点也可以将数据库进程的执行消息发送至事务管理节点,以使事务管理节点能够了解目标数据操作是否在数据库中执行成功。此外,对于事务管理节点而言,也可以基于数据库进程的执行消息,生成目标数据操作的电子日志,以便后续进行追溯。
此外,事务管理节点在述数据库代理节点通过数据库进程完成目标数据操作后,还可以将目标数据操作对应的区块链进程和数据库进程从目标事务组中剔除,并等待目标事务组中添加新的数据操作的区块链进程和数据库进程。
如果客户端发不再发起针对目标事务组的数据操作后,还可以向事务管理节点发送针对目标事务组的结束消息(携带有目标事务组的标识)。对应地,事务管理节点基于目标事务组的结束消息,删除与目标事务组相关的持久化数据,以释放资源。
基于上述内容可以知道,本说明书实施例的方法引入了事务管理节点、数据库代理节点和区块链代理节点。其中,客户端可以请求事务管理节点配置事务组,并以事务组为粒度,向数据库代理节点和区块链代理节点发起针对目标数据操作的执行请求。之后,数据库代理节点和区块链代理节点各自生成执行目标数据操作的线程后挂起,并将线程通知给事务管理节点以关联至目标事务组下。这样一来,事务管理节点能够以目标事务组为粒度,对数据库代理节点和区块链代理节点进行目标数据操作进行统一的管理,确保区块链和数据库能够维持数据同步。此外,基于上述设计,可以针对各个事务组并行完成数据操作,也就是说在同一时刻下,还可以处理其他针对数据库和区块链的数据操作需求,因此适用于高并发的业务场景。
下面结合具体应用场景,对本说明书实施例的方法进行详细介绍。
本应用场景中,客户端在执行需要进行数据存证的业务流程时,发起在数据库和区块链进行数据存证所需要的目标数据操作。对应流程如下:
Step 1-2:客户端在执行业务流程时,发起事务组配置请求到事务管理节点,事务管理节点初始化生成一个目标事务组,将目标事务组的ID反馈至客户端。
Step 3-8:客户端在业务流程中需要对目标数据进行存证时,向数据库代理节点发送针对目标数据的存证操作请求,存证操作请求携带有目标事务组的ID和目标数据。对应地,数据库代理节点创建执行针对目标数据的存证操作的数据库线程,并将数据库线程关联目标事务组的ID后发送至事务管理节点,由事务管理节点将数据库线程添加至目标事务组。
Step 9-12: 客户端向区块链代理节点发送针对目标数据的存证操作请求,存证操作请求携带有目标事务组的ID和目标数据。对应地,数据库代理节点创建执行针对目标数据的存证操作的数据库线程,并将数据库线程关联目标事务组的ID后发送至事务管理节点,由事务管理节点将数据库线程添加至目标事务组。
Step 15-22: 客户端在执行业务流程完毕后,向事务管理节点发送事务执行请求,事务执行请求携带有目标事务组的ID。事务管理节点查询目标事务组的ID下的区块链线程,通知区块链代理节点唤醒该区块链线程,以在区块链上对目标数据进行存证。同时,区块链代理节点用区块链接口,对目标数据的存证事件进行监听,如果区块链存证成功,则通知事务管理节点完成区块链动作,事务管理节点收到区块链动作完成的消息后删除事务组中的区块链线程记录。事务管理节点收到区块链动作完成的消息后,查询目标事务组的ID下的数据库线程,通知数据库代理节点唤醒该数据库线程,以在数据库上对目标数据进行存证同时,数据库代理节点调用数据库接口,对目标数据的存证事件进行监听,如果在数据库存证成功,则通知事务管理节点完成数据库动作,事务管理节点收到数据库动完成的消息后删除目标事务组的持久化数据,比如关联目标事务组的ID下的区块链线程和数据库线程。同时,事务管理节点通知客户端,目标事务组执行完毕。
以上是以区块链存证目标数据成功为例说明的。如果区块链存证目标数据失败,那么step 19则需要通知数据库代理节点对数据库流程进行回滚操作,以此保证局数据库和区块链要么都存证成功,要么都存证失败,从而维持数据一致性。
以上应用场景是对本发明实施例方法的示例性介绍。应理解,在不脱离本文上述原理基础之上,还可以进行适当的变化,这些变化也应视为本发明实施例的保护范围。
对于图1所示的方法,本说明书实施例还提供一种数据处理系统。图3是本说明书实施例数据处理系统300的结构示意图,该包括:事务管理节点310、数据库代理节点320、区块链代理节点330、数据库340和区块链350;其中,
事务管理节点根据客户端发起的事务组配置请求,为所述客户端配置目标事务组并反馈所述目标事务组的标识;
数据库代理节点根据客户端发起的针对目标数据操作的数据库执行请求,创建用于在所述数据库执行所述目标数据操作的数据库线程并挂起,并将所述数据库线程发送到所述事务管理节点以添加至所述目标事务组,其中,所述数据库执行请求携带有所述目标事务组的标识;以及,
区块链代理节点根据客户端发起的针对所述目标数据操作的区块链执行请求,创建用于在所述区块链执行所述目标数据操作的区块链线程并挂起,并将所述区块链线程发送到所述事务管理节点以添加至所述目标事务组,其中,所述区块请求携带有所述目标事务组的标识;
区块链代理节点根据事务管理节点发送的针对所述目标数据操作的区块链执行通知,唤醒所述区块链进程,以在所述区块链完成所述目标数据操作;
数据库代理节点根据事务管理节点发送的针对所述目标数据操作的数据库执行通知,唤醒所述数据库进程,以在所述区块链完成所述目标数据操作,其中,所述数据库执行通知是在所述区块链完成所述目标数据操作后发送的。
本说明书实施例的系统引入了事务管理节点、数据库代理节点和区块链代理节点。其中,客户端可以请求事务管理节点配置事务组,并以事务组为粒度,向数据库代理节点和区块链代理节点发起针对目标数据操作的执行请求。之后,数据库代理节点和区块链代理节点各自生成执行目标数据操作的线程后挂起,并将线程通知给事务管理节点以关联至目标事务组下。这样一来,事务管理节点能够以目标事务组为粒度,对数据库代理节点和区块链代理节点进行目标数据操作进行统一的管理,确保区块链和数据库能够维持数据同步。此外,基于上述设计,可以针对各个事务组并行完成数据操作,也就是说在同一时刻下,还可以处理其他针对数据库和区块链的数据操作需求,因此适用于高并发的业务场景。
可选地,所述区块链代理节点在所述区块链中无法完成所述目标数据操作时,向所述事务管理节点发送针对所述目标数据操作的区块链执行失败消息;所述事务管理节点基于所述区块链执行失败消息,向所述数据库代理节点发送针对所述数据库进程的回滚指令;所述数据库代理节点基于接收到的所述回滚指令,对挂起的所述数据库进程进行回滚操作。
可选地,所述区块链执行请求是所述客户端通过所述事务管理节点发送至所述区块链代理节点的,和/或,所述数据库执行请求是所述客户端通过所述事务管理节点发送至所述数据库代理节点的。
可选地,所述数据库执行请求带有所述目标数据操作的标识,所述事务管理节点基于所述数据库执行请求中的所述目标数据操作的标识,将所述数据库进程与所述目标数据操作关联。
可选地,所述区块链执行请求带有所述目标数据操作的标识,所述事务管理节点基于所述区块链执行请求中的所述目标数据操作的标识,将所述区块链进程与所述目标数据操作关联。
可选地,所述事务管理节点在所述数据库代理节点通过所述数据库进程完成所述目标数据操作后,将所述区块链进程和所述数据库进程从所述目标事务组中剔除。
可选地,所述事务组配置请求是所述客户端执行需要进行数据存证的业务流程时所发起的,所述目标数据操作为数据存证操作。
可选地,所述事务管理节点根据客户端发送针对所述目标事务组的结束消息,删除与所述目标事务组相关的持久化数据,其中,所述结束消息携带有所述目标事务组的标识。
可选地,所述事务管理节点向所述区块链代理节点获取所述区块链进程对应的执行信息,和/或,向所述数据库代理节点获取所述数据库进程对应的执行信息;所述事务管理节点并基于所述区块链进程对应的执行信息,和/或,所述数据库进程对应的执行信息,生成所述目标数据操作的电子日志。
显然,本说明书实施例的数据处理系统可以作为上述图1所示方法的执行主体,因此能够实现该方法在图1所实现的步骤和功能。由于原理相同,本文不再赘述。
图4是本说明书的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
其中,处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据处理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
根据客户端发起的事务组配置请求,为所述客户端配置目标事务组并反馈所述目标事务组的标识。
根据客户端发起的针对目标数据操作的数据库执行请求,创建用于在数据库执行所述目标数据操作的数据库线程并挂起,并将所述数据库线程添加至所述目标事务组,其中,所述数据库执行请求携带有所述目标事务组的标识。以及,
根据客户端发起的针对所述目标数据操作的区块链执行请求,创建用于在区块链执行所述目标数据操作的区块链线程并挂起,并将所述区块链线程添加至所述目标事务组,其中,所述区块请求携带有所述目标事务组的标识。
根据所述目标数据操作的区块链执行通知,唤醒所述区块链进程,以在所述区块链完成所述目标数据操作。
根据针对所述目标数据操作的数据库执行通知,唤醒所述数据库进程,以在所述区块链完成所述目标数据操作,其中,所述数据库执行通知是在所述区块链完成所述目标数据操作后发送的。
上述如本说明书图1所示实施例揭示的数据处理方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
应理解,本说明书实施例的电子设备可以实现上述取证方法在图1和图2所示的实施例的功能。由于原理相同,本文不再赘述。
当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
此外,本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令。
其中,上述该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下步骤:
根据客户端发起的事务组配置请求,为所述客户端配置目标事务组并反馈所述目标事务组的标识。
根据客户端发起的针对目标数据操作的数据库执行请求,创建用于在数据库执行所述目标数据操作的数据库线程并挂起,并将所述数据库线程添加至所述目标事务组,其中,所述数据库执行请求携带有所述目标事务组的标识。以及,
根据客户端发起的针对所述目标数据操作的区块链执行请求,创建用于在区块链执行所述目标数据操作的区块链线程并挂起,并将所述区块链线程添加至所述目标事务组,其中,所述区块请求携带有所述目标事务组的标识。
根据所述目标数据操作的区块链执行通知,唤醒所述区块链进程,以在所述区块链完成所述目标数据操作。
根据针对所述目标数据操作的数据库执行通知,唤醒所述数据库进程,以在所述区块链完成所述目标数据操作,其中,所述数据库执行通知是在所述区块链完成所述目标数据操作后发送的。
本领域相关负责人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域相关负责人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。此外,本领域普通相关负责人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
Claims (10)
1.一种数据库和区块链同步的数据处理方法,包括:
事务管理节点根据客户端发起的事务组配置请求,为所述客户端配置目标事务组并反馈所述目标事务组的标识;
数据库代理节点根据客户端发起的针对目标数据操作的数据库执行请求,创建用于在数据库执行所述目标数据操作的数据库线程并挂起,并将所述数据库线程发送到所述事务管理节点以添加至所述目标事务组,其中,所述数据库执行请求携带有所述目标事务组的标识;以及,
区块链代理节点根据客户端发起的针对所述目标数据操作的区块链执行请求,创建用于在区块链执行所述目标数据操作的区块链线程并挂起,并将所述区块链线程发送到所述事务管理节点以添加至所述目标事务组,其中,所述区块请求携带有所述目标事务组的标识;
所述区块链代理节点根据事务管理节点发送的针对所述目标数据操作的区块链执行通知,唤醒所述区块链进程,以在所述区块链完成所述目标数据操作;
所述数据库代理节点根据事务管理节点发送的针对所述目标数据操作的数据库执行通知,唤醒数据库进程,以在所述区块链完成所述目标数据操作,其中,所述数据库执行通知是在所述区块链完成所述目标数据操作后发送的。
2.根据权利要求1所述的方法,还包括:
所述区块链代理节点在所述区块链中无法完成所述目标数据操作时,向所述事务管理节点发送针对所述目标数据操作的区块链执行失败消息;
所述事务管理节点基于所述区块链执行失败消息,向所述数据库代理节点发送针对所述数据库进程的回滚指令;
所述数据库代理节点基于接收到的所述回滚指令,对挂起的所述数据库进程进行回滚操作。
3.根据权利要求1所述的方法,还包括:
所述区块链执行请求是所述客户端通过所述事务管理节点发送至所述区块链代理节点的,和/或,所述数据库执行请求是所述客户端通过所述事务管理节点发送至所述数据库代理节点的。
4.根据权利要求1所述的方法,还包括:
所述数据库执行请求带有所述目标数据操作的标识,所述事务管理节点基于所述数据库执行请求中的所述目标数据操作的标识,将所述数据库进程与所述目标数据操作关联。
5.根据权利要求1所述的方法,还包括:
所述区块链执行请求带有所述目标数据操作的标识,所述事务管理节点基于所述区块链执行请求中的所述目标数据操作的标识,将所述区块链进程与所述目标数据操作关联。
6.根据权利要求1所述的方法,还包括:
所述事务管理节点在所述数据库代理节点通过所述数据库进程完成所述目标数据操作后,将所述区块链进程和所述数据库进程从所述目标事务组中剔除。
7.根据权利要求1所述的方法,还包括:
所述事务组配置请求是所述客户端执行需要进行数据存证的业务流程时所发起的,所述目标数据操作为所述客户端执行业务流程时所发起的数据存证操作。
8.根据权利要求6所述的方法,还包括:
所述事务管理节点根据客户端发送针对所述目标事务组的结束消息,删除与所述目标事务组相关的持久化数据,其中,所述结束消息携带有所述目标事务组的标识。
9.根据权利要求1所述的方法,还包括:
所述事务管理节点向所述区块链代理节点获取所述区块链进程对应的执行信息,和/或,向所述数据库代理节点获取所述数据库进程对应的执行信息;
所述事务管理节点并基于所述区块链进程对应的执行信息,和/或,所述数据库进程对应的执行信息,生成所述目标数据操作的电子日志。
10.一种数据处理系统,包括:事务管理节点、数据库代理节点、区块链代理节点、数据库和区块链;其中,
事务管理节点根据客户端发起的事务组配置请求,为所述客户端配置目标事务组并反馈所述目标事务组的标识;
数据库代理节点根据客户端发起的针对目标数据操作的数据库执行请求,创建用于在所述数据库执行所述目标数据操作的数据库线程并挂起,并将所述数据库线程发送到所述事务管理节点以添加至所述目标事务组,其中,所述数据库执行请求携带有所述目标事务组的标识;以及,
区块链代理节点根据客户端发起的针对所述目标数据操作的区块链执行请求,创建用于在所述区块链执行所述目标数据操作的区块链线程并挂起,并将所述区块链线程发送到所述事务管理节点以添加至所述目标事务组,其中,所述区块请求携带有所述目标事务组的标识;
区块链代理节点根据事务管理节点发送的针对所述目标数据操作的区块链执行通知,唤醒所述区块链进程,以在所述区块链完成所述目标数据操作;
数据库代理节点根据事务管理节点发送的针对所述目标数据操作的数据库执行通知,唤醒数据库进程,以在所述区块链完成所述目标数据操作,其中,所述数据库执行通知是在所述区块链完成所述目标数据操作后发送的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111467809.1A CN113886502B (zh) | 2021-12-03 | 2021-12-03 | 一种数据库和区块链同步的数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111467809.1A CN113886502B (zh) | 2021-12-03 | 2021-12-03 | 一种数据库和区块链同步的数据处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113886502A true CN113886502A (zh) | 2022-01-04 |
CN113886502B CN113886502B (zh) | 2022-04-22 |
Family
ID=79016300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111467809.1A Active CN113886502B (zh) | 2021-12-03 | 2021-12-03 | 一种数据库和区块链同步的数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113886502B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860807A (zh) * | 2022-05-11 | 2022-08-05 | 金蝶软件(中国)有限公司 | 区块链的数据查询方法、装置、设备和存储介质 |
CN118296073A (zh) * | 2024-06-05 | 2024-07-05 | 恒生电子股份有限公司 | 事务执行方法、装置及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086325A (zh) * | 2018-06-29 | 2018-12-25 | 阿里巴巴集团控股有限公司 | 基于区块链的数据处理方法和装置 |
CN111680105A (zh) * | 2020-06-15 | 2020-09-18 | 浙江创邻科技有限公司 | 基于区块链的分布式关系型数据库的管理方法及系统 |
CN112434112A (zh) * | 2020-12-04 | 2021-03-02 | 中国工商银行股份有限公司 | 将区块链数据同步存储到数据库的方法及装置 |
CN113268471A (zh) * | 2021-06-24 | 2021-08-17 | 京东科技控股股份有限公司 | 处理分布式事务的方法、代理连接池、系统、设备及介质 |
CN113396407A (zh) * | 2018-12-04 | 2021-09-14 | 泽乌科技公司 | 用于利用区块链技术扩充数据库应用的系统和方法 |
-
2021
- 2021-12-03 CN CN202111467809.1A patent/CN113886502B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086325A (zh) * | 2018-06-29 | 2018-12-25 | 阿里巴巴集团控股有限公司 | 基于区块链的数据处理方法和装置 |
CN113396407A (zh) * | 2018-12-04 | 2021-09-14 | 泽乌科技公司 | 用于利用区块链技术扩充数据库应用的系统和方法 |
CN111680105A (zh) * | 2020-06-15 | 2020-09-18 | 浙江创邻科技有限公司 | 基于区块链的分布式关系型数据库的管理方法及系统 |
CN112434112A (zh) * | 2020-12-04 | 2021-03-02 | 中国工商银行股份有限公司 | 将区块链数据同步存储到数据库的方法及装置 |
CN113268471A (zh) * | 2021-06-24 | 2021-08-17 | 京东科技控股股份有限公司 | 处理分布式事务的方法、代理连接池、系统、设备及介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860807A (zh) * | 2022-05-11 | 2022-08-05 | 金蝶软件(中国)有限公司 | 区块链的数据查询方法、装置、设备和存储介质 |
CN118296073A (zh) * | 2024-06-05 | 2024-07-05 | 恒生电子股份有限公司 | 事务执行方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113886502B (zh) | 2022-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113886502B (zh) | 一种数据库和区块链同步的数据处理方法及系统 | |
CN110532247B (zh) | 数据迁移方法和数据迁移系统 | |
WO2020024405A1 (zh) | 基于分布式协调的测试方法、装置、服务器及存储介质 | |
CN109101341B (zh) | 分布式锁的分配方法及设备 | |
CN109388481B (zh) | 一种事务信息的传输方法、系统、装置、计算设备和介质 | |
US9864772B2 (en) | Log-shipping data replication with early log record fetching | |
JPS61500751A (ja) | 多重プロセシングシステムのプログラムプロセスを停止するための方法 | |
WO2021104178A1 (zh) | 一种动态消息推送方法、系统和汽车诊断服务器 | |
US10075326B2 (en) | Monitoring file system operations between a client computer and a file server | |
US20210314179A1 (en) | Methods and consensus nodes for block generation | |
CN109697112B (zh) | 分布式集约化一站式作业系统和实现方法 | |
CN110895488B (zh) | 任务调度方法及装置 | |
WO2014101487A1 (zh) | 一种数据采集方法及装置 | |
US9367298B1 (en) | Batch configuration mode for configuring network devices | |
CN111371599A (zh) | 一种基于etcd的集群容灾管理系统 | |
CN107066339A (zh) | 分布式作业管理器及分布式作业管理方法 | |
CN113064744A (zh) | 任务处理方法、装置、计算机可读介质及电子设备 | |
CN113760976B (zh) | 业务的处理方法、装置、设备及存储介质 | |
CN110895483A (zh) | 任务恢复方法及装置 | |
CN109257396B (zh) | 一种分布式锁调度方法及装置 | |
CN114090198A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN113919821A (zh) | 业务的流转方法、装置、计算机设备和存储介质 | |
WO2024139011A1 (zh) | 信息处理方法 | |
CN112486468A (zh) | 基于spark内核的任务执行方法、系统和计算机设备 | |
CN116319758A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240920 Address after: Room 803, floor 8, No. 618 Wai Road, Huangpu District, Shanghai 200010 Patentee after: Ant blockchain Technology (Shanghai) Co.,Ltd. Country or region after: China Address before: 310000 801-11 section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province Patentee before: Alipay (Hangzhou) Information Technology Co.,Ltd. Country or region before: China |