实时写入的表Alter Table 会出现 too many versions

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】问题详细描述
一张有1000+的tablet,且实时写入,50并发, 每一分钟写入一次。 在执行Alter table modify column 时发现有大量tablets不进行compaction, 经过10多分钟后就会出现too many versions.
相关修改schema: 某个字段的varchar(255) -> varchar(65535)
【背景】做过哪些操作?

  1. 调大fe alter worker和be alter worker没有效果
  2. 分析代码发现need_compaction中将tablet不是running状态的给过滤掉了compaction, 但一个表的tablet过多时,更改字段又比较慢,这个时间就会出现新写入的tablet出现too many versions的报错

【业务影响】
实时写入不停的失败重启,导致数据延迟

【是否存算分离】否

【StarRocks版本】3.1.15

【集群规模】例如:3fe(3 follower)+20be

【机器信息】CPU虚拟核/内存/网卡,例如:48C/192G/万兆

【联系方式】社区群22-在路上

如果不是fast schema change, alter table无法避免.

https://github.com/StarRocks/starrocks/pull/17260/files
搜索相关issues可以看到这个地方修复了写入tablet同时compaction可能会出现异常: version already been compacted。 虽然修了这个bug,但是感觉太大了,就造成实时写入的表无法进行非fast scheme change