作者介绍 潘娟,京东数科高级DBA&Apache ShardingSphere PMC,主要负责京东数科分布式数据库中间件开发、数据库运维自动化平台开发等工作。曾负责京东数科...
作者介绍 潘娟,京东数科高级DBA&Apache ShardingSphere PMC,主要负责京东数科分布式数据库中间件开发、数据库运维自动化平台开发等工作。曾负责京东数科...
作者:潘娟 作者简介潘娟,京东数科高级DBA,主要负责京东数科数据库中间件开发、数据库运维自动化平台开发、生产数据库运维工作。多次参与京东6.18、11.11等大促活动的护航...
@阳雨人 感谢,我说的phase1 本地事务提交,说的就是db-commit。只有branch的db锁释放,才能提高并发吧,当然还有个风险,就是释放完后,被别的事务修改。此时占有全局锁的事务要回滚,这有冲突了
fescar锁设计和隔离级别的理解Fescar全局锁的理解 我们先简单了解一下fescar的设计原理 Fescar官方介绍 了解完Fescar的基本原理,我们重点关注下Fescar的全局排他锁 关于隔离性:(...
@tristaZero 当然,此时tx2没有全局锁,所以它最终无法提交自己所有的branch,但是可以提交申请到的tx1-branch1占有资源的本地锁,也可以释放,对吗?
fescar锁设计和隔离级别的理解Fescar全局锁的理解 我们先简单了解一下fescar的设计原理 Fescar官方介绍 了解完Fescar的基本原理,我们重点关注下Fescar的全局排他锁 关于隔离性:(...
@阳雨人 感谢回复呢,我以为帖子要沉了
比如tx1有2个branch,它持有全局锁。在tx1完成branch1本地事务后,就释放branch1的本地锁。此时,tx2没有全局锁,但是它可以申请到tx1-branch1释放的本地锁吗?并且获得锁执行事务,再提交,释放这个本地锁吗?
fescar锁设计和隔离级别的理解Fescar全局锁的理解 我们先简单了解一下fescar的设计原理 Fescar官方介绍 了解完Fescar的基本原理,我们重点关注下Fescar的全局排他锁 关于隔离性:(...
Fescar全局锁的理解 我们先简单了解一下fescar的设计原理 Fescar官方介绍 了解完Fescar的基本原理,我们重点关注下Fescar的全局排他锁 关于隔离性:(...
Hi~您好,我最近看了seata官网和您的文章,有点小小问题。等您有空了,可否指点下呢?
backgroud:
tb1, col = 0 where id =1;
tb2, col = 0 where id =1;
tx1:
branch1: update tb1 set col = 10 where id = 1;
branch2: update tb2 set col = 10 where id = 1;
tx2:
branch1: update tb2 set col = 20 where id = 1;
branch2: update tb1 set col = 20 where id = 1;
执行过程:
tx1完成了branch1,释放tb1的本地锁,准备做branch2;
tx2做完branch1,释放tb2本地锁。此时可以获得tb1的本地锁,于是执行了自己的branch2,释放tb1本地锁,准备做提交;
tx1此时要rollback,发现可以获得tb1本地锁,可以它同时发现这条记录被改了,于是只能报错了。
我的问题是:tx1此时报错后,会释放全局锁吗?tx2能正常进行下去吗?这时候tb1和tb2的数据分别是什么呢?
(PS.如果最后一个问题比较麻烦,可先回答前两个呢)
-----------
另外,文中提到的:
```
Fescar一阶段:
1. 本地(Branch)在向TC注册的时候,把本地事务需要修改的数据table+pks提交到server端申请锁,拿到全局锁后,才能提交本地事务
```
我理解是:在第一阶段,某个本地事务提交,不需要拿到全局锁。
fescar锁设计和隔离级别的理解Fescar全局锁的理解 我们先简单了解一下fescar的设计原理 Fescar官方介绍 了解完Fescar的基本原理,我们重点关注下Fescar的全局排他锁 关于隔离性:(...