资料介绍
对于分布式数据库而言,分布式事务控制是重点和难点,一直以来没有成熟的方案可以突破CAP理论,几乎每个分布式数据库研发团队都在分布式事务控制方案上结合了各自应用特点,进行了针对性的取舍,可以说是八仙过海各显神通。以下是我对分布式事务控制的理解:
分布式事务控制的最终目标是实现一致性,方案大体分为实时一致性和最终一致性两种。两阶段提交是比较典型的实时一致性方案,提供补偿事务和基于消息队列的异步处理方案是最终一致性方案。两阶段提交由于同步阻塞、存在脏读可能性等问题,在某些银行的应用场景下无法使用,如果将隔离级别修改为串行化则可以解决脏读问题,但对性能影响较大。基于消息队列的异步处理方案将事务拆分成多个本地子事务,子事务之间通过消息队列衔接,实现串行执行,单个子事务占用资源的时间很短,并发度高。但这种最终一致性方案如果应用到银行的应用中势必影响用户体验,而且对应用侵略性较大,实施成本高。
在分析了以上事务处理方案的优缺点之后,根据银行业务对实时一致性的要求,考虑到用户体验和实施成本的影响,我们提出了基于全局事务ID(Global transaction ID,以下简称GTID)的分布式事务解决方案。
基本原理
在基于GTID的分布式事务方案(以下简称本方案)中,我们把协调参与者和记录全局事务状态这两个功能分开,用计算节点协调各事务参与者进行事务操作,全局事务管理器仅管理全局事务的状态。为了确保事务状态正常,全局事务管理采用了实时持久化和实时同步到备机等多重保障机制。本方案事务管理架构如图1所示。
图1 基于GTID的分布式事务管理方案
两(三)阶段提交的核心思想是通过前期的多次准备和协调工作,尽可能让最后的提交操作能够成功。而本方案认为大部分事务都可以一次提交成功,因此采用一阶段提交+补偿事务的方式,如果事务在提交阶段有部分节点提交失败,本方案将回滚已成功提交的事务,而不是让失败的节点不断重试。与两(三)阶段提交相比,本方案在大部分情况下减少了与数据节点的交互次数,降低了锁冲突概率,提升了事务处理效率。
建表时增加一个隐藏字段,用于记录GTID。
每个事务开始时为其申请一个GTID,该GTID是全局唯一且单调递增的,GTID申请成功后,我们称该GTID为活跃(Active)状态,对应该GTID的事务状态为未提交状态,若涉及到数据更新,则将GTID更新到本事务将要更新的数据中,事务成功提交后,将GTID释放,此时我们称GTID为非活跃(UnActive)状态,对应的事务状态为已提交状态。
当事务提交失败时,提交失败节点会自动回滚,对于已成功提交的节点,需要将其回滚,数据恢复到更新前的状态,全部节点回滚完成后,同样需要将GTID释放。
- 分布式电源对配电系统的影响分析
- 基于KingSCADA的分布式运动控制监测系统 10次下载
- 基于DSP的航空发动机分布式总线设计方案 14次下载
- 如何设计和实现基于UART的机器人分布式控制通信协议概述 7次下载
- 分布式电源对配电网电压优化控制 1次下载
- DBA迅速解决分布式事务XA一致性问题 3次下载
- F0rCES路由器分布式事务研究 17次下载
- 新型的高压变频分布式控制系统 40次下载
- 基于分布式电源的微网的设计与运行 51次下载
- 工业机器人分布式控制系统实例 112次下载
- 基于Pocket PC的分布式程序设计
- 结合PKI与Kerberos的分布式认证与访问控制
- 基于入侵容忍的分布式数据库安全体系结构
- LabVIEW用于分布式测量与控制系统
- 分布式微机电系统的多主体控制
- 远程IO与分布式IO的区别 1322次阅读
- Java手写分布式锁的实现 424次阅读
- tldb提供分布式锁使用方法 761次阅读
- 深入理解redis分布式锁 761次阅读
- 鸿蒙分布式相机“踩坑”分享 1577次阅读
- Redis分布式锁真的安全吗? 880次阅读
- 利用NI VeriStand 2010实现分布式同步系统的设计 3154次阅读
- 详谈分布式系统的定义及属性 3689次阅读
- 分布式光纤传感器原理_分布式光纤传感器的应用 8424次阅读
- 分布式控制系统的介绍 5215次阅读
- Redis 分布式锁的正确实现方式 3483次阅读
- 浅谈分布式块存储的元数据服务设计 4871次阅读
- 深度解读分布式存储技术之分布式剪枝系统 1773次阅读
- 智能电网中的分布式发电技术 1597次阅读
- 基于CAN总线的分布式网架健康状态监测系统的设计 963次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 11次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5DIY动手组装LED电子显示屏
- 0.98 MB | 3次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机PM2.5检测系统程序
- 0.83 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537797次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191186次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多