文档首页> 数据仓库服务 GaussDB(DWS)> 故障排除> 数据库使用> 多个表同时进行merge into update时,执行失败
更新时间:2024-02-27 GMT+08:00
分享

多个表同时进行merge into update时,执行失败

问题现象

多个表同时进行merge into update时,执行失败。

原因分析

查看日志,发现有如下错误日志:

1
dn_6007_6008 YY003 79375943437085786 [BACKEND] DETAIL:  blocked by hold lock thread 0, statement <pending twophase transaction>, hold lockmode (null).

这是由于分布式锁导致的,两个DN节点都锁住了自己的数据块,然后又在等待对方的数据块,所以导致锁超时。

这种行为是两阶段锁的特性,分布式情况下都会面临这样的问题。

处理方法

建议对单表执行merge,将并发操作改为串行。

分享:

    相关文档

    相关产品