modify column执行时间过长

比如GC这些操作呢?我觉得这是一个怀疑点~

1 个赞

原来是24h, 我也怀疑过这个问题,所以在执行到50多亿时候,我就修改gc 到30min 了。但是现在还是到了80 多亿

我的意思是GC导致dll进程报错重试,然后又从头开始,但计数没有清零。

1 个赞

但是不知你说这种情况如何证明

抛开过程不谈,最终这个dll执行成功了么?表字段修改了么?

1 个赞

看下当前的集群的reorg配置是多少?是不是分配的资源太少了?

mysql> show variables like '%reorg%';
+----------------------------+--------------+
| Variable_name              | Value        |
+----------------------------+--------------+
| tidb_ddl_enable_fast_reorg | ON           |
| tidb_ddl_reorg_batch_size  | 256          |
| tidb_ddl_reorg_priority    | PRIORITY_LOW |
| tidb_ddl_reorg_worker_cnt  | 8            |
+----------------------------+--------------+
4 rows in set (0.00 sec)

4-5天 明显就是挂了

5天前我自己重启的

MySQL [(none)]> show variables like ‘%reorg%’;
±---------------------------±-------------+
| Variable_name | Value |
±---------------------------±-------------+
| tidb_ddl_enable_fast_reorg | ON |
| tidb_ddl_reorg_batch_size | 256 |
| tidb_ddl_reorg_priority | PRIORITY_LOW |
| tidb_ddl_reorg_worker_cnt | 4 |
±---------------------------±-------------+
4 rows in set (0.00 sec)

现在取消重新跑了。取消过程很快就完成了。

2023-10-16 11:15:31 重新跑的,现在28亿了,还是没跑完哦

这2个参数调大能让回填过程快一些,你的gc时间设置多久,pd-ctl service-gc-safepoint --pd pd_addr 看下

是不是你加了after的原因

tidb_ddl_reorg_batch_size 调为了 1024
tidb_ddl_reorg_worker_cnt 调为了 32
是立即生效的吧

设置后会持久化 ,在下一批数据中生效。看safepoint时间 ,好像DDL并没有对它造成影响

跑完了没? :joy:

没有,取消了

取消完成的快么?

1 个赞

取消很快