CN111651243A - 一种面向内存数据网格的分布式事务保障方法 - Google Patents
一种面向内存数据网格的分布式事务保障方法 Download PDFInfo
- Publication number
- CN111651243A CN111651243A CN202010479212.8A CN202010479212A CN111651243A CN 111651243 A CN111651243 A CN 111651243A CN 202010479212 A CN202010479212 A CN 202010479212A CN 111651243 A CN111651243 A CN 111651243A
- Authority
- CN
- China
- Prior art keywords
- transaction
- message
- participant
- coordinator
- node
- 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
Images
Classifications
-
- 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
- G06F9/467—Transactional memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- 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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种面向内存数据网格的分布式事务保障方法,其特征在于,包括:服务节点选定,客户端的每次事务请求被发送给服务器端的某个节点,并将该节点作为本次事务的事务协调者;准备阶段,事务协调者给每个参与者发送Prepare消息,每个参与者要么直接返回失败,要么在本地执行事务,写本地的redo和undo日志;提交阶段,参与者针对事务协调者发送的消息进异常处理,如果事务协调者收到了参与者的失败消息或者超时,直接给每个参与者发送回滚消息;否则,发送提交消息;参与者根据协调者的指令执行提交或者回滚操作,释放所有事务处理过程中使用的锁资源,本发明采用多个事务协调者与多个参与者,并且不需要远处调用第三方事务管理器,可以避免产生额外的通信代价,降低事务协调和事务状态维护的代价。
Description
技术领域
本发明涉及分布式事务保障方法,特别涉及一种面向内存数据网格的分布式事务保障方法,属于软件技术领域。
背景技术
随着金融科技,尤其是互联网科技金融的不断发展,越来越多的技术应用在金融领域,但金融业也对技术提出了更高的要求,如针对分布式事务的事务保障过程。服务与服务之间通讯采用RPC远程调用技术,但是每个服务中都有自己独立的数据源,即自己独立的本地事务;两个服务相互进行通讯的时候,两个本地事务互不影响,从而出现分布式事务产生的原因,分布式事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行失败,都将导致整个事务的回滚。现有得到分布式事务处理方案通常是按照从子事务失败点逆向顺序冲正的方式回滚整个前置处理逻辑,无法做到冲正逻辑的灵活性和差异性。
发明内容
本发明采用多个事务协调者与多个参与者,并且不需要远处调用第三方事务管理器,可以避免产生额外的通信代价,降低事务协调和事务状态维护的代价。
本发明技术解决方案:一种面向内存数据网格的分布式事务保障方法,其特点在于实现步骤如下:
服务节点选定,客户端的每次事务请求被发送给服务器端的某个节点,并将该节点作为本次事务的事务协调者;
准备阶段,事务协调者给每个参与者发送Prepare消息,每个参与者要么直接返回失败,要么在本地执行事务,写本地的redo和undo日志;
提交阶段,参与者针对事务协调者发送的消息进异常处理,如果事务协调者收到了参与者的失败消息或者超时,直接给每个参与者发送回滚消息;否则,发送提交消息;参与者根据协调者的指令执行提交或者回滚操作,释放所有事务处理过程中使用的锁资源。
在一个实施例中,对所述的消息异常处理包括如下步骤:
步骤A1、根据以下公式将消息转换成特征数值:
其中,X代表将消息转换后的特征数值,a11代表横纵坐标为1的特征数值的大小,i=1,2,3,......n,m=1,2,3......n;
步骤A2、根据以下公式计算模型K值:
其中K代表初始选取参数个数,x测试时的消息特征数值,Nk(x)代表根据分类决策规则决定x的类别y,cj代表当前预测的消息的所属类别,I代表指数函数,yi代表当前预测的消息的真实类别;
步骤A3、根据上述对K值的具体确定,对其进行模型测试,其过程如下:
其中d代表距离,x,y代表消息特征数值的坐标点,i=1,2,3,...,n,通过K值的确立,计算预测的消息特征数值与消息特征数值的坐标点的距离,当K=4,计算4个离预测的消息特征数值坐标点距离最近的消息特征数值的坐标点距离,根据此4个消息特征数值对应的消息的类别以此衡量预测消息的类别。
步骤A4、对消息异常处理公式如下:
其中x,y代表消息特征数值的坐标点,a代表消息特征数值大小,将其消息转换成消息特征数值,根据模型输入消息特征数值进行预测消息其类别,将其异常类别的消息特征数值根据其周围的消息特征数值取其中值来代替,完成其异常处理,最终在转换成消息。
与现有技术相比,本发明具有如下技术优势:
1、传统技术通常采用集成第三方事务管理器的方式,整个由单独的事务协调者进行处理,易形成单点瓶颈,并给系统带来额外的通信代价。本发明采用多个事务协调者与多个参与者,并且不需要远处调用第三方事务管理器,可以避免产生额外的通信代价,降低事务协调和事务状态维护的代价。
2、传统技术通常采用客户端驱动的数据定位方式,事务的协调工作需要在客户端与服务器端之间频繁的交换事务状态和并发控制状态,给系统带来额外的通信和计算代价。本发明采用服务器端驱动的数据定位方式,事务请求由接收事务的服务节点负责协调,每次数据定位至多需要两次数据转发,可以有效降低事务协调和事务状态维护的代价。
附图说明
图1为在线事务处理应用的传统运行环境。
图2为分布式事务处理流程图。
具体实施方式
以下结合具体操作特征和附图对本发明进行详细说明。
本发明实施的完整过程如图2所示,服务节点选定,客户端的每次事务请求被发送给服务器端的某个节点,并将该节点作为本次事务的事务协调者;准备阶段,事务协调者给每个参与者发送Prepare消息,每个参与者要么直接返回失败,要么在本地执行事务,写本地的redo和undo日志;提交阶段,参与者针对事务协调者发送的消息进异常处理,如果事务协调者收到了参与者的失败消息或者超时,直接给每个参与者发送回滚消息;否则,发送提交消息;参与者根据协调者的指令执行提交或者回滚操作,释放所有事务处理过程中使用的锁资源,本发明采用多个事务协调者与多个参与者,并且不需要远处调用第三方事务管理器,可以避免产生额外的通信代价,降低事务协调和事务状态维护的代价。
在上述流程基础上,本发明实施例的具体实现流程如下:
准备阶段还包括:
客户端的每次事务请求被发送给服务器端的某一个结点,并将该结点作为本次事务的事务协调者;
事务协调者向所有参与者节点询问是否可以执行提交操作,并开始等待各参与者节点的响应;
参与者节点执行询问发起为止的所有事务操作,并将Undo信息和Redo信息写入日志;
各参与者节点响应协调者节点发起的询问。如果参与者节点的事务操作实际执行成功,则它返回一个”同意”消息;如果参与者节点的事务操作实际执行失败,则它返回一个”中止”消息。
提交阶段还包括:
提交通过,客户端发送事务提交请求,事务协调者接受到事务提交请求后,进入提交阶段,事务协调者通知参与者进行事务提交操作,参与者根据事务操作日志信息修改时间数据,然后解除数据封锁并清除日志,结着参与者回复确认消息给事务协调者,当所有参与者却数据操作执行成功后,事务协调者清理事务,结束本次事务请求处理;
提交回滚,若参与者的数组操作无法成功执行,执行提交回滚操作,在事务协调者接受到事务回滚请求后,通知所以参与者阶乘数据封锁,并清除相关事务操作日志,然后事务协调者清除事务,接受本次事务请求处理。
所述的事务是所述的事务是提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,值要其中任一操作执行失败,都降导致整个事务的回滚。
根据本发明的一些实施例中,对所述的消息异常处理包括如下步骤:
步骤A1、根据以下公式将消息转换成特征数值:
其中K代表初始选取参数个数,x测试时的消息特征数值,Nk(x)代表根据分类决策规则决定x的类别y,cj代表当前预测的消息的所属类别,I代表指数函数,yi代表当前预测的消息的真实类别;
步骤A3、根据上述对K值的具体确定,对其进行模型测试,其过程如下:
其中d代表距离,x,y代表消息特征数值的坐标点,i=1,2,3,...,n,通过K值的确立,计算预测的消息特征数值与消息特征数值的坐标点的距离,当K=4,计算4个离预测的消息特征数值坐标点距离最近的消息特征数值的坐标点距离,根据此4个消息特征数值对应的消息的类别以此衡量预测消息的类别。
步骤A4、对消息异常处理公式如下:
其中x,y代表消息特征数值的坐标点,a代表消息特征数值大小,将其消息转换成消息特征数值,根据模型输入消息特征数值进行预测消息其类别,将其异常类别的消息特征数值根据其周围的消息特征数值取其中值来代替,完成其异常处理,最终在转换成消息。
有益效果:以上算法采用了机器学习技术,通过计算初始参数K值以此进行衡量消息特征数值的异常值,通过对消息异常数值进行中值化处理,解决了消息的异常信息,使技术与专利更加融合统一。
所述的异常处理包括:
从主动方应用的角度来分析:预发送消息失败、与发送消息后,主动方应用没有收到返回消息存储结果、收到消息存储成功的返回结果,但为执行提交操作就失败;
从消息中间件的角度来分析:消息中间件没有收到主动方应用的夜晚操作处理结果、消息中间件收到业务操作结果,但处理消息存储中的消息状态失败;
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的包含范围之内,因此,本发明的保护范围应该以权力要求书的保护范围为准。
Claims (6)
1.一种面向内存数据网格的分布式事务保障方法,其特征在于,包括:
服务节点选定,客户端的每次事务请求被发送给服务器端的某个节点,并将该节点作为本次事务的事务协调者;
准备阶段,事务协调者给每个参与者发送Prepare消息,每个参与者要么直接返回失败,要么在本地执行事务,写本地的redo和undo日志;
提交阶段,参与者针对事务协调者发送的消息进行异常处理,如果事务协调者收到了参与者的失败消息或者超时,直接给每个参与者发送回滚消息;否则,发送提交消息;参与者根据协调者的指令执行提交或者回滚操作,释放所有事务处理过程中使用的锁资源。
2.根据权利要求1所述的面向内存数据网格的分布式事务保障方法,其特征在于,所述的消息异常处理包括如下步骤:
步骤A1、根据以下公式将消息转换成特征数值:
其中,X代表将消息转换后的特征数值,a11代表横纵坐标为1的特征数值的大小,i=1,2,3,......n,m=1,2,3......n;
步骤A2、根据以下公式计算模型K值:
其中K代表初始选取参数个数,x测试时的消息特征数值,Nk(x)代表根据分类决策规则决定x的类别y,cj代表当前预测的消息的所属类别,I代表指数函数,yi代表当前预测的消息的真实类别;
步骤A3、根据上述对K值的具体确定,对其进行模型测试,其过程如下:
其中d代表距离,x,y代表消息特征数值的坐标点,i=1,2,3,...,n,通过K值的确立,计算预测的消息特征数值与消息特征数值的坐标点的距离,当K=4,计算4个离预测的消息特征数值坐标点距离最近的消息特征数值的坐标点距离,根据此4个消息特征数值对应的消息的类别以此衡量预测消息的类别。
步骤A4、对消息异常处理公式如下:
其中x,y代表消息特征数值的坐标点,a代表消息特征数值大小,将其消息转换成消息特征数值,根据模型输入消息特征数值进行预测消息其类别,将其异常类别的消息特征数值根据其周围的消息特征数值取其中值来代替,完成其异常处理,最终在转换成消息。
3.根据权利要求1所述的面向内存数据网格的分布式事务保障方法,其特征在于,所述的准备阶段还包括:
客户端的每次事务请求被发送给服务器端的某一个结点,并将该结点作为本次事务的事务协调者;
事务协调者向所有参与者节点询问是否可以执行提交操作,并开始等待各参与者节点的响应;
参与者节点执行询问发起为止的所有事务操作,并将Undo信息和Redo信息写入日志;
各参与者节点响应协调者节点发起的询问。如果参与者节点的事务操作实际执行成功,则它返回一个”同意”消息;如果参与者节点的事务操作实际执行失败,则它返回一个”中止”消息。
4.根据权利要求1所述的面向内存数据网格的分布式事务保障方法,其特征在于,所述的提交阶段还包括:
提交通过,客户端发送事务提交请求,事务协调者接受到事务提交请求后,进入提交阶段,事务协调者通知参与者进行事务提交操作,参与者根据事务操作日志信息修改时间数据,然后解除数据封锁并清除日志,参与者回复确认消息给事务协调者,当所有参与者却数据操作执行成功后,事务协调者清理事务,结束本次事务请求处理;
提交回滚,若参与者的数组操作无法成功执行,执行提交回滚操作,在事务协调者接受到事务回滚请求后,通知所以参与者阶乘数据封锁,并清除相关事务操作日志,然后事务协调者清除事务,接受本次事务请求处理。
5.根据权利要求1所述的面向内存数据网格的分布式事务保障方法,其特征在于,所述的事务是提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,值要其中任一操作执行失败,都降导致整个事务的回滚。
6.根据权利要求1所述的面向内存数据网格的分布式事务保障方法,其特征在于,所述的异常处理包括:
从主动方应用的角度来分析:预发送消息失败、与发送消息后,主动方应用没有收到返回消息存储结果、收到消息存储成功的返回结果,但为执行提交操作就失败;
从消息中间件的角度来分析:消息中间件没有收到主动方应用的夜晚操作处理结果、消息中间件收到业务操作结果,但处理消息存储中的消息状态失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010479212.8A CN111651243B (zh) | 2020-05-29 | 2020-05-29 | 一种面向内存数据网格的分布式事务保障方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010479212.8A CN111651243B (zh) | 2020-05-29 | 2020-05-29 | 一种面向内存数据网格的分布式事务保障方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111651243A true CN111651243A (zh) | 2020-09-11 |
CN111651243B CN111651243B (zh) | 2021-08-10 |
Family
ID=72346954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010479212.8A Active CN111651243B (zh) | 2020-05-29 | 2020-05-29 | 一种面向内存数据网格的分布式事务保障方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111651243B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473318A (zh) * | 2013-09-12 | 2013-12-25 | 中国科学院软件研究所 | 一种面向内存数据网格的分布式事务保障方法 |
CN106547610A (zh) * | 2016-10-11 | 2017-03-29 | 北京国电通网络技术有限公司 | 一种分布式事务提交的方法及系统 |
CN107464572A (zh) * | 2017-08-16 | 2017-12-12 | 重庆科技学院 | 多模式交互音乐感知系统及其控制方法 |
CN110032428A (zh) * | 2019-02-21 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 分布式事务的执行方法和装置 |
CN110457157A (zh) * | 2019-08-05 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 分布式事务异常处理方法、装置、计算机设备及存储介质 |
WO2020086206A1 (en) * | 2018-10-23 | 2020-04-30 | Microsoft Technology Licensing, Llc | Lock free distributed transaction coordinator for in-memory database participants |
-
2020
- 2020-05-29 CN CN202010479212.8A patent/CN111651243B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473318A (zh) * | 2013-09-12 | 2013-12-25 | 中国科学院软件研究所 | 一种面向内存数据网格的分布式事务保障方法 |
CN106547610A (zh) * | 2016-10-11 | 2017-03-29 | 北京国电通网络技术有限公司 | 一种分布式事务提交的方法及系统 |
CN107464572A (zh) * | 2017-08-16 | 2017-12-12 | 重庆科技学院 | 多模式交互音乐感知系统及其控制方法 |
WO2020086206A1 (en) * | 2018-10-23 | 2020-04-30 | Microsoft Technology Licensing, Llc | Lock free distributed transaction coordinator for in-memory database participants |
CN110032428A (zh) * | 2019-02-21 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 分布式事务的执行方法和装置 |
CN110457157A (zh) * | 2019-08-05 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 分布式事务异常处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111651243B (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108459919B (zh) | 一种分布式事务处理方法及装置 | |
CN103995691B (zh) | 基于事务的服务状态一致性维护方法 | |
EP0707265A2 (en) | A system and method for creating an object oriented transaction service that interoperates with procedural transaction coordinators | |
US7970737B2 (en) | Recovery administration of global transaction participants | |
GB2311391A (en) | Restart and recovery of OMG compliant transaction systems | |
US20100318394A1 (en) | Executing transactions as an atomic unit | |
US6233587B1 (en) | Extensible framework of key resource manager and transaction manager events for providing native support for foreign-initiated transactions | |
CN114253673A (zh) | 一种分布式系统的事务处理方法和事务处理装置 | |
CN117056116B (zh) | 一种流程管理方法和电子设备 | |
CN112446786A (zh) | 一种异常交易处理方法、装置、电子设备和可读存储介质 | |
EP1247182B1 (en) | Preserving consistency of passively-replicated non-deterministic objects | |
CN113157710A (zh) | 区块链数据并行写入方法、装置、计算机设备及存储介质 | |
CN112596801B (zh) | 事务处理方法、装置、设备、存储介质、数据库 | |
CN115544044A (zh) | 一种数据一致性保持方法、装置、设备和存储介质 | |
CN112148436A (zh) | 去中心化的tcc事务管理方法、装置、设备及系统 | |
CN115712670A (zh) | 一种数据源管理系统 | |
CN111651243B (zh) | 一种面向内存数据网格的分布式事务保障方法 | |
CN110287267A (zh) | 一种跨节点的数据处理方法及装置 | |
CN112559496B (zh) | 一种分布式数据库事务原子性实现方法及装置 | |
US20070038569A1 (en) | Inherited transactions in asynchronous messaging | |
WO2006138168A2 (en) | Techniques for handling lock-related inconsistencies | |
CN112099934A (zh) | 一种批处理方法、系统、计算机设备及存储介质 | |
CN115208834A (zh) | 一种基于数据库存储过程设计的服务流量限制方法 | |
CN112199401B (zh) | 数据请求处理方法、装置、服务器、系统及存储介质 | |
CN113177052A (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 |