升级tiflash过程中,查询结果不一致

【 TiDB 使用环境`】生产环境
【 TiDB 版本】v5.2.3 升级v5.3.1

【复现路径】 tikv升级完成后,先升级一个tiflash,之后发现tiflash查询结果不一致
tikv 查询结果正常,后面把tiflash全部升级完成后,把有问题的表重新tiflash同步 后正常
【问题现象及影响】
结果不一致
异常时
SELECT own_appid,COUNT(1),SUM(cost) FROM tbl_new_ad_cost WHERE create_time>=‘2022-03-29’ AND create_time<‘2022-03-30’ GROUP BY own_appid ORDER BY 1
own_appid count(1) sum(cost)
1092 1043 39102.390
1093 253 24.360
1095 280 273.840

SELECT own_appid,COUNT(1),SUM(cost) FROM tbl_new_ad_cost WHERE create_time>=‘2022-03-29’ AND create_time<‘2022-03-30’ GROUP BY own_appid ORDER BY 1
own_appid count(1) sum(cost)
1092 543 19102.390
1093 153 14.360
1095 148 172.240

稳定之后
SELECT own_appid,COUNT(1),SUM(cost) FROM tbl_new_ad_cost WHERE create_time>=‘2022-03-29’ AND create_time<‘2022-03-30’ GROUP BY own_appid ORDER BY 1
own_appid count(1) sum(cost)
1092 1043 39102.390
1093 253 24.360
1095 280 273.840
image

2赞

我在这接着问哈,是不是在这两个结果之间变化,没有其他的值?执行计划在这两次查询之间一致么,能不能提供一下?

我在测试中,发现两种结果:
1.[FLASH:Coprocessor:Internal] TiFlash server is terminating
2.出结果
就是要不就是出结果,要不就错误提示了。
能否执行:

select distinct TIFLASH_INSTANCE from TIFLASH_TABLES
where TIDB_TABLE = '表名';

帮助获取更多的线索?

1赞

image

生产环境,急于恢复业务。所以没截图 ,tiflash生效 就走的tiflash , tiflash 去掉就走 tikv

能否在 dashboard 里看下发生不一致时,sql 的执行计划里面,各个阶段返回的 actRows 具体行数

1赞

执行计划 (2).txt (121.2 KB)

你好,能找到出问题的这条 SQL 的执行计划吗?
SELECT own_appid,COUNT(1),SUM(cost) FROM tbl_new_ad_cost WHERE create_time>=‘2022-03-29’ AND create_time<‘2022-03-30’ GROUP BY own_appid ORDER BY 1

另外问下,这张表 tbl_new_ad_cost 有几个 TiFlash 副本?

1赞

执行计划 (2).txt (121.2 KB)

这里两次查询之间,tbl_new_userinfo 这张表的数据有变化吗?以及这张表的 tbl_new_userinfo TiFlash 副本数是多少个?

这个慢查询没有了, 看这个SQL吧。 29号查28号的数据, 数据不会变。所有tiflash副本数都是2
SELECT own_appId ,sum(cost) costSum from tbl_new_ad_cost where day = ‘2022-03-28’ group by own_appId
执行计划.txt (9.3 KB)

请问这个是不一致时的执行计划吗?

对,一个是tikv 结果是正确的, 一个是tiflash

能否提供下出错时间段的两台 tiflash 日志和 tidb 日志?

请问这条 sql 当时的执行结果是怎样的呢? TiFlash 的结果比 TiKV 多吗?

很多tidb。 先给一个实例的, 顺便说下 dashboard 自从升级5.0 以后 ,慢查询 的tidb实例字段 一直是空
server 日志轮询没有了

proxy.log.2022-03-29.gz (1.5 MB) tidb-2022-03-29.gz (1.3 MB)

结果不准,group by count(1) 统计总数的时候 一会多 一会少。没关注到tiflash和tikv结果差别。急于恢复,把tiflash 副本去掉了。然后把剩下的 几个tiflash升级后,加回tiflash副本,数据就正常了

请问出问题的时间点是什么时候呢?能否提供下对应时间段 tiflash.log 开头的日志呢?proxy.log 是 tiflash-proxy的日志。

问题时间段 20点到21点30 ,剩下的日志轮询到期 自动删除了
error.log-2022-0329 (189.9 KB) flash_cluser-2022-329 (4.2 MB)

当时tiflash 对比 tikv 的结果 有时跟tikv差不多 ,有时比tikv少差不多一半 ,来回的变

我们在自己的环境上复现出来了,正在调查中