CN111651243B - 一种面向内存数据网格的分布式事务保障方法 - Google Patents

一种面向内存数据网格的分布式事务保障方法 Download PDF

Info

Publication number
CN111651243B
CN111651243B CN202010479212.8A CN202010479212A CN111651243B CN 111651243 B CN111651243 B CN 111651243B CN 202010479212 A CN202010479212 A CN 202010479212A CN 111651243 B CN111651243 B CN 111651243B
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.)
Active
Application number
CN202010479212.8A
Other languages
English (en)
Other versions
CN111651243A (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.)
Beijing Tongtech Co Ltd
Original Assignee
Beijing Tongtech 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 Beijing Tongtech Co Ltd filed Critical Beijing Tongtech Co Ltd
Priority to CN202010479212.8A priority Critical patent/CN111651243B/zh
Publication of CN111651243A publication Critical patent/CN111651243A/zh
Application granted granted Critical
Publication of CN111651243B publication Critical patent/CN111651243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine 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)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (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、根据以下公式将消息转换成特征数值:
Figure BDA0002516756500000021
其中,X代表将消息转换后的特征数值,a11代表横纵坐标为1的特征数值的大小,i=1,2,3,......n,m=1,2,3......n;
步骤A2、根据以下公式计算模型K值:
Figure BDA0002516756500000022
其中K代表初始选取参数个数,x测试时的消息特征数值,Nk(x)代表根据分类决策规则决定x的类别y,cj代表当前预测的消息的所属类别,I代表指数函数,yi代表当前预测的消息的真实类别;
步骤A3、根据上述对K值的具体确定,对其进行模型测试,其过程如下:
Figure BDA0002516756500000023
其中d代表距离,x,y代表消息特征数值的坐标点,i=1,2,3,...,n,通过K值的确立,计算预测的消息特征数值与消息特征数值的坐标点的距离,当K=4,计算4个离预测的消息特征数值坐标点距离最近的消息特征数值的坐标点距离,根据此4个消息特征数值对应的消息的类别以此衡量预测消息的类别。
步骤A4、对消息异常处理公式如下:
Figure BDA0002516756500000031
其中x,y代表消息特征数值的坐标点,a代表消息特征数值大小,将其消息转换成消息特征数值,根据模型输入消息特征数值进行预测消息其类别,将其异常类别的消息特征数值根据其周围的消息特征数值取其中值来代替,完成其异常处理,最终在转换成消息。
与现有技术相比,本发明具有如下技术优势:
1、传统技术通常采用集成第三方事务管理器的方式,整个由单独的事务协调者进行处理,易形成单点瓶颈,并给系统带来额外的通信代价。本发明采用多个事务协调者与多个参与者,并且不需要远处调用第三方事务管理器,可以避免产生额外的通信代价,降低事务协调和事务状态维护的代价。
2、传统技术通常采用客户端驱动的数据定位方式,事务的协调工作需要在客户端与服务器端之间频繁的交换事务状态和并发控制状态,给系统带来额外的通信和计算代价。本发明采用服务器端驱动的数据定位方式,事务请求由接收事务的服务节点负责协调,每次数据定位至多需要两次数据转发,可以有效降低事务协调和事务状态维护的代价。
附图说明
图1为在线事务处理应用的传统运行环境。
图2为分布式事务处理流程图。
具体实施方式
以下结合具体操作特征和附图对本发明进行详细说明。
本发明实施的完整过程如图2所示,服务节点选定,客户端的每次事务请求被发送给服务器端的某个节点,并将该节点作为本次事务的事务协调者;准备阶段,事务协调者给每个参与者发送Prepare消息,每个参与者要么直接返回失败,要么在本地执行事务,写本地的redo和undo日志;提交阶段,参与者针对事务协调者发送的消息进异常处理,如果事务协调者收到了参与者的失败消息或者超时,直接给每个参与者发送回滚消息;否则,发送提交消息;参与者根据协调者的指令执行提交或者回滚操作,释放所有事务处理过程中使用的锁资源,本发明采用多个事务协调者与多个参与者,并且不需要远处调用第三方事务管理器,可以避免产生额外的通信代价,降低事务协调和事务状态维护的代价。
在上述流程基础上,本发明实施例的具体实现流程如下:
准备阶段还包括:
客户端的每次事务请求被发送给服务器端的某一个结点,并将该结点作为本次事务的事务协调者;
事务协调者向所有参与者节点询问是否可以执行提交操作,并开始等待各参与者节点的响应;
参与者节点执行询问发起为止的所有事务操作,并将Undo信息和Redo信息写入日志;
各参与者节点响应协调者节点发起的询问。如果参与者节点的事务操作实际执行成功,则它返回一个”同意”消息;如果参与者节点的事务操作实际执行失败,则它返回一个”中止”消息。
提交阶段还包括:
提交通过,客户端发送事务提交请求,事务协调者接受到事务提交请求后,进入提交阶段,事务协调者通知参与者进行事务提交操作,参与者根据事务操作日志信息修改时间数据,然后解除数据封锁并清除日志,结着参与者回复确认消息给事务协调者,当所有参与者却数据操作执行成功后,事务协调者清理事务,结束本次事务请求处理;
提交回滚,若参与者的数组操作无法成功执行,执行提交回滚操作,在事务协调者接受到事务回滚请求后,通知所以参与者阶乘数据封锁,并清除相关事务操作日志,然后事务协调者清除事务,接受本次事务请求处理。
所述的事务是所述的事务是提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,值要其中任一操作执行失败,都降导致整个事务的回滚。
根据本发明的一些实施例中,对所述的消息异常处理包括如下步骤:
步骤A1、根据以下公式将消息转换成特征数值:
Figure BDA0002516756500000051
其中K代表初始选取参数个数,x测试时的消息特征数值,Nk(x)代表根据分类决策规则决定x的类别y,cj代表当前预测的消息的所属类别,I代表指数函数,yi代表当前预测的消息的真实类别;
步骤A3、根据上述对K值的具体确定,对其进行模型测试,其过程如下:
Figure BDA0002516756500000052
其中d代表距离,x,y代表消息特征数值的坐标点,i=1,2,3,...,n,通过K值的确立,计算预测的消息特征数值与消息特征数值的坐标点的距离,当K=4,计算4个离预测的消息特征数值坐标点距离最近的消息特征数值的坐标点距离,根据此4个消息特征数值对应的消息的类别以此衡量预测消息的类别。
步骤A4、对消息异常处理公式如下:
Figure BDA0002516756500000061
其中x,y代表消息特征数值的坐标点,a代表消息特征数值大小,将其消息转换成消息特征数值,根据模型输入消息特征数值进行预测消息其类别,将其异常类别的消息特征数值根据其周围的消息特征数值取其中值来代替,完成其异常处理,最终在转换成消息。
有益效果:以上算法采用了机器学习技术,通过计算初始参数K值以此进行衡量消息特征数值的异常值,通过对消息异常数值进行中值化处理,解决了消息的异常信息,使技术与专利更加融合统一。
所述的异常处理包括:
从主动方应用的角度来分析:预发送消息失败、与发送消息后,主动方应用没有收到返回消息存储结果、收到消息存储成功的返回结果,但为执行提交操作就失败;
从消息中间件的角度来分析:消息中间件没有收到主动方应用的夜晚操作处理结果、消息中间件收到业务操作结果,但处理消息存储中的消息状态失败;
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的包含范围之内,因此,本发明的保护范围应该以权力要求书的保护范围为准。

Claims (5)

1.一种面向内存数据网格的分布式事务保障方法,其特征在于,包括:
服务节点选定,客户端的每次事务请求被发送给服务器端的某个节点,并将该节点作为本次事务的事务协调者;
准备阶段,事务协调者给每个参与者发送Prepare消息,每个参与者要么直接返回失败,要么在本地执行事务,写本地的redo和undo日志;
提交阶段,参与者针对事务协调者发送的消息进行异常处理,如果事务协调者收到了参与者的失败消息或者超时,直接给每个参与者发送回滚消息;否则,发送提交消息;参与者根据协调者的指令执行提交或者回滚操作,释放所有事务处理过程中使用的锁资源;
消息异常处理包括如下步骤:
步骤A1、根据以下公式将消息转换成特征数值:
Figure FDA0002961234450000011
其中,X代表将消息转换后的特征数值,a11代表横纵坐标为1的特征数值的大小,i=1,2,3,......n,m=1,2,3......n;
步骤A2、根据以下公式计算模型K值:
Figure FDA0002961234450000012
其中K代表初始选取参数个数,x测试时的消息特征数值,Nk(x)代表根据分类决策规则决定x的类别y,cj代表当前预测的消息的所属类别,I代表指数函数,yi代表当前预测的消息的真实类别;
步骤A3、根据上述对K值的具体确定,对其进行模型测试,其过程如下:
Figure FDA0002961234450000021
其中d代表距离,x,y代表消息特征数值的坐标点,i=1,2,3,...,n,通过K值的确立,计算预测的消息特征数值与消息特征数值的坐标点的距离,当K=4,计算4个离预测的消息特征数值坐标点距离最近的消息特征数值的坐标点距离,根据此4个消息特征数值对应的消息的类别以此衡量预测消息的类别;
步骤A4、对消息异常处理公式如下:
Figure FDA0002961234450000022
其中x,y代表消息特征数值的坐标点,a代表消息特征数值大小,将其消息转换成消息特征数值,根据模型输入消息特征数值进行预测消息其类别,将其异常类别的消息特征数值根据其周围的消息特征数值取其中值来代替,完成其异常处理,最终在转换成消息。
2.根据权利要求1所述的面向内存数据网格的分布式事务保障方法,其特征在于,所述的准备阶段还包括:
客户端的每次事务请求被发送给服务器端的某一个结点,并将该结点作为本次事务的事务协调者;
事务协调者向所有参与者节点询问是否可以执行提交操作,并开始等待各参与者节点的响应;
参与者节点执行询问发起为止的所有事务操作,并将Undo信息和Redo信息写入日志;
各参与者节点响应协调者节点发起的询问,如果参与者节点的事务操作实际执行成功,则它返回一个”同意”消息;如果参与者节点的事务操作实际执行失败,则它返回一个”中止”消息。
3.根据权利要求1所述的面向内存数据网格的分布式事务保障方法,其特征在于,所述的提交阶段还包括:
提交通过,客户端发送事务提交请求,事务协调者接受到事务提交请求后,进入提交阶段,事务协调者通知参与者进行事务提交操作,参与者根据事务操作日志信息修改时间数据,然后解除数据封锁并清除日志,参与者回复确认消息给事务协调者,当所有参与者却数据操作执行成功后,事务协调者清理事务,结束本次事务请求处理;
提交回滚,若参与者的数组操作无法成功执行,执行提交回滚操作,在事务协调者接受到事务回滚请求后,通知所以参与者阶乘数据封锁,并清除相关事务操作日志,然后事务协调者清除事务,接受本次事务请求处理。
4.根据权利要求1所述的面向内存数据网格的分布式事务保障方法,其特征在于,所述的事务是提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行失败,都降导致整个事务的回滚。
5.根据权利要求1所述的面向内存数据网格的分布式事务保障方法,其特征在于,所述的异常处理包括:
从主动方应用的角度来分析:预发送消息失败、与发送消息后,主动方应用没有收到返回消息存储结果、收到消息存储成功的返回结果,但为执行提交操作就失败;
从消息中间件的角度来分析:消息中间件没有收到主动方应用的业务操作处理结果、消息中间件收到业务操作结果,但处理消息存储中的消息状态失败。
CN202010479212.8A 2020-05-29 2020-05-29 一种面向内存数据网格的分布式事务保障方法 Active CN111651243B (zh)

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 CN111651243A (zh) 2020-09-11
CN111651243B true 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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457157A (zh) * 2019-08-05 2019-11-15 腾讯科技(深圳)有限公司 分布式事务异常处理方法、装置、计算机设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473318B (zh) * 2013-09-12 2016-07-06 中国科学院软件研究所 一种面向内存数据网格的分布式事务保障方法
CN106547610A (zh) * 2016-10-11 2017-03-29 北京国电通网络技术有限公司 一种分布式事务提交的方法及系统
CN107464572B (zh) * 2017-08-16 2020-10-16 重庆科技学院 多模式交互音乐感知系统及其控制方法
US11874816B2 (en) * 2018-10-23 2024-01-16 Microsoft Technology Licensing, Llc Lock free distributed transaction coordinator for in-memory database participants
CN110032428B (zh) * 2019-02-21 2023-06-27 创新先进技术有限公司 分布式事务的执行方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457157A (zh) * 2019-08-05 2019-11-15 腾讯科技(深圳)有限公司 分布式事务异常处理方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN111651243A (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
CN108459919B (zh) 一种分布式事务处理方法及装置
EP0702295B1 (en) System for building optimal commit trees in a distributed transaction system
US6625602B1 (en) Method and system for hierarchical transactions and compensation
CN103995691B (zh) 基于事务的服务状态一致性维护方法
US7970737B2 (en) Recovery administration of global transaction participants
GB2311391A (en) Restart and recovery of OMG compliant transaction systems
US6233587B1 (en) Extensible framework of key resource manager and transaction manager events for providing native support for foreign-initiated transactions
CN117056116B (zh) 一种流程管理方法和电子设备
CN114253673A (zh) 一种分布式系统的事务处理方法和事务处理装置
US20060149791A1 (en) Database-driven distributed recovery
CN112446786A (zh) 一种异常交易处理方法、装置、电子设备和可读存储介质
US8984531B2 (en) Episodic coordination model for distributed applications
EP1247182B1 (en) Preserving consistency of passively-replicated non-deterministic objects
CN112596801B (zh) 事务处理方法、装置、设备、存储介质、数据库
CN115544044A (zh) 一种数据一致性保持方法、装置、设备和存储介质
CN111651243B (zh) 一种面向内存数据网格的分布式事务保障方法
EP1891525B1 (en) Techniques for handling lock-related inconsistencies
CN112559496B (zh) 一种分布式数据库事务原子性实现方法及装置
US20070038569A1 (en) Inherited transactions in asynchronous messaging
CN112559174A (zh) 一种区块链并行交易处理方法及装置
CN112099934A (zh) 一种批处理方法、系统、计算机设备及存储介质
CN112148436A (zh) 去中心化的tcc事务管理方法、装置、设备及系统
CN115208834A (zh) 一种基于数据库存储过程设计的服务流量限制方法
Fan et al. Method of maintaining data consistency in microservice architecture
CN112199401B (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