为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:v4.0.8
- 【问题描述】:
TiDB实现跨表事务的原理是什么啊?
比如我有这样一个事务:
start transaction;
update table1 set amount = 100 where id = 1;
update table2 set amount = 200 where id = 2;
commit;
个人理解,TiDB中每张表可能有多个region,但是每个region只记录一张表的数据,也就是说上面两条sql需要修改两个不同的region,一个单独的region有raft组来保证数据一致性和高可用性,但如果在一个事务中操作多个region,怎么保证每个region都成功或者都失败呢?