Seata中 SelectForUpdateExecutor 可以先获取全局锁,再执行 sql吗?

Seata中这个 SelectForUpdateExecutor 可以先获取全局锁,再执行 sql语句不? 目前这个地方获取不到全局锁,会一直进行回滚事务 image.png

展开
收起
小黄鸭哈哈哈 2022-06-27 14:21:05 982 分享 版权
1 条回答
写回答
取消 提交回答
  • 需要释放本地锁,否则会阻塞其他正常的事务。 先抢本地锁再拿全局锁,这是分布式事务下的读已提交隔离级别,这个forupdate不是拿锁,是检查锁。 因为拿到本地锁,全局锁如果没有别的事务占有,就是分布式事务下读已提交了,at的其他事务拿不到本地锁不可能拿到全局锁的。

    此答案整理自钉钉群“3群-Seata 开源讨论群”

    2022-06-27 15:25:55
    赞同 展开评论
问答分类:
SQL
问答地址:

为企业提供高效、稳定、易扩展的中间件产品。

收录在圈子:
+ 订阅
阿里云中间件主要有包含这么几个: 分布式关系型数据库DRDS_水平拆分 做数据库扩展性的 、消息队列MQ 是做消息的中间件、企业级分布式应用服务EDAS 做分布式服务的、还有一些其他的中间件,比如配置服务、缓存等等。
还有其他疑问?
咨询AI助理