CN111639090A - 一种数据抽取过程中的数据一致性控制方法及系统 - Google Patents
一种数据抽取过程中的数据一致性控制方法及系统 Download PDFInfo
- Publication number
- CN111639090A CN111639090A CN202010494709.7A CN202010494709A CN111639090A CN 111639090 A CN111639090 A CN 111639090A CN 202010494709 A CN202010494709 A CN 202010494709A CN 111639090 A CN111639090 A CN 111639090A
- Authority
- CN
- China
- Prior art keywords
- thread
- task
- module
- transactionid
- data
- 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
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据抽取过程中的数据一致性控制方法及系统,属于云服务领域;所述的方法具体步骤如下:S1将数据排序形成任务分片;S2将任务分片交给线程池并发执行;S3将执行结果发送至事务控制线程;S4事务控制线程根据接收到的任务线程发送对应指令;S5任务线程对数据进行全局递交或回滚操作;本发明在保证ETL抽取任务高度并行化的前提下,全局控制了分片任务的数据库事务,保证了多个数据库事务一起提交或者一起回滚,从而保证了数据抽取过程中的全局数据一致性。降低了数据上云的实施复杂度和施工周期。
Description
技术领域
本发明公开一种数据抽取过程中的数据一致性控制方法及系统,涉及云服务技术领域;具体涉及数据上云工具领域。
背景技术
随着云计算技术的发展,更多的应用和数据迁移到云上,应用往往是无状态的,迁移到云上相对较容易,而数据沉积在业务的本地数据库中,业务上云的同时,也需要将这些数据库和数据迁移到云上,因为往往数据量较大,迁移过程中存在失败的风险,必须为失败的情况下确定回滚策略,才能达到数据的一致性,故现发明一种数据抽取过程中的数据一致性控制方法及系统以解决上述问题。
发明内容
本发明针对现有技术的问题,提供一种数据抽取过程中的数据一致性控制方法及系统,所采用的技术方案为:
一种数据抽取过程中的数据一致性控制方法,所述的方法具体步骤如下:
S1将数据排序形成任务分片;
S2将任务分片交给线程池并发执行;
S3将执行结果发送至事务控制线程;
S4事务控制线程根据接收到的任务线程发送对应指令;
S5任务线程对数据进行全局递交或回滚操作。
所述S2将任务分片交给线程池并发执行的具体步骤包括:
S201目标库启动数据库事务,获取一个事务编号TransactionID;
S202发送Start(TransactionID)消息将事务编号交由事务控制线程管理。
所述S3将执行结果发送至事务控制线程的具体步骤包括:
S301当执行任务分片的线程任务执行完毕后,向事务控制线程发送ReadytoCommit(TransactionID)消息;
S311当执行任务分片的线程任务执行失败后,向事务控制线程发送Fail(TransactionID)消息;
S302等待事务控制线程返回控制指令。
所述S4事务控制线程根据根据接收到的任务线程发送对应指令具体步骤包括:
S410事务控制线程对接收到的任务线程消息进行确认;
S411当接收到的消息为所有任务线程递交的ReadytoCommit(TransactionID)消息时,事务控制线程向任务线程发送Commit指令;
S420当接收到的消息为某个任务线程任务递交的Fail(TransactionID)消息时,事务控制线程向任务线程发送发送Rollback(TransactionID)动作;
S421事务控制线程等待某个任务线程的Fail(TransactionID)消息或ReadytoCommit(TransactionID)消息超时时,事务控制线程向任务线程发送Rollback指令;
S423通知所有任务线程执行Rollback(TransactionID)动作。
所述S5任务线程对数据进行全局递交或回滚操作的具体步骤包括:
S501接收到Commit指令的控制线程控制递交相应分片的数据;
S511接收到Rollback(TransactionID)动作的控制线程控制回滚相应分片的数据。
一种数据抽取过程中的数据一致性控制系统,所述的系统包括排序模块、分发模块、反馈模块、指令模块和控制模块:
排序模块:将数据排序形成任务分片;
分发模块:将任务分片交给线程池并发执行;
反馈模块:将执行结果发送至事务控制线程;
指令模块:事务控制线程根据接收到的任务线程发送对应指令;
控制模块:任务线程对数据进行全局递交或回滚操作。
所述分发模块具体包括编号模块和发起模块:
编号模块:目标库启动数据库事务,获取一个事务编号TransactionID;
发起模块:发送Start(TransactionID)消息将事务编号交由事务控制线程管理。
所述反馈模块具体包括成功反馈模块、失败反馈模块和等待模块:
成功反馈模块:当执行任务分片的线程任务执行完毕后,向事务控制线程发送ReadytoCommit(TransactionID)消息;
失败反馈模块:当执行任务分片的线程任务执行失败后,向事务控制线程发送Fail(TransactionID)消息;
等待模块:等待事务控制线程返回控制指令。
所述指令模块具体包括确认模块、多任务处理模块、单任务处理模块、超时处理模块和执行模块:
确认模块:事务控制线程对接收到的任务线程消息进行确认;
多任务执行模块:当接收到的消息为所有任务线程递交的ReadytoCommit(TransactionID)消息时,事务控制线程向任务线程发送Commit指令;
单任务执行模块:当接收到的消息为某个任务线程任务递交的Fail(TransactionID)消息时,事务控制线程向任务线程发送发送Rollback(TransactionID)动作;
超时处理模块:事务控制线程等待某个任务线程的Fail(TransactionID)消息或ReadytoCommit(TransactionID)消息超时时,事务控制线程向任务线程发送Rollback指令;
执行模块:通知所有任务线程执行Rollback(TransactionID)动作。
所述控制模块具体包括递交模块和回滚模块:
递交模块:接收到Commit指令的控制线程控制递交相应分片的数据;
回滚模块:接收到Rollback(TransactionID)动作的控制线程控制回滚相应分片的数据。
本发明的有益效果为:本发明在保证ETL抽取任务高度并行化的前提下,在ETL工具中增加事务控制功能,全局控制了分片任务的数据库事务,在保证性能的前提下,当数据抽取失败时可回滚,数据抽取成功时可整体提交,保证了多个数据库事务一起提交或者一起回滚,从而保证了数据抽取过程中的全局数据一致性,降低了数据上云的实施复杂度和施工周期,在保证数据抽取速度的前提下,可回滚、可监控,实现了抽取的数据一致性。实现数据抽取过程中抽取速度和一致性的平衡。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法的流程图;图2是本发明系统的结构示意图;图3是实施例一的示意图;图4是实施例二的示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
实施例一:
一种数据抽取过程中的数据一致性控制方法,所述的方法具体步骤如下:
S1将数据排序形成任务分片;
S2将任务分片交给线程池并发执行;
S3将执行结果发送至事务控制线程;
S4事务控制线程根据接收到的任务线程发送对应指令;
S5任务线程对数据进行全局递交或回滚操作;
按照本发明方法步骤操作时,先按照S1将抽取的数据按照一定顺序进行排序,形成一定的任务分片,然后通过S2将这些任务分片交给线程池如图3所示并发执行,按照S3将执行结果发送至事务控制线程,事务控制线程通过S4根据接收到的任务线程发送出对应的指令,最后任务线程根据执行对按照S5对全局进行递交或回滚操作;
本发明在保证ETL抽取任务高度并行化的前提下,全局控制了分片任务的数据库事务,保证了多个数据库事务一起提交或者一起回滚,从而保证了数据抽取过程中的全局数据一致性。降低了数据上云的实施复杂度和施工周期;
进一步的,所述S2将任务分片交给线程池并发执行的具体步骤包括:
S201目标库启动数据库事务,获取一个事务编号TransactionID;
S202发送Start(TransactionID)消息将事务编号交由事务控制线程管理;
在线程执行之初,按照S201在目标库启动一个数据库事务,取得一个事务编号TransactionID,一个事务编号TransactionID对应多个任务分片,然后通过事务控制线程按照S202发送一个Start(TransactionID)消息,将这个事务编号交由事务管理线程管理;
进一步的,所述S3将执行结果发送至事务控制线程的具体步骤包括:
S301当执行任务分片的线程任务执行完毕后,向事务控制线程发送ReadytoCommit(TransactionID)消息;
S302等待事务控制线程返回控制指令;
进一步的,所述S4事务控制线程根据根据接收到的任务线程发送对应指令具体步骤包括:
S410事务控制线程对接收到的任务线程消息进行确认;
S411当接收到的消息为所有任务线程递交的ReadytoCommit(TransactionID)消息时,事务控制线程向任务线程发送Commit指令;
当某个执行任务分片的线程执行完任务后,会通知事务控制线程,向事务控制线程发送ReadytoCommit(TransactionID)消息。并等待事务控制线程返回控制指令;
再进一步的,所述S5任务线程对数据进行全局递交或回滚操作的具体步骤包括:
S501接收到Commit指令的控制线程控制递交相应分片的数据;
S511接收到Rollback(TransactionID)动作的控制线程控制回滚相应分片的数据;
当事务控制线程收到所有的任务线程提交的ReadytoCommit(TransactionID)消息后,会向全部的任务线程发送Commit指令,通知所有任务线程执行Commit(TransactionID)动作,提交相应分片的数据。
实施例二:
一种数据抽取过程中的数据一致性控制方法,所述的方法具体步骤如下:
S1将数据排序形成任务分片;
S2将任务分片交给线程池并发执行;
S3将执行结果发送至事务控制线程;
S4事务控制线程根据接收到的任务线程发送对应指令;
S5任务线程对数据进行全局递交或回滚操作;
按照本发明方法步骤操作时,先按照S1将抽取的数据按照一定顺序进行排序,形成一定的任务分片,然后通过S2将这些任务分片交给线程池如图4所示并发执行,按照S3将执行结果发送至事务控制线程,事务控制线程通过S4根据接收到的任务线程发送出对应的指令,最后任务线程根据执行对按照S5对全局进行递交或回滚操作;
本发明在保证ETL抽取任务高度并行化的前提下,全局控制了分片任务的数据库事务,保证了多个数据库事务一起提交或者一起回滚,从而保证了数据抽取过程中的全局数据一致性。降低了数据上云的实施复杂度和施工周期;
进一步的,所述S2将任务分片交给线程池并发执行的具体步骤包括:
S201目标库启动数据库事务,获取一个事务编号TransactionID;
S202发送Start(TransactionID)消息将事务编号交由事务控制线程管理;
在线程执行之初,按照S201在目标库启动一个数据库事务,取得一个事务编号TransactionID,一个事务编号TransactionID对应多个任务分片,然后通过事务控制线程按照S202发送一个Start(TransactionID)消息,将这个事务编号交由事务管理线程管理;
进一步的,所述S3将执行结果发送至事务控制线程的具体步骤包括:
S311当执行任务分片的线程任务执行失败后,向事务控制线程发送Fail(TransactionID)消息;
S302等待事务控制线程返回控制指令;
当某个执行任务分片的线程按照S311执行任务失败后,会通知事务控制线程,向事务控制线程发送Fail(TransactionID)消息。并按照S302等待事务控制线程返回控制指令;
进一步的,所述S4事务控制线程根据根据接收到的任务线程发送对应指令具体步骤包括:
S410事务控制线程对接收到的任务线程消息进行确认;
S420当接收到的消息为某个任务线程任务递交的Fail(TransactionID)消息时,事务控制线程向任务线程发送发送Rollback(TransactionID)动作;
S421事务控制线程等待某个任务线程的Fail(TransactionID)消息或ReadytoCommit(TransactionID)消息超时时,事务控制线程向任务线程发送Rollback指令;
S423通知所有任务线程执行Rollback(TransactionID)动作;
当事务控制线程等待某个任务线程的Fail(TransactionID)消息或ReadytoCommit(TransactionID)消息超时后,会向全部的任务线程发送Rollback指令,通知所有任务线程执行Rollback(TransactionID)动作,回滚相应分片的数据;
再进一步的,所述S5任务线程对数据进行全局递交或回滚操作的具体步骤包括:
S511接收到Rollback(TransactionID)动作的控制线程控制回滚相应分片的数据;
当事务控制线程等待某个任务线程的Fail(TransactionID)消息或ReadytoCommit(TransactionID)消息超时后,会向全部的任务线程发送Rollback指令,通知所有任务线程执行Rollback(TransactionID)动作,回滚相应分片的数据。
实施例三:
一种数据抽取过程中的数据一致性控制系统,所述的系统包括排序模块、分发模块、反馈模块、指令模块和控制模块:
排序模块:将数据排序形成任务分片;
分发模块:将任务分片交给线程池并发执行;
反馈模块:将执行结果发送至事务控制线程;
指令模块:事务控制线程根据接收到的任务线程发送对应指令;
控制模块:任务线程对数据进行全局递交或回滚操作;
当本发明系统工作时,利用排序模块将抽取的数据按照一定顺序进行排序,形成一定的任务分片,然后通过分发模块将这些任务分片交给线程池所示并发执行,按照反馈模块将执行结果发送至事务控制线程,事务控制线程通过指令模块根据接收到的任务线程发送出对应的指令,最后任务线程根据执行对按照控制模块行递交或回滚操作;
本发明在保证ETL抽取任务高度并行化的前提下,全局控制了分片任务的数据库事务,保证了多个数据库事务一起提交或者一起回滚,从而保证了数据抽取过程中的全局数据一致性。降低了数据上云的实施复杂度和施工周期;
所述分发模块具体包括编号模块和发起模块:
编号模块:目标库启动数据库事务,获取一个事务编号TransactionID;
发起模块:发送Start(TransactionID)消息将事务编号交由事务控制线程管理;
线程执行之初,按照编号模块在目标库启动一个数据库事务,取得一个事务编号TransactionID,一个事务编号TransactionID对应多个任务分片,然后通过事务控制线程按利用发起模块发送一个Start(TransactionID)消息,将这个事务编号交由事务管理线程管理;
所述反馈模块具体包括成功反馈模块和等待模块:
成功反馈模块:当执行任务分片的线程任务执行完毕后,向事务控制线程发送ReadytoCommit(TransactionID)消息;
等待模块:等待事务控制线程返回控制指令。
所述指令模块具体包括确认模块和多任务处理模块:
确认模块:事务控制线程对接收到的任务线程消息进行确认;
多任务执行模块:当接收到的消息为所有任务线程递交的ReadytoCommit(TransactionID)消息时,事务控制线程向任务线程发送Commit指令;
当某个执行任务分片的线程执行完任务后,会通知事务控制线程,向事务控制线程发送ReadytoCommit(TransactionID)消息。并等待事务控制线程返回控制指令;
所述控制模块具体包括递交模块和回滚模块:
递交模块:接收到Commit指令的控制线程控制递交相应分片的数据;
回滚模块:接收到Rollback(TransactionID)动作的控制线程控制回滚相应分片的数据;
当事务控制线程收到所有的任务线程提交的ReadytoCommit(TransactionID)消息后,会向全部的任务线程发送Commit指令,通知所有任务线程执行Commit(TransactionID)动作,提交相应分片的数据。
实施例四;
一种数据抽取过程中的数据一致性控制系统,所述的系统包括排序模块、分发模块、反馈模块、指令模块和控制模块:
排序模块:将数据排序形成任务分片;
分发模块:将任务分片交给线程池并发执行;
反馈模块:将执行结果发送至事务控制线程;
指令模块:事务控制线程根据接收到的任务线程发送对应指令;
控制模块:任务线程对数据进行全局递交或回滚操作;
当本发明系统工作时,利用排序模块将抽取的数据按照一定顺序进行排序,形成一定的任务分片,然后通过分发模块将这些任务分片交给线程池所示并发执行,按照反馈模块将执行结果发送至事务控制线程,事务控制线程通过指令模块根据接收到的任务线程发送出对应的指令,最后任务线程根据执行对按照控制模块行递交或回滚操作;
本发明在保证ETL抽取任务高度并行化的前提下,全局控制了分片任务的数据库事务,保证了多个数据库事务一起提交或者一起回滚,从而保证了数据抽取过程中的全局数据一致性。降低了数据上云的实施复杂度和施工周期;
进一步的,所述分发模块具体包括编号模块和发起模块:
编号模块:目标库启动数据库事务,获取一个事务编号TransactionID;
发起模块:发送Start(TransactionID)消息将事务编号交由事务控制线程管理;
线程执行之初,按照编号模块在目标库启动一个数据库事务,取得一个事务编号TransactionID,一个事务编号TransactionID对应多个任务分片,然后通过事务控制线程按利用发起模块发送一个Start(TransactionID)消息,将这个事务编号交由事务管理线程管理;
进一步的,所述反馈模块具体包括失败反馈模块和等待模块:
失败反馈模块:当执行任务分片的线程任务执行失败后,向事务控制线程发送Fail(TransactionID)消息;
等待模块:等待事务控制线程返回控制指令。
当某个执行任务分片的线程按照失败反馈模块执行任务失败后,会通知事务控制线程,向事务控制线程发送Fail(TransactionID)消息。并按照等待模块等待事务控制线程返回控制指令;
进一步的,所述指令模块具体包括确认模块、单任务处理模块、超时处理模块和执行模块:
确认模块:事务控制线程对接收到的任务线程消息进行确认;
单任务执行模块:当接收到的消息为某个任务线程任务递交的Fail(TransactionID)消息时,事务控制线程向任务线程发送发送Rollback(TransactionID)动作;
超时处理模块:事务控制线程等待某个任务线程的Fail(TransactionID)消息或ReadytoCommit(TransactionID)消息超时时,事务控制线程向任务线程发送Rollback指令;
执行模块:通知所有任务线程执行Rollback(TransactionID)动作;
当事务控制线程等待某个任务线程的Fail(TransactionID)消息或ReadytoCommit(TransactionID)消息超时后,会向全部的任务线程发送Rollback指令,通知所有任务线程执行Rollback(TransactionID)动作,回滚相应分片的数据;
再进一步的,所述控制模块具体还包括回滚模块:
回滚模块:Rollback(TransactionID)动作的控制线程控制回滚相应分片的数据;
当事务控制线程等待某个任务线程的Fail(TransactionID)消息或ReadytoCommit(TransactionID)消息超时后,会向全部的任务线程发送Rollback指令,通知所有任务线程执行Rollback(TransactionID)动作,回滚相应分片的数据。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据抽取过程中的数据一致性控制方法,其特征是所述的方法具体步骤如下:
S1将数据排序形成任务分片;
S2将任务分片交给线程池并发执行;
S3将执行结果发送至事务控制线程;
S4事务控制线程根据接收到的任务线程发送对应指令;
S5任务线程对数据进行全局递交或回滚操作。
2.根据权利要求1所述的数据抽取过程中的数据一致性控制方法,其特征是所述S2将任务分片交给线程池并发执行的具体步骤包括:
S201目标库启动数据库事务,获取一个事务编号TransactionID;
S202发送Start(TransactionID)消息将事务编号交由事务控制线程管理。
3.根据权利要求2所述的数据抽取过程中的数据一致性控制方法,其特征是所述S3将执行结果发送至事务控制线程的具体步骤包括:
S301当执行任务分片的线程任务执行完毕后,向事务控制线程发送ReadytoCommit(TransactionID)消息;
S311当执行任务分片的线程任务执行失败后,向事务控制线程发送Fail(TransactionID)消息;
S302等待事务控制线程返回控制指令。
4.根据权利要求3所述的数据抽取过程中的数据一致性控制方法,其特征是所述S4事务控制线程根据根据接收到的任务线程发送对应指令具体步骤包括:
S410事务控制线程对接收到的任务线程消息进行确认;
S411当接收到的消息为所有任务线程递交的ReadytoCommit(TransactionID)消息时,事务控制线程向任务线程发送Commit指令;
S420当接收到的消息为某个任务线程任务递交的Fail(TransactionID)消息时,事务控制线程向任务线程发送发送Rollback(TransactionID)动作;
S421事务控制线程等待某个任务线程的Fail(TransactionID)消息或ReadytoCommit(TransactionID)消息超时时,事务控制线程向任务线程发送Rollback指令;
S423通知所有任务线程执行Rollback(TransactionID)动作。
5.根据权利要求4所述的数据抽取过程中的数据一致性控制方法,其特征是所述S5任务线程对数据进行全局递交或回滚操作的具体步骤包括:
S501接收到Commit指令的控制线程控制递交相应分片的数据;
S511接收到Rollback(TransactionID)动作的控制线程控制回滚相应分片的数据。
6.一种数据抽取过程中的数据一致性控制系统,其特征是所述的系统包括排序模块、分发模块、反馈模块、指令模块和控制模块:
排序模块:将数据排序形成任务分片;
分发模块:将任务分片交给线程池并发执行;
反馈模块:将执行结果发送至事务控制线程;
指令模块:事务控制线程根据接收到的任务线程发送对应指令;
控制模块:任务线程对数据进行全局递交或回滚操作。
7.根据权利要求6所述的数据抽取过程中的数据一致性控制系统,其特征是所述分发模块具体包括编号模块和发起模块:
编号模块:目标库启动数据库事务,获取一个事务编号TransactionID;
发起模块:发送Start(TransactionID)消息将事务编号交由事务控制线程管理。
8.根据权利要求7所述的数据抽取过程中的数据一致性控制系统,其特征是所述反馈模块具体包括成功反馈模块、失败反馈模块和等待模块:
成功反馈模块:当执行任务分片的线程任务执行完毕后,向事务控制线程发送ReadytoCommit(TransactionID)消息;
失败反馈模块:当执行任务分片的线程任务执行失败后,向事务控制线程发送Fail(TransactionID)消息;
等待模块:等待事务控制线程返回控制指令。
9.根据权利要求8所述的数据抽取过程中的数据一致性控制系统,其特征是所述指令模块具体包括确认模块、多任务处理模块、单任务处理模块、超时处理模块和执行模块:
确认模块:事务控制线程对接收到的任务线程消息进行确认;
多任务执行模块:当接收到的消息为所有任务线程递交的ReadytoCommit(TransactionID)消息时,事务控制线程向任务线程发送Commit指令;
单任务执行模块:当接收到的消息为某个任务线程任务递交的Fail(TransactionID)消息时,事务控制线程向任务线程发送发送Rollback(TransactionID)动作;
超时处理模块:事务控制线程等待某个任务线程的Fail(TransactionID)消息或ReadytoCommit(TransactionID)消息超时时,事务控制线程向任务线程发送Rollback指令;
执行模块:通知所有任务线程执行Rollback(TransactionID)动作。
10.根据权利要求9所述的数据抽取过程中的数据一致性控制系统,其特征是所述控制模块具体包括递交模块和回滚模块:
递交模块:接收到Commit指令的控制线程控制递交相应分片的数据;
回滚模块:接收到Rollback(TransactionID)动作的控制线程控制回滚相应分片的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010494709.7A CN111639090A (zh) | 2020-06-03 | 2020-06-03 | 一种数据抽取过程中的数据一致性控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010494709.7A CN111639090A (zh) | 2020-06-03 | 2020-06-03 | 一种数据抽取过程中的数据一致性控制方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111639090A true CN111639090A (zh) | 2020-09-08 |
Family
ID=72330304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010494709.7A Pending CN111639090A (zh) | 2020-06-03 | 2020-06-03 | 一种数据抽取过程中的数据一致性控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111639090A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306197A (zh) * | 2011-09-22 | 2012-01-04 | 用友软件股份有限公司 | 保证跨数据源操作结果一致性的装置和方法 |
CN103853718A (zh) * | 2012-11-28 | 2014-06-11 | 纽海信息技术(上海)有限公司 | 分片数据库访问方法及数据库系统 |
CN105389380A (zh) * | 2015-11-23 | 2016-03-09 | 浪潮软件股份有限公司 | 一种异构数据源高效数据同步方法 |
US20180107703A1 (en) * | 2016-10-13 | 2018-04-19 | Futurewei Technologies, Inc. | Decentralized distributed database consistency |
CN110231977A (zh) * | 2018-03-05 | 2019-09-13 | 中兴通讯股份有限公司 | 数据库的处理方法、装置、存储介质及电子装置 |
CN110413687A (zh) * | 2019-05-09 | 2019-11-05 | 国网冀北电力有限公司 | 基于节点互证校验的分布式事务故障处理方法及相关设备 |
CN110808838A (zh) * | 2019-10-24 | 2020-02-18 | 华东师范大学 | 一种面向联盟链的分片方法 |
-
2020
- 2020-06-03 CN CN202010494709.7A patent/CN111639090A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306197A (zh) * | 2011-09-22 | 2012-01-04 | 用友软件股份有限公司 | 保证跨数据源操作结果一致性的装置和方法 |
CN103853718A (zh) * | 2012-11-28 | 2014-06-11 | 纽海信息技术(上海)有限公司 | 分片数据库访问方法及数据库系统 |
CN105389380A (zh) * | 2015-11-23 | 2016-03-09 | 浪潮软件股份有限公司 | 一种异构数据源高效数据同步方法 |
US20180107703A1 (en) * | 2016-10-13 | 2018-04-19 | Futurewei Technologies, Inc. | Decentralized distributed database consistency |
CN110231977A (zh) * | 2018-03-05 | 2019-09-13 | 中兴通讯股份有限公司 | 数据库的处理方法、装置、存储介质及电子装置 |
CN110413687A (zh) * | 2019-05-09 | 2019-11-05 | 国网冀北电力有限公司 | 基于节点互证校验的分布式事务故障处理方法及相关设备 |
CN110808838A (zh) * | 2019-10-24 | 2020-02-18 | 华东师范大学 | 一种面向联盟链的分片方法 |
Non-Patent Citations (1)
Title |
---|
汪添生等: "支持MongoDB的事务管理方案研究" * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106033562B (zh) | 事务处理方法、事务参与节点及事务协调节点 | |
CN1573697A (zh) | 在软件环境中用于保持资源完整性的装置和方法 | |
CN111399897A (zh) | 基于kubernetes的应用发布方法以及系统 | |
CN105516086A (zh) | 业务处理方法及装置 | |
CN112394957A (zh) | 服务器升级方法、装置、服务器及存储介质 | |
CN111813583A (zh) | 微服务架构下的事务管理方法、装置、设备及存储介质 | |
CN111639090A (zh) | 一种数据抽取过程中的数据一致性控制方法及系统 | |
CN109284190A (zh) | 一种任务处理方法及装置 | |
US20180084077A1 (en) | Processing a unit of work | |
CN110750362A (zh) | 生物信息的分析方法、装置和存储介质 | |
CN115437766A (zh) | 一种任务处理方法和装置 | |
CN113886023A (zh) | 一种基于分布式架构及容器化批量调度系统和方法 | |
US11500857B2 (en) | Asynchronous remote calls with undo data structures | |
CN110147272B (zh) | 应用多进程分发业务数据的方法及装置 | |
CN113424153A (zh) | 一种自动化运维方法和装置 | |
US11113106B2 (en) | Coordinating distributed task execution | |
CN112380024A (zh) | 一种基于分布式计数的线程调度方法 | |
CN112052084A (zh) | 一种资源分配方法和计算机设备 | |
CN103279339A (zh) | 一种代码上线系统及方法 | |
CN113839823B (zh) | 一种异构运算单元运行管理的方法 | |
CN112825044B (zh) | 任务执行方法、装置及计算机存储介质 | |
RU2510528C2 (ru) | Система обработки запросов, способ обработки запросов и машиночитаемый носитель, содержащий инструкции для обработки запросов | |
CN110727898B (zh) | Ota网站事件协助的处理方法、系统、设备和存储介质 | |
WO2012142962A1 (zh) | 一种用于文件装载的方法和装置 | |
CN116302214A (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 |