[发明专利]去中心化的TCC事务管理方法、装置、设备及系统有效
申请号: | 202011010261.3 | 申请日: | 2020-09-23 |
公开(公告)号: | CN112148436B | 公开(公告)日: | 2023-06-20 |
发明(设计)人: | 林斌;施建安;庄一波;赵友平;孙志伟 | 申请(专利权)人: | 厦门市易联众易惠科技有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F16/27;G06F16/28 |
代理公司: | 厦门智慧呈睿知识产权代理事务所(普通合伙) 35222 | 代理人: | 陈晓思 |
地址: | 361000 福建省厦*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 中心 tcc 事务管理 方法 装置 设备 系统 | ||
1.一种去中心化的TCC事务管理方法,其特征在于,包括:
接收用户发起的业务执行请求,并根据所述业务执行请求启动TCC事务;
根据业务执行请求生成第一尝试方法;其中,所述第一尝试方法包括至少一个被调用的参与节点的第二尝试方法;
获取各个被调用的参与节点对所述第二尝试方法的执行情况;
根据所述执行情况生成所述TCC事务当前的标记状态;其中,当所有尝试方法的执行情况都是执行成功时,则将标记状态记为提交状态;当至少有一个尝试方法的执行情况为执行识别时,则将标记状态记为回滚状态;
协调所述TCC事务进入到完成阶段,并根据所述标记状态执行确认操作或者是回滚操作;
还包括日志,所述日志包括数据库日志以及日志文件,所述数据库日志用于在宕机重启的时候,确认尝试阶段方法或者完成阶段方法是否执行;其中:所述数据库日志存储的内部包括存储的内容就是尝试方法对象中的xid,或者确认方法或回滚方法中的完成阶段xid;所述日志文件,用于在宕机重启时TCC事务的重建;其中,在所述TCC事务的进行过程中,将涉及到的关键操作根据时间的发生顺序写入到日志文件中,并在每个关键操作写入到所述日志文件后执行所述关键操作,以在宕机重启后,根据所述日志文件记载的信息进行事务恢复;在通过所述日志文件进行事务恢复时;当判断所述TCC事务处于初始状态,则检查第一尝试方法是否成功;若是,则将所述TCC事务的状态更新为提交/回滚状态,并且投入异步线程池以执行对应的完成阶段的流程;若否,则查询日志文件中是否存在所述第一尝试方法的xid的记录;如果存在,则更新第一尝试方法为成功,否则更新第一尝试方法为失败;根据第一尝试方法更新后的状态更新所述TCC事务的状态,进而执行完成阶段的流程;当判断所述TCC事务处于提交/回滚状态,则首先遍历确认方法/回滚方法列表,从日志文件中查询完成阶段xid是否存在来更新对应的确认方法/回滚方法否已经完成,并在确认未完成后将所述TCC事务的对象投入异步线程池,继续执行提交或者回滚的流程。
2.根据权利要求1所述的去中心化的TCC事务管理方法,其特征在于,所述TCC事务具有如下属性:
TCC事务自身的xid;所述xid包括:全局唯一ID,用于唯一的标识所述TCC事务;分支ID,用于标识参与到所述TCC事务中的一个本地事务;其中,对于任意节点参与到所述TCC事务的本地事务,其为全局TCC事务的一个分支;当所述xid的分支ID为空时,则表示所述xid用于标记所述TCC事务本身;
TCC事务当前的标记状态;其中,所述TCC事务的标记状态包括初始状态、提交/回滚状态以及结束状态;
在TCC事务作用域下的尝试方法列表;
在TCC事务作用域下的当前尝试方法;其中,每一个要被执行的尝试方法都需要先添加到TCC事务对象的尝试方法列表并且写入到日志后才能执行;
在TCC事务作用域下的远端参与者列表;其中,远端参与者在添加到远端参与者列表后,才能对其发出远端调用指令。
3.根据权利要求2所述的去中心化的TCC事务管理方法,其特征在于,还包括:
在对远程的参与节点进行调用时,向所述远程的参与节点发送TCC执行指令;其中,所述TCC执行指令包括xid、节点的标识符、本次调用的用于防止并发竞争的全局唯一traceId;所述远程的参与节点在接收到所述TCC执行指令后,判断其本地的TCC事务仓库中是否存在与所述TCC执行指令中的xid对应的TCC事务对象,如存在,则直接提取并执行对应的第二尝试方法;如果不存在,则通过自身的事务管理器新建参与者TCC事务对象,并执行第二尝试方法,从而返回对第二尝试方法的执行情况;
根据对第二尝试方法的执行情况,向所述远程的参与节点发送提交指令;其中,所述远程的参与节点在收到执行指令后,通过CAS方式对TCC事务状态进行更新,成功更新的线程继续执行后续的完成阶段的流程,并且返回成功响应;更新失败的线程等到日志写入完毕后返回成功响应。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门市易联众易惠科技有限公司,未经厦门市易联众易惠科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011010261.3/1.html,转载请声明来源钻瓜专利网。