当前位置:文档之家› 金融级STP分布式事务技术架构

金融级STP分布式事务技术架构

14ms。但成本非常昂贵,企业根本无法使用
• 事务开始和提交从 Time Master 中获取 时间戳,在读写事务提交时,需要进行 commit-wait 2倍 True Time 误差,以保 证提交的绝对时间过期,从而导致单分区 的事务吞吐量受限
• 跨多分区事务一致性采用 2PC机制,由 Coordinator统一协调提交或回滚
我们熟知的分布式事务机制有哪些?
全局事务管理器(GTM)机制
Client
① 发起事务
④ 提交事务
② 请求事务ID 和事务快照
Coordinator ⑥ 更新预提交状态 GTM
⑧ 更新提交状态
T1
T2
③ 事务操作(ID+快照) ⑤ 预提交事务
T3
TT44 ⑦ 提交事务
tm1 commit tm2 rollback tm3 pre-commit tm4 cdporemin-cgmoimt mit
✓ 高性能:STP Client采用共享内存方式对外提供时间服务,
让逻辑时间的获取为本地调,没有任何网络开销,性能为 “纳秒”级
STP如何始终保持单调递增?
✓ STP Server 一主多备 ✓ 通过Raft协议同步ULT,并确保多数派成功 ✓ 选主时,ULT最大的节点当选主节点
✓ STP Server重启或切主时 ✓ 从本地持久化中获取保存的 ULT ✓ 获取当前的物理时间 LRT ✓ 计算新的 ULT ✓ 如果 LRT > ULT + 同步周期,则 ULT = LRT ✓ 否则 ULT = ULT + 同步周期 ✓ 通过 Raft 协议同步新的 ULT 至其它节点
• GTM为全局事务管理器,负责事务 ID的分配,全局事务状态的维护
• GTM一般为全局单点或主备节点, GTM的最大事务分配管理能力成为 整个系统的最大事务能力,扩展性 受限
• 跨节点事务的一致性采用2PC提 交,出现故障时需要从GTM进行事 务状态恢复后重试
Record1
Node
Record2
Record3
• 对相同记录的更改容易发生冲突重试。在事务 故障时,采用懒处理,需要通过锁超时、以及 事务Primary状态进行修复
• 任何事务都需要与TSO进行 1-2 次交互,性能 扩展受限
我们熟知的分布式事务机制有哪些?
Google Spanner 机制
True Time Architecture
GPS Master
金融级STP分布式事务技术架构
如何支撑数千节点扩展
巨杉数据库:9年耕耘,近百家银行及金融客户生产上线
• 国有、商业、证券、保险
全维度 金融行业覆盖
• 国内金融行业 应用最 广 的分布式数据库,已 有 近百家 金融及企
业 客户生产上线
• 适应各类 跨场景 业务
: 核心交易、数据中台、 内 容管理、实时数据服务
分布式事务面临的主要难点有哪些?
跨节点 一致性
事务跨多节点执行时, 如 何 保证在各种故障下所有 节点 都提交, 或者都回滚 ?
跨节点 隔离性
多个跨节点的事务并发执行 时, 在网络延时、访问时序 等影响下, 如何保证事务间 相互隔离,互不影响? 脏读、可重复读、幻读
扩展性
参与分布式事务的节点规模 能否水平扩展? 随着节点规模的扩展, 分布 式事务的处理能力能否线性 扩展?
cc11:loocckk 2: 1: p @A.c1
cc11:wwrritee 2: data@1 1:
• TSO 提供一个精确的、严格递增的时间戳服务
• TSO一般为全局单点或主备节点,TSO的最大时 间戳分配能力成为整个系统的最大事务能力, 扩展性受限
• 读事务跟据时间戳进行可见性判断,当碰到可 见锁时,需要等待解锁。由于事务采用异步提 交,在高并发读写冲突时,性能较低
ULT
Sync every 60 sec
DEBTP (ULT + Error)
STP Client
(LLT, LLTError)
STP Client

STP Client
(LLT, LLTError)
(LLT, LLTError)
Shared Memory & Local API
✓ 单调递增性:逻辑时钟始终保持单调递增,不受物理时钟
④ pre-write primary
⑧ 异 步 commitsecondary
⑦ commit primary andreturn
Buffer
A5

Node1
row c1:data c1:lock c1:write
A 2:
2:
2: data@1
A 1:5
1:p
1:
Buffer B3
Node2
rooww cc11:ddaataa B 2: B 1:3
Node

Node
• 任何事务都需要与GTM进行 2-3 次 交互,性能扩展受限
我们熟知的分布式事务机制有哪些?
Google BigTable Percolator 机制
Client
① 开始事务
④ 提交事务
Coordinator
② 获取开始时间戳 ⑥ 获取提交时间戳
TSO
③ 事务写入缓存
⑤ pre-write secondary
• 只读事务通过时间阻塞、比对数据的时间 戳和自身事务的时间戳进行可见性判断, 从而实现“外部一致性读”
Sequence Time Protocol 分布式序列时钟协议
STP是什么?能做什么?
STP Server
STP Server
Raft 协议 同步逻辑时钟

STP Server (Primary)
GPS Master
GPS Master
Atomic Master
Atomic Master Sync every 30 sec
Atomic Master
Computer Node
Computer Node
Computer Node
• True Time:基于GPS时钟和原子钟校时和授 时,能确保任何一个 Time Master与“全球标 准时间”基本一致,但由于网络、local clock影 响,任何 2 个节点的时间相差控制在不超时
回调影响
✓ 高可靠性:STP Server 一主多备,采用一致性 Raft 协议
同步逻辑时钟
✓ 高可用性:STP Client 与 Server之间采用
DEBTP(Dynamic Error Based Time Protocol ) 同步逻辑时 间,且 Server 与每个 Client 之间都维持独立的动态时间误 差,既可以适应网络抖动,也可以满足不同节点的复杂网络 状态。时间误差根据时间同步、网络状态进行动态调整
相关主题