tidb 分布式事务,是怎么一个过程呢,是如何保证事务一致性的,会不会存在半提交的情况啊
1 个赞
事务就是保证一致性呀,怎么会半提交。
两阶段提交(2PC)和Paxos共识算法来实现分布式事务的一致性。以及持久化日志记录
我理解有可能,但是一系列的功能和算法尽量减少了半提交的可能性。
部分参与者已经提交而其他参与者未能成功提交的情况
1 个赞
propose阶段
当写入请求发送到Tikv,再到Region的leader上先把写入内容转化成raft log日志
append阶段
把本地raft log日志持久化存到raft db中,只是leader节点
replicate阶段
raft log分发到两个follower节点
append: 把follower节点的raft log日志持久化存到raft db中
committed阶段
当其他follower节点持久化后会返回响应值
大多数节点都持久化了就commit了
如果follower都没收到那就commit不了
此时的committed跟SQL语句的commit不一样 这个是raft log日志写入(类似于redo)
apply
将raft log日志写入到raft_db-kv中
这时候用户的commit才返回
2 个赞
看了你的描述,又看视频,明白了
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。